Commit graph

73766 commits

Author SHA1 Message Date
Alan Modra
51fe2ab425 daily update 2012-07-06 00:00:04 +00:00
Sean Keys
3879925e69 gas/config/
* tc-xgate.c: Revised assembler so that operands
	are collected before the addressing mode is
	determined.

include/opcode/
	* xgate.h: Changed the format string for mode
	XGATE_OP_DYA_MON.

opcodes/
	* xgate-dis.c: Removed an IF statement that will
	always be false due to overlapping operand masks.
	* xgate-opc.c: Corrected 'com' opcode entry and
	fixed spacing.
2012-07-05 19:37:52 +00:00
Thomas Schwinge
f4263ca2cd Typo fix. 2012-07-05 08:28:22 +00:00
Thomas Schwinge
8b99bf0bbe opcodes/
* mips-dis: Remove gratuitous newline.
2012-07-05 08:18:43 +00:00
Hui Zhu
f77cc5f048 2012-07-05 Hui Zhu <hui_zhu@mentor.com>
* gdb.texinfo (Maintenance Commands): Change help for "maint agent"
	and "maint agent-eval".
2012-07-05 01:08:24 +00:00
Hui Zhu
34b536a803 2012-07-05 Hui Zhu <hui_zhu@mentor.com>
* ax-gdb.c (cli/cli-utils.h): New include.
	(linespec.h): Ditto.
	(agent_eval_command_one): New function.
	(agent_command_1): Ditto.
	(agent_command): Call function agent_command_1.
	(agent_eval_command): Ditto.
	(_initialize_ax_gdb): Change help for "maint agent"
	and "maint agent-eval".
2012-07-05 01:03:01 +00:00
Hui Zhu
e6f0bce70d 2012-07-05 Hui Zhu <hui_zhu@mentor.com>
* breakpoint.c (check_for_argument): Move to file cli/cli-utils.c.
	* cli/cli-utils.c (check_for_argument): New function.
	* cli/cli-utils.h (check_for_argument): Ditto.
2012-07-05 01:00:43 +00:00
gdbadmin
38401e4002 *** empty log message *** 2012-07-05 00:00:32 +00:00
Alan Modra
0a56835690 daily update 2012-07-05 00:00:04 +00:00
H.J. Lu
1b3371b136 Mention x32 ABI support in NEWS
* NEWS: Mention x32 ABI support.
2012-07-04 20:49:56 +00:00
H.J. Lu
23e2d720d1 Add sp_regnum_from_eax/pc_regnum_from_eax to i386 gdbarch_tdep
* amd64-tdep.c (amd64_x32_init_abi): Set sp_regnum_from_eax to
	AMD64_RSP_REGNUM and pc_regnum_from_eax to AMD64_RIP_REGNUM.

	* i386-tdep.c (i386_gdbarch_init): Initialize sp_regnum_from_eax
	and pc_regnum_from_eax to -1.  Update SP regnum from
	sp_regnum_from_eax and PC regnum from pc_regnum_from_eax if
	needed.

	* i386-tdep.h (gdbarch_tdep): Add sp_regnum_from_eax and
	pc_regnum_from_eax.
2012-07-04 20:46:20 +00:00
Jan Kratochvil
f9cf0f4ab2 gdb/testsuite/
PR 12649
	* gdb.base/dprintf.exp (Set dprintf style to agent): Add missing
	gdb_test_multiple $gdb_prompt terminator.
2012-07-04 14:57:23 +00:00
Pedro Alves
979ade8b16 2012-07-04 Pedro Alves <palves@redhat.com>
* gdb.mi/mi-reverse.exp: Use supports_reverse and
	supports_process_record.
2012-07-04 11:28:04 +00:00
Pedro Alves
8a980b44d0 2012-07-04 Pedro Alves <palves@redhat.com>
* gdb.ada/packed_tagged/comp_bug.adb: Convert to unix text line
	endings.
	* gdb.mi/mi-reverse.exp: Convert to unix text line endings.
2012-07-04 10:48:32 +00:00
H.J. Lu
1c52a64577 Check number of sections overflow
* elf.c (assign_section_numbers): Check if number of sections
	>= SHN_LORESERVE.
	* elfcode.h (elf_object_p): Likewise.
2012-07-04 00:29:52 +00:00
gdbadmin
93a0472204 *** empty log message *** 2012-07-04 00:00:33 +00:00
Alan Modra
e37fa14346 daily update 2012-07-04 00:00:05 +00:00
Stan Shebs
855ba978e4 * gdb.base/info-os.c (main): Retry resource acquisition until an
available one is found.
	* gdb.base/info-os.exp: Collect resource keys from the program
	and use them in matching.
2012-07-03 23:17:13 +00:00
Jan Kratochvil
836bf45453 gdb/
Fix 'warning: parameter has incomplete type' with gcc-3.4.6.
	* dwarf2expr.h: Include gdbtypes.h.
	(enum call_site_parameter_kind, union call_site_parameter_u): Remove
	these forward declarations.
	(cu_offset, sect_offset): Move these ...
	* gdbtypes.h: Remove include dwarf2expr.h.
	(cu_offset, sect_offset): ... here.
2012-07-03 20:09:49 +00:00
Nick Clifton
5f8ebec53d * archive.c (bsd_write_armap): Catch attempts to create an archive
with indicies bigger than 4Gb.
	(coff_write_armap): Likewise.

	* readelf.c (process_archive): Display member indicies when
	dumping index.
2012-07-03 16:25:17 +00:00
Eli Zaretskii
00595b5e79 gdb.texinfo: Separate the index into 2 indices, cp and fn, to
avoid file-name clashes between Index.html and index.html on
 case-insensitive filesystems.  See the discussion starting in
 http://sourceware.org/ml/gdb-patches/2012-06/msg00457.html for the
 details of the problem.
 (Top): Update the master menu for the above.
 (Concept Index, Command and Variable Index): New nodes, instead of
 the old "Index" node that was deleted.  All cross-references
 updated.
2012-07-03 16:22:42 +00:00
H.J. Lu
5a5ed5b0e4 Don't compress empty debug section
2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/14319
	* elf.c (_bfd_elf_make_section_from_shdr): Don't compress empty
	debug section.

2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR binutils/14319
	* binutils-all/compress.exp: Test compress empty debug sections.

	* binutils-all/dw2-empty.S: New file.
2012-07-03 16:06:34 +00:00
H.J. Lu
1e55e04f56 Support x32 sigtramp
* amd64-linux-tdep.c (linux_sigtramp_code): Renamed to ...
	(amd64_linux_sigtramp_code): This.
	(amd64_x32_linux_sigtramp_code): New.
	(LINUX_SIGTRAMP_LEN): Updated.
	(amd64_linux_sigtramp_start): Check x32 sigtramp.
2012-07-03 14:53:56 +00:00
H.J. Lu
90c984fc53 Properly handle indirect symbols
2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3351
	* elflink.c (_bfd_elf_update_dynamic_flags): New.
	(_bfd_elf_merge_symbol): Update both real and indirect symbol
	dynamic flags.
	(_bfd_elf_add_default_symbol): Make the real symbol dynamic if
	the indirect symbol is defined in a shared library.
	(elf_link_add_object_symbols): Likewise.  If the indirect
	symbol has been forced local, don't make the real symbol
	dynamic.
	(elf_link_check_versioned_symbol): Check indirect symbol.
	(elf_link_output_extsym): Use real symbol definition when
	reporting indirect symbol error.  Check version info for
	dynamic versioned symbol.

2012-07-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/3351
	* ld-elf/indirect.exp: New file.
	* ld-elf/indirect1a.c: Likewise.
	* ld-elf/indirect1b.c: Likewise.
	* ld-elf/indirect1c.c: Likewise.
	* ld-elf/indirect2.c: Likewise.
	* ld-elf/indirect3.out: Likewise.
	* ld-elf/indirect3a.c: Likewise.
	* ld-elf/indirect3b.c: Likewise.
	* ld-elf/indirect3c.c: Likewise.
	* ld-elf/indirect4.out: Likewise.
	* ld-elf/indirect4a.c: Likewise.
	* ld-elf/indirect4b.c: Likewise.
	* ld-elf/indirect4c.c: Likewise.
2012-07-03 14:44:35 +00:00
Alan Modra
3146fac428 PR ld/14207
* elf.c (assign_file_positions_for_load_sections): Remove assertions
	that only PT_LOAD headers include file header and section headers.
	(assign_file_positions_for_non_load_sections): Similarly don't
	assert PT_GNU_RELRO header does not include file and section headers.
	Compare first section vma rather than PT_LOAD p_vaddr against
	relro_start when looking for PT_LOAD covering PT_GNU_RELRO.  Replace
	abort with assertion.
2012-07-03 05:47:35 +00:00
Alan Modra
3da732519b daily update 2012-07-03 00:00:04 +00:00
gdbadmin
282dfc2920 *** empty log message *** 2012-07-03 00:00:02 +00:00
Jan Kratochvil
7d0e21ad84 gdb/
* linux-thread-db.c (thread_db_new_objfile): Fix comment typos.

Plus add in an already checked in file:
	(thread_db_new_objfile): Exclude debug files.
2012-07-02 20:39:13 +00:00
Jan Kratochvil
8775fd2d8d gdb/
* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Remove check for gnu/libc-version.h.
	* linux-thread-db.c <HAVE_GNU_LIBC_VERSION_H>: Remove include of
	gnu/libc-version.h.
	(enable_thread_event_reporting) <HAVE_GNU_LIBC_VERSION_H>: Remove
	variables libc_version, libc_major and libc_minor.  Replace sscanf by
	inferior_has_bug.  Extend the comment.
2012-07-02 20:31:09 +00:00
Jan Kratochvil
fcb4437118 gdb/
* linux-thread-db.c (inferior_has_bug): New function.
	(thread_db_find_new_threads_silently): Return boolean as checked by
	inferior_has_bug, describe it in the comments.
	(try_thread_db_load_1): Move call to thread_db_find_new_threads_silently
	earlier.  Abort the initialization if it returned non-zero.
	(thread_db_find_new_threads_2): Preinitialize ERR.  Check errors also
	if UNTIL_NO_NEW,

gdb/testsuite/
	* gdb.threads/gcore-thread.exp: Remove variable libthread_db_seen.
	Wrap the test into loop for corefile and core0file.
2012-07-02 20:28:38 +00:00
Jan Kratochvil
0f3c2347e6 gdb/testsuite/
* gdb.dwarf2/fission-reread.S: Change # comments to /* */ comments.
2012-07-02 20:10:48 +00:00
Jan Kratochvil
08a67be67e gdb/testsuite/
* gdb.dwarf2/fission-reread.S: Remove .section attributes.
	Change CU pointer size to 4 bytes, adjust .8byte to .4byte.  Remove
	.note.GNU-stack.
2012-07-02 20:09:26 +00:00
Doug Evans
0907af0ceb * dwarf2read.c (maybe_queue_comp_unit): Move definition next to others
related to queue management.
2012-07-02 20:02:39 +00:00
Roland McGrath
35aeab69a0 ld/testsuite/
* ld/testsuite/ld-i386/tlsbin-nacl.rd: Update for symbol table changes.
	* ld/testsuite/ld-i386/tlsbindesc-nacl.rd: Likewise.
	* ld/testsuite/ld-i386/tlsdesc-nacl.rd: Likewise.
	* ld/testsuite/ld-i386/tlsgdesc-nacl.rd: Likewise.
	* ld/testsuite/ld-i386/tlsnopic-nacl.rd: Likewise.
	* ld/testsuite/ld-i386/tlspic-nacl.rd: Likewise.
	* ld/testsuite/ld-x86-64/tlsbin-nacl.rd: Likewise.
	* ld/testsuite/ld-x86-64/tlsbindesc-nacl.rd: Likewise.
	* ld/testsuite/ld-x86-64/tlsdesc-nacl.rd: Likewise.
	* ld/testsuite/ld-x86-64/tlsgdesc-nacl.rd: Likewise.
	* ld/testsuite/ld-x86-64/tlspic-nacl.rd: Likewise.
2012-07-02 18:20:31 +00:00
Doug Evans
0940620755 * dwarf2read.c (create_debug_types_hash_table): Use "debug dwarf2-read"
instead of "debug dwarf2-die" in debugging printfs.
	(create_debug_info_hash_table_reader): Ditto.
	(create_debug_info_hash_table): Ditto.
	(init_dwo_file): Ditto.
	(init_cutu_and_read_dies): Add debugging printf.
	(init_cutu_and_read_dies_no_follow): Ditto.
	(process_psymtab_comp_unit_reader): Ditto.
2012-07-02 18:13:41 +00:00
Roland McGrath
9fa0f14a97 gas/testsuite/
* gas/i386/rep-suffix.s: Add 'rep nop' case.
	* gas/i386/x86-64-rep-suffix.s: Likewise.
	* gas/i386/rep-suffix.d: Updated.
	* gas/i386/x86-64-rep-suffix.d: Likewise.
	* gas/i386/ilp32/x86-64-rep-suffix.d: Likewise.

opcodes/
	* i386-opc.tbl: Add RepPrefixOk to nop.
	* i386-tbl.h: Regenerate.
2012-07-02 18:12:28 +00:00
Sergio Durigan Junior
ff4a45007a gdb/testsuite:
2012-07-02  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.base/help.exp (help b, help br, help bre, help brea, help
	break): Include help message for the new `-probe' and `-probe-stap'
	options.
2012-07-02 17:53:19 +00:00
Doug Evans
657c4e8cc6 (gdb_no_commands_at_breakpoint): Tweak previous patch for win64 where
sizeof (long) < sizeof (void*).
2012-07-02 17:37:35 +00:00
Doug Evans
7f216e7c7c * mem-break.c (gdb_no_commands_at_breakpoint): Fix cast from
pointer to int.
2012-07-02 17:11:36 +00:00
H.J. Lu
d628b0e133 Fix ChangeLog entry 2012-07-02 17:06:52 +00:00
H.J. Lu
7670492947 Move rep tests for bsf/bsr/ret to rep-suffix
* gas/i386/i386.exp: Don't run rep-bsf nor rep-ret.

	* gas/i386/rep-bsf.d: Removed.
	* gas/i386/rep-bsf.s: Likewise.
	* gas/i386/rep-ret.d: Likewise.
	* gas/i386/rep-ret.s: Likewise.

	* gas/i386/rep-suffix.d: Updated.
	* gas/i386/x86-64-rep-suffix.d: Likewise.
	* gas/i386/ilp32/x86-64-rep-suffix.d: Likewise.

	* gas/i386/rep-suffix.s: Add tests for bsf, bsr and ret.
	* i386/x86-64-rep-suffix.s: Likewise.
2012-07-02 17:04:51 +00:00
H.J. Lu
9aec843417 Replace __end_SECNAME with __stop_SECNAME
* ld.texinfo: Replace __end_SECNAME with __stop_SECNAME.
2012-07-02 16:29:07 +00:00
Stan Shebs
d3ce09f5bf Add target-side support for dynamic printf.
* NEWS: Mention the additional style.
	* breakpoint.h (struct bp_target_info): New fields tcommands, persist.
	(struct bp_location): New field cmd_bytecode.
	* breakpoint.c: Include format.h.
	(disconnected_dprintf): New global.
	(parse_cmd_to_aexpr): New function.
	(build_target_command_list): New function.
	(insert_bp_location): Call it.
	(remove_breakpoints_pid): Skip dprintf breakpoints.
	(print_one_breakpoint_location): Ditto.
	(dprintf_style_agent): New global.
	(dprintf_style_enums): Add dprintf_style_agent.
	(update_dprintf_command_list): Add agent case.
	(agent_printf_command): New function.
	(_initialize_breakpoint): Add new commands.
	* common/ax.def (printf): New bytecode.
	* ax.h (ax_string): Declare.
	* ax-gdb.h (gen_printf): Declare.
	* ax-gdb.c: Include cli-utils.h, format.h.
	(gen_printf): New function.
	(maint_agent_print_command): New function.
	(_initialize_ax_gdb): Add maint agent-printf command.
	* ax-general.c (ax_string): New function.
	(ax_print): Add printf disassembly.
	* Makefile.in (SFILES): Add format.c
	(COMMON_OBS): Add format.o.
	* common/format.h: New file.
	* common/format.c: New file.
	* printcmd.c: Include format.h.
	(ui_printf): Call parse_format_string.
	* remote.c (remote_state): New field breakpoint_commands.
	(PACKET_BreakpointCommands): New enum.
	(remote_breakpoint_commands_feature): New function.
	(remote_protocol_features): Add new BreakpointCommands entry.
	(remote_can_run_breakpoint_commands): New function.
	(remote_add_target_side_commands): New function.
	(remote_insert_breakpoint): Call it.
	(remote_insert_hw_breakpoint): Ditto.
	(_initialize_remote): Add new packet configuration for
	target-side breakpoint commands.
	* target.h (struct target_ops): New field
	to_can_run_breakpoint_commands.
	(target_can_run_breakpoint_commands): New macro.
	* target.c (update_current_target): Handle
	to_can_run_breakpoint_commands.

	[gdbserver]
	* Makefile.in (WARN_CFLAGS_NO_FORMAT): Define.
	(ax.o): Add it to build rule.
	(ax-ipa.o): Ditto.
	(OBS): Add format.o.
	(IPA_OBS): Add format.o.
	* server.c (handle_query): Claim support for breakpoint commands.
	(process_point_options): Add command case.
	(process_serial_event): Leave running if there are printfs in
	effect.
	* mem-break.h (any_persistent_commands): Declare.
	(add_breakpoint_commands): Declare.
	(gdb_no_commands_at_breakpoint): Declare.
	(run_breakpoint_commands): Declare.
	* mem-break.c (struct point_command_list): New struct.
	(struct breakpoint): New field command_list.
	(any_persistent_commands): New function.
	(add_commands_to_breakpoint): New function.
	(add_breakpoint_commands): New function.
	(gdb_no_commands_at_breakpoint): New function.
	(run_breakpoint_commands): New function.
	* linux-low.c (linux_wait_1): Test for and run breakpoint commands
	locally.
	* ax.c: Include format.h.
	(ax_printf): New function.
	(gdb_eval_agent_expr): Add printf opcode.

	[doc]
	* gdb.texinfo (Dynamic Printf): Mention agent style and
	disconnected dprintf.
	(Maintenance Commands): Describe maint agent-printf.
	(General Query Packets): Mention BreakpointCommands feature.
	(Packets): Document commands extension to Z0 packet.
	* agentexpr.texi (Bytecode Descriptions): Document printf
	bytecode.

	[testsuite]
	* gdb.base/dprintf.exp: Add agent style tests.
2012-07-02 15:29:39 +00:00
H.J. Lu
a47edf2745 Add a test for weak alias
* ld-elf/data2.c: New file.
	* ld-elf/weakdef1.c: Likewise.

	* ld-elf/shared.exp: Add tests for libdata2 and weakdef1.
2012-07-02 14:40:19 +00:00
Tom Tromey
8d6eee87b6 * dwarf.c: Include gdb-index.h.
(display_gdb_index): Handle version 7.
2012-07-02 14:35:33 +00:00
Jan Kratochvil
a16242411f gdb/testsuite/
* gdb.base/stale-infcall.c (infcall): New label test-next.
	(main): New labels test-pass and test-fail.
	* gdb.base/stale-infcall.exp: Continue to test-next.  Put breakpoint
	$test_fail_bpnum to test-fail.
	(test system longjmp tracking support): New test.
	Delete $test_fail_bpnum.
	* lib/gdb.exp (gdb_continue_to_breakpoint): Accept also Temporary
	breakpoint.
2012-07-02 12:06:56 +00:00
Jan Kratochvil
2d7b58e8d6 gdb/
Execute -ix and -iex only after system and user gdbinit files.
	* main.c (captured_main): Move CMDARG_INIT_FILE and CMDARG_INIT_COMMAND
	processing down after gdbinit files.

gdb/doc/
	* gdb.texinfo (File Options): Change -ix and -iex commands that apply
	only after gdbinit files.
	(Startup): Move -iex and -iex commands down after gdbinit files.
2012-07-02 12:05:01 +00:00
Jan Kratochvil
8690e6342c gdb/
Add fnmatch-gnu module.
	* gnulib/Makefile.in (aclocal_m4_deps): Add new files and remove one.
	* gnulib/configure.ac (AC_INIT): Use now import/memmem.c.
	* gnulib/aclocal.m4: Regenerate.
	* gnulib/config.in: Regenerate.
	* gnulib/configure: Regenerate.
	* gnulib/import/dummy.c: Remove.
	* gnulib/import/Makefile.am: Regenerate.
	* gnulib/import/Makefile.in: Likewise.
	* gnulib/import/m4/gnulib-cache.m4: Likewise.
	* gnulib/import/m4/gnulib-comp.m4: Likewise.
	* gnulib/import/alloca.c: New file.
	* gnulib/import/alloca.in.h: Likewise.
	* gnulib/import/config.charset: Likewise.
	* gnulib/import/fnmatch.c: Likewise.
	* gnulib/import/fnmatch.in.h: Likewise.
	* gnulib/import/fnmatch_loop.c: Likewise.
	* gnulib/import/localcharset.c: Likewise.
	* gnulib/import/localcharset.h: Likewise.
	* gnulib/import/m4/alloca.m4: Likewise.
	* gnulib/import/m4/codeset.m4: Likewise.
	* gnulib/import/m4/configmake.m4: Likewise.
	* gnulib/import/m4/fcntl-o.m4: Likewise.
	* gnulib/import/m4/fnmatch.m4: Likewise.
	* gnulib/import/m4/glibc21.m4: Likewise.
	* gnulib/import/m4/localcharset.m4: Likewise.
	* gnulib/import/m4/locale-fr.m4: Likewise.
	* gnulib/import/m4/locale-ja.m4: Likewise.
	* gnulib/import/m4/locale-zh.m4: Likewise.
	* gnulib/import/m4/mbrtowc.m4: Likewise.
	* gnulib/import/m4/mbsinit.m4: Likewise.
	* gnulib/import/m4/mbsrtowcs.m4: Likewise.
	* gnulib/import/m4/mbstate_t.m4: Likewise.
	* gnulib/import/m4/stdbool.m4: Likewise.
	* gnulib/import/m4/wchar_h.m4: Likewise.
	* gnulib/import/m4/wctype_h.m4: Likewise.
	* gnulib/import/m4/wint_t.m4: Likewise.
	* gnulib/import/mbrtowc.c: Likewise.
	* gnulib/import/mbsinit.c: Likewise.
	* gnulib/import/mbsrtowcs-impl.h: Likewise.
	* gnulib/import/mbsrtowcs-state.c: Likewise.
	* gnulib/import/mbsrtowcs.c: Likewise.
	* gnulib/import/ref-add.sin: Likewise.
	* gnulib/import/ref-del.sin: Likewise.
	* gnulib/import/stdbool.in.h: Likewise.
	* gnulib/import/streq.h: Likewise.
	* gnulib/import/strnlen1.c: Likewise.
	* gnulib/import/strnlen1.h: Likewise.
	* gnulib/import/verify.h: Likewise.
	* gnulib/import/wchar.in.h: Likewise.
	* gnulib/import/wctype.in.h: Likewise.
2012-07-02 11:52:39 +00:00
Jan Kratochvil
202cbf1c52 gdb/
Support shell wildcards for 'set auto-load safe-path'.
	* auto-load.c: Include fnmatch.h.
	(filename_is_in_dir): Rename to ...
	(filename_is_in_pattern_1, filename_is_in_pattern): ... here and split
	it.  Update function comment.  Rename dir_len to pattern_len.  New
	variables filename_len, pattern and filename.  Add more DEBUG_AUTO_LOAD
	messages.  Use gdb_filename_fnmatch.
	(filename_is_in_auto_load_safe_path_vec): Rename variable dir to
	pattern.
	(_initialize_auto_load): Extend the "set auto-load safe-path" help text.
	* defs.h (gdb_filename_fnmatch): New declaration.
	* utils.c: Include fnmatch.h.
	(gdb_filename_fnmatch): New function.

gdb/doc/
	* gdb.texinfo (Auto-loading safe path): Note the shell wildcard
	possibility.
2012-07-02 10:57:34 +00:00
Nick Clifton
586ec8c1d0 * write.c (fixup_segment): Only perform the subtraction of an
fx_subsy symbol if MD_APPLY_SYM_VALUE allows it and the symbol is
	properly defined.
	* config/tc-msp430.h (MD_APPLY_SYM_VALUE): Define.
2012-07-02 07:35:06 +00:00