Commit graph

66338 commits

Author SHA1 Message Date
Doug Kwan
131687b4ad 2010-07-13 Doug Kwan <dougkwan@google.com>
* arm.cc (Arm_input_section::Arm_input_section): For a
	SHT_ARM_EXIDX section, always keeps the input sections.
	(Arm_input_section::set_exidx_section_link): New method.
	(Arm_exidx_input_section::Arm_exidx_input_section): Initialize
	has_errors_ to false.
	(Arm_exidx_input_section::has_errors,
	Arm_exidx_input_section::set_has_errors): New methods.
	(Arm_exidx_input_section::has_errors_): New data member.
	(Arm_relobj::get_exidx_shndx_list): New method.
	(Arm_output_section::append_text_sections_to_list): Do not skip
	section without SHF_EXECINSTR.
	(Arm_output_section::fix_exidx_coverage): Skip input sections with
	errors.
 	(Arm_relobj::make_exidx_input_section): Add new parameter for text
	section header.  Make error messages more verbose.  Check for
	a non-executable section linked to an EXIDX section.
	(Arm_relobj::do_read_symbols): Remove error checking, which has been
	moved to Arm_relobj::make_exidx_input_section.  Add an assertion to
	check that there is no deferred EXIDX section if we exit early.
	Instead of not making an EXIDX section in case of an error, make one
	and set the has_errors flag of it.
	(Target_arm::do_finalize_sections): Fix up links of EXIDX sections
	in a relocatable link.
	(Target_arm::do_relax): Look for the EXIDX output section instead of
	assuming that it is called .ARM.exidx.
 	(Target_arm::fix_exidx_coverage): Add a new parameter for input
	section list.  Do not check for SHF_EXECINSTR section flags but
	skip any input section with errors.
	* output.cc (Output_section::Output_section): Initialize
	always_keeps_input_sections_ to false.
	(Output_section::add_input_section): Check for
	always_keeps_input_sections_.
	*  output.h (Output_section::always_keeps_input_sections,
	Output_section::set_always_keeps_input_sections): New methods.
	(Output_section::always_keeps_input_sections): New data member.
2010-07-13 20:07:08 +00:00
H.J. Lu
2f39597837 Don't hard code expected output.
2010-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-i386/hidden2.d: Don't hard code expected output.
	* ld-i386/protected3.d: Likewise.
	* ld-x86-64/hidden2.d: Likewise.
	* ld-x86-64/protected3.d: Likewise.
2010-07-13 17:42:29 +00:00
H.J. Lu
bb1cb422ae Support garbage collection against STT_GNU_IFUNC symbols.
bfd/

2010-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11791
	* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Support
	garbage collection against STT_GNU_IFUNC symbols.

	* elf32-i386.c (elf_i386_get_local_sym_hash): Don't set
	elf.plt.offset/elf.got.offset to -1.
	(elf_i386_tls_transition): Skip TLS transition for functions.
	(elf_i386_gc_sweep_hook): Support STT_GNU_IFUNC symbols.

	* elf64-x86-64.c (elf64_x86_64_get_local_sym_hash): Don't set
	elf.plt.offset/elf.got.offset to -1.
	(elf64_x86_64_tls_transition): Skip TLS transition for functions.
	(elf64_x86_64_gc_sweep_hook): Support STT_GNU_IFUNC symbols.

ld/testsuite/

2010-07-13  H.J. Lu  <hongjiu.lu@intel.com>

	PR ld/11791
	* ld-ifunc/ifunc-10-i386.d: New.
	* ld-ifunc/ifunc-10-i386.s: Likewise.
	* ld-ifunc/ifunc-10-x86-64.d: Likewise.
	* ld-ifunc/ifunc-10-x86-64.s: Likewise.
	* ld-ifunc/ifunc-11-i386.d: Likewise.
	* ld-ifunc/ifunc-11-i386.s: Likewise.
	* ld-ifunc/ifunc-11-x86-64.d: Likewise.
	* ld-ifunc/ifunc-11-x86-64.s: Likewise.
2010-07-13 16:59:14 +00:00
Tom Tromey
9aa1f1e339 * dwarf2loc.h (dwarf2_per_cu_text_offset): Declare.
* dwarf2loc.c (find_location_expression): Use
	dwarf2_per_cu_text_offset.
	(dwarf2_evaluate_loc_desc): Likewise.
	(dwarf2_loc_desc_needs_frame): Likewise.
	(compile_dwarf_to_ax): Likewise.
	(loclist_describe_location): Likewise.
	* dwarf2read.c (dwarf2_per_cu_text_offset): New function.
	(dwarf2_per_cu_objfile): Update comment.
2010-07-13 15:09:03 +00:00
Rafael Ávila de Espíndola
6951728764 2010-07-13 Rafael Espindola <espindola@google.com>
* fileread.cc (try_extra_search_path, find_file): Move to Input_file.
	* fileread.h (Input_file): Add try_extra_search_path and find_file.
2010-07-13 14:59:02 +00:00
Ian Lance Taylor
8274239589 * output.h (Output_section_lookup_maps::add_merge_section):
Correct check of whether value was inserted.
	(Output_section_lookup_maps::add_merge_input_section): Likewise.
	(Output_section_lookup_maps::add_relaxed_input_section):
	Likewise.
	* arm.cc (Target_arm::got_section): Remove used local os.
	* i386.cc (Target_i386::got_section): Likewise.
	* x86_64.cc (Target_x86_64::got_section): Likewise.
	* sparc.cc (Target_sparc::got_section): Likewise.
	(Target_sparc::relocate): Remove unused local have_got_offset.
	* powerpc.cc (Target_powerpc::relocate): Likewise.
2010-07-13 12:04:03 +00:00
Ian Lance Taylor
241531d62d * compressed_output.cc (zlib_decompress): Fix signature in
!HAVE_ZLIB_H case.
2010-07-13 11:59:02 +00:00
Ian Lance Taylor
f2d707b5bb * archive.cc (Archive::include_member): Unlock an external member
of a thin archive.  Don't bother to delete an object we know is
	NULL.
2010-07-13 07:56:08 +00:00
gdbadmin
2ef36331d2 *** empty log message *** 2010-07-13 00:00:33 +00:00
Alan Modra
b4d0d1cbc6 daily update 2010-07-13 00:00:05 +00:00
H.J. Lu
9fff0c3957 Re-indent elf32-i386.c.
2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>

	* elf32-i386.c (elf_i386_check_relocs): Re-indent.
	(elf_i386_relocate_section): Likewise.
2010-07-12 21:13:24 +00:00
H.J. Lu
92b4f90c93 Restore fall through patch for O_multiply.
2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>

	PR gas/11806
	* config/tc-i386-intel.c (i386_intel_simplify): Restore fall
	through patch for O_multiply.
2010-07-12 20:36:01 +00:00
Cary Coutant
a2e4736229 * compressed_output.cc (zlib_decompress): New function.
(get_uncompressed_size): New function.
	(decompress_input_section): New function.
	* compressed_output.h (get_uncompressed_size): New function.
	(decompress_input_section): New function.
	* dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info)
	Handle compressed debug sections.
	* layout.cc (is_compressed_debug_section): New function.
	(Layout::output_section_name): Map compressed section names to
	canonical names.
	* layout.h (is_compressed_debug_section): New function.
	(is_debug_info_section): Recognize compressed debug sections.
	* merge.cc: Include compressed_output.h.
	(Output_merge_data::do_add_input_section): Handle compressed
	debug sections.
	(Output_merge_string::do_add_input_section): Handle compressed
	debug sections.
	* object.cc: Include compressed_output.h.
	(Sized_relobj::Sized_relobj): Initialize new data members.
	(build_compressed_section_map): New function.
	(Sized_relobj::do_read_symbols): Handle compressed debug sections.
	* object.h (Object::section_is_compressed): New method.
	(Object::do_section_is_compressed): New method.
	(Sized_relobj::Compressed_section_map): New type.
	(Sized_relobj::do_section_is_compressed): New method.
	(Sized_relobj::compressed_sections_): New data member.
	* output.cc (Output_section::add_input_section): Handle compressed
	debug sections.
	* reloc.cc: Include compressed_output.h.
	(Sized_relobj::write_sections): Handle compressed debug sections.
2010-07-12 17:59:58 +00:00
H.J. Lu
add265ae41 Add is_ilp32_target/is_lp64_target.
2010-07-12  Ulrich Weigand  <uweigand@de.ibm.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* lib/gdb.exp (is_ilp32_target): New.
	(is_lp64_target): Likewise.

	* gdb.arch/amd64-byte.exp: Use is_lp64_target to check 64bit
	target.
	* gdb.arch/amd64-disp-step.exp: Likewise.
	* gdb.arch/amd64-dword.exp: Likewise.
	* gdb.arch/amd64-i386-address.exp: Likewise.
	* gdb.arch/amd64-word.exp: Likewise.

	* gdb.arch/i386-avx.exp: Use is_ilp32_target to check for 32bit
	target.
	* gdb.arch/i386-bp_permanent.exp: Likewise.
	* gdb.arch/i386-byte.exp: Likewise.
	* gdb.arch/i386-disp-step.exp: Likewise.
	* gdb.arch/i386-gnu-cfi.exp: Likewise.
	* gdb.arch/i386-prologue.exp: Likewise.
	* gdb.arch/i386-size-overlap.exp: Likewise.
	* gdb.arch/i386-size.exp: Likewise.
	* gdb.arch/i386-sse.exp: Likewise.
	* gdb.arch/i386-unwind.exp: Likewise.
	* gdb.arch/i386-word.exp: Likewise.

	* gdb.arch/ppc64-atomic-inst.exp: Use is_lp64_target to execute
	test only when building 64-bit executables.  Do not hard-code
	-m64 option.
2010-07-12 17:33:15 +00:00
Jan Kratochvil
953ac07ed7 gdb/
* dwarf2read.c (read_subrange_type): Call read_subrange_type.
	* p-lang.c (pascal_printstr): Likewise.
2010-07-12 17:07:11 +00:00
gdbadmin
c0e7d30b1e *** empty log message *** 2010-07-12 00:00:33 +00:00
Alan Modra
33b86f95af daily update 2010-07-12 00:00:06 +00:00
H.J. Lu
efb5f348a6 Fix a typo. 2010-07-11 15:37:21 +00:00
Kai Tietz
a7879ef118 2010-07-11 Kai Tietz <kai.tietz@onevision.com>
PR ld/11612
	* config/obj-coff.c (obj_common_parse): Quote symbol-name.

2010-07-11  Kai Tietz  <kai.tietz@onevision.com>

	* gas/pe/aligncomm-b.d: Regenerated content dump.
	* gas/pe/aligncomm-d,d: Regenerated content dump.
	* gas/i386/i386.exp: Disable for mingw 64-bit the intel-got64 test.
2010-07-11 08:45:51 +00:00
gdbadmin
a2f028ec35 *** empty log message *** 2010-07-11 00:00:33 +00:00
Alan Modra
5fda0a8ef7 daily update 2010-07-11 00:00:05 +00:00
Alan Modra
6115433e78 daily update 2010-07-10 00:00:06 +00:00
gdbadmin
73b86bec9f *** empty log message *** 2010-07-10 00:00:03 +00:00
Tom Tromey
f04e4012c7 * python/py-prettyprint.c (gdbpy_get_display_hint): Don't use
'hint' if it is NULL.
2010-07-09 20:29:56 +00:00
Hui Zhu
f4dfd9c05c 2010-07-04 Hui Zhu <teawater@gmail.com>
* source.c (print_source_lines_base): Add check for noprint.
2010-07-09 02:39:58 +00:00
Cary Coutant
ce279a62c4 * resolve.cc (Symbol_table::resolve): Remember whether undef was
weak when resolving to a dynamic def.
	(Symbol_table::should_override): Add adjust_dyndef flag; set it
	for weak undef/dynamic def cases. Adjust callers.
	* symtab.cc (Symbol::init_fields): Initialize undef_binding_set_ and
	undef_binding_weak_.
	(Symbol_table::sized_write_globals): Adjust symbol binding.
	(Symbol_table::sized_write_symbol): Add binding parameter.
	* symtab.h (Symbol::set_undef_binding): New method.
	(Symbol::is_undef_binding_weak): New method.
	(Symbol::undef_binding_set_, Symbol::undef_binding_weak_): New members.
	(Symbol_table::should_override): Add new parameter.
	(Symbol_table::sized_write_symbol): Add new parameter.

	* testsuite/weak_undef_file1.cc: Add new test case.
	* testsuite/weak_undef_file2.cc: Fix header comment.
	* testsuite/weak_undef_test.cc: Add new test case.
2010-07-09 01:34:31 +00:00
gdbadmin
2ee2fea804 *** empty log message *** 2010-07-09 00:00:34 +00:00
Alan Modra
9818e16ce9 daily update 2010-07-09 00:00:05 +00:00
Richard Earnshaw
52e7f43db0 2010-07-08 Tejas Belagod <tejas.belagod@arm.com>
gas/testsuite
	* gas/arm/barrier.s: New file.
	* gas/arm/barrier.d: New file.
	* gas/arm/barrier-thumb.s: New file.
	* gas/arm/barrier-thumb.d: New file.
	* gas/arm/barrier-bad.s: New file.
	* gas/arm/barrier-bad.d: New file.
	* gas/arm/barrier-bad.l: New file.
	* gas/arm/barrier-bad-thumb.s: New file.
	* gas/arm/barrier-bad-thumb.d: New file.
	* gas/arm/barrier-bad-thumb.l: New file.

	gas/config
	* tc-arm.c (OP_oBARRIER): Remove.
	(OP_oBARRIER_I15): Add.
	(po_barrier_or_imm): Add macro.
	(parse_operands): Improve OP_oBARRIER_I15 operand parsing.
	(do_barrier): Check correct immediate range.
	(do_t_barrier): Likewise.
	(barrier_opt_names): Add entries for more symbolic operands.
	(insns): Replace OP_oBARRIER with OP_oBARRIER_I15 for barriers.

	opcodes/
	* arm-dis.c (print_insn_arm): Add cases for printing more
	symbolic operands.
	(print_insn_thumb32): Likewise.
2010-07-08 22:40:28 +00:00
Joel Brobecker
7e6e39e562 Resync python-config.py with Python-2.7 version.
This is just a copy of the Python 2.7 version of python-config.py.
Tested with versions 2.5 and 2.6.  It's nearly identical to the
previous version, except it's written in a more pythonic way,
so it should be fine for 2.4 as well.

gdb/ChangeLog:

        * python/python-config.py: Resync with Python 2.7 version of this
        script.
2010-07-08 22:12:44 +00:00
Joel Brobecker
76b8507d09 Fix typo in NEWS file (introduced in previous commit).
gdb/ChangeLog:

        * NEWS: Fix typo in section name (s/GDB 7.1/GDB 7.2).
2010-07-08 15:41:56 +00:00
Nathan Sidwell
db187cb9de * config/tc-arm.c (tc_gen_reloc): Add BFD_RELOC_ARM_T32_OFFSET_IMM
error message.

	testsuite/
	* gas/arm/reloc-bad.d: New.
	* gas/arm/reloc-bad.s: New.
	* gas/arm/reloc-bad.l: New.
2010-07-08 06:22:24 +00:00
Alan Modra
c2397eaa93 daily update 2010-07-08 00:00:05 +00:00
gdbadmin
715036dc99 *** empty log message *** 2010-07-08 00:00:02 +00:00
Kevin Buettner
a1669f9a28 * gdb-if.c (sim_store_register): Add case for sim_rx_acc_regnum. 2010-07-07 23:22:43 +00:00
Doug Evans
2dfb8c1771 * lib/gdb.exp (gdb_test_list_exact): New function.
* gdb.base/default.exp (show convenience): Call it, add tests for
	$_sdata = void, $_thread = 0.
2010-07-07 18:49:51 +00:00
Joel Brobecker
797054e63d * NEWS: Create a new section for the next release branch.
Rename the section of the current branch, now that it has
        been cut.
2010-07-07 17:52:37 +00:00
gdbadmin
c80befee39 Record GDB 7.2 branch creation. Bump version number to 7.2.50.20100707-cvs. 2010-07-07 17:34:43 +00:00
Tom Tromey
ac56253dde * dwarf2read.c (dwarf2_const_value) <DW_form_addr>: Create a
LOC_COMPUTED symbol.
	* dwarf2loc.c (dwarf2_evaluate_loc_desc): Set new field.
	(dwarf2_loc_desc_needs_frame): Likewise.
	(compile_dwarf_to_ax) <DW_OP_addr>: Use offset.
	* dwarf2expr.h (struct dwarf_expr_context) <offset>: New field.
	* dwarf2expr.c (execute_stack_op) <DW_OP_addr>: Use offset.
	* dwarf2-frame.c (execute_stack_op): Set 'offset' field.  Add
	'offset' argument.
	(struct dwarf2_frame_cache) <text_offset>: New field.
	(dwarf2_frame_cache): Set new field.
	(dwarf2_frame_prev_register): Update.
	(dwarf2_frame_sniffer): Update.
	(dwarf2_frame_base_sniffer): Update.
	(dwarf2_frame_find_fde): Add 'out_offset' argument.
2010-07-07 17:26:38 +00:00
Thiago Jung Bauermann
0cf6dd1543 2010-07-07 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
Thiago Jung Bauermann  <bauerman@br.ibm.com>

	Support for hw accelerated condition watchpoints in booke powerpc.

	* breakpoint.c (fetch_watchpoint_value): Rename to fetch_subexp_value
	and move to eval.c.  Change callers.
	(insert_bp_location): Pass watchpoint condition in
	target_insert_watchpoint.
	(remove_breakpoint_1) Pass watchpoint condition in
	target_remove_watchpoint.
	(watchpoint_locations_match): Call
	target_can_accel_watchpoint_condition.
	* eval.c: Include wrapper.h.
	(fetch_subexp_value): Moved from breakpoint.c.
	* ppc-linux-nat.c (ppc_linux_region_ok_for_hw_watchpoint):
	Formatting fix.
	(can_use_watchpoint_cond_accel): New function.
	(calculate_dvc): Likewise.
	(num_memory_accesses): Likewise.
	(check_condition): Likewise.
	(ppc_linux_can_accel_watchpoint_condition): Likewise
	(ppc_linux_insert_watchpoint): Call can_use_watchpoint_cond_accel,
	check_condition and calculate_dvc.
	(ppc_linux_remove_watchpoint): Likewise.
	(_initialize_ppc_linux_nat): Set to_can_accel_watchpoint_condition to
	ppc_linux_can_accel_watchpoint_condition
	* target.c (debug_to_insert_watchpoint): Add argument for watchpoint
	condition.
	(debug_to_remove_watchpoint): Likewise.
	(debug_to_can_accel_watchpoint_condition): New function.
	(update_current_target): Set to_can_accel_watchpoint_condition.
	(setup_target_debug): Set to_can_accel_watchpoint_condition.
	* target.h: Add opaque declaration for struct expression.
	(struct target_ops) <to_insert_watchpoint>,
	<to_remove_watchpoint>: Add new arguments to pass the watchpoint
	<to_can_accel_watchpoint_condition>: New member.
	condition.  Update all callers and implementations.
	(target_can_accel_watchpoint_condition): New macro.
	* value.c (free_value_chain): New function.
	* value.h (fetch_subexp_value): New prototype.
	(free_value_chain): Likewise.
2010-07-07 16:15:18 +00:00
Joel Brobecker
6bd3187468 [PATCH] Unexpected EOF read from connection with GDB after inferior exits.
This is on GNU/Linux.

GDBserver does not exit properly when the inferior exits, as demonstrated
with any program using the procedure below:

   % gdbserver-head :4444 simple_main
   Process simple_main created; pid = 25681
   Listening on port 4444

Then, in another terminal, start GDB, connect to GDBserver, and run
the program to completion:

   % gdb-head simple_main
   (gdb) tar rem :4444
   (gdb) cont
   Continuing.

   Program exited normally.

Going back to the terminal where GDBserver is running, we see the following
output:

    Child exited with status 0
    readchar: Got EOF
    Remote side has terminated connection.  GDBserver will reopen the connection.
    Listening on port 4444

The problem is that we're missing a call to mourn_inferior.  As a result,
after we've handled the vCont packet, we fail to notice that there are
no process left to debug (target_running() returns true), and thus try
to continue reading from the remote socket.  However, since GDB just
disconnected after having received the "exit with status 0" reply to the
vCont request, the read triggers the EOF exception.

gdb/gdbserver/ChangeLog:

        * server.c (handle_v_cont): Call mourn_inferior if process
        just exited.
        (myresume): Likewise.
2010-07-07 16:14:04 +00:00
Ulrich Weigand
2f2241f146 * linux-nat.c (linux_nat_do_thread_registers): Use section size
from gdbarch_core_regset_sections also for .reg if present.

	* amd64-linux-tdep.c (amd64_linux_regset_sections): Fix incorrect
	section size for .reg.
	* ppc-linux-tdep.c (ppc_linux_vsx_regset_sections): Likewise.
	(ppc_linux_vmx_regset_sections): Likewise.
	(ppc_linux_fp_regset_sections): Likewise.
	(ppc64_linux_vsx_regset_sections): New variable.
	(ppc64_linux_vmx_regset_sections): Likewise.
	(ppc64_linux_fp_regset_sections): Likewise.
	(ppc_linux_init_abi): Install core_regset_section lists appropriate
	for current word size.
2010-07-07 12:28:32 +00:00
Alan Modra
9176f4dfdc daily update 2010-07-07 00:00:07 +00:00
gdbadmin
dd8f1dada6 *** empty log message *** 2010-07-07 00:00:04 +00:00
Joel Brobecker
1fd7cdc24b Make server.c:myresume static.
I just happened to notice that this function was exclusively used in
server.c, and thus could be made static.

2010-07-06  Joel Brobecker  <brobecker@adacore.com>

        * server.c (myresume): Make static.
2010-07-06 21:20:43 +00:00
H.J. Lu
f5296ddc5e Initialize prev_line.
2010-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2.c (add_line_info): Initialize prev_line.
2010-07-06 21:13:57 +00:00
Tom Tromey
11763c1856 * configure, config.in: Rebuild.
* configure.ac (HAVE_LIBPYTHON2_7): New define.
	* python/python-internal.h: Handle HAVE_LIBPYTHON2_7.
2010-07-06 19:03:12 +00:00
Andreas Schwab
a6cc4789c3 * breakpoint.c (_initialize_breakpoint): Add "cl" as alias for
"clear".
2010-07-06 16:17:44 +00:00
Ulrich Weigand
f9e9243aad include/ChangeLog:
2010-07-06  Ken Werner  <ken.werner@de.ibm.com>

	* floatformat.h (floatformat_ieee_half_big): Add declaration.
	(floatformat_ieee_half_little): Likewise.

libiberty/ChangeLog:

2010-07-06  Ken Werner  <ken.werner@de.ibm.com>

	* floatformat.c (floatformat_ieee_half_big): New variable.
	(floatformat_ieee_half_little): Likewise.

gdb/ChangeLog:

2010-07-06  Ken Werner  <ken.werner@de.ibm.com>

	* gdbtypes.h (floatformats_ieee_half): Add declaration.
	* gdbtypes.c (floatformats_ieee_half): New variable.
	* doublest.c (floatformat_from_length): Set format to
	gdbarch_half_format if length matches.
	* gdbarch.sh (half_bit): New architecture method.
	(half_format): Likewise.
	* gdbarch.h: Regenerate.
	* gdbarch.c: Likewise.
2010-07-06 12:56:24 +00:00
Alan Modra
50248c890f bfd/
* elf32-ppc.c (ppc_elf_relax_section): Insert branch around
	trampolines only for .init and .fini sections.
ld/testsuite/
	* ld-powerpc/relax.s: Add branch back to _start.
	* ld-powerpc/relax.d: Update.
	* ld-powerpc/relaxr.d: Update.
2010-07-06 09:29:47 +00:00