Joel Brobecker [Mon, 8 Feb 2010 11:33:54 +0000 (11:33 +0000)]
* lib/gdb.exp (gdb_test_timeout): New global variable.
Set it to timeout if not already set.
(gdb_init): Reset the value of timeout to gdb_test_timeout.
PR 11247
* arm.cc (Arm_relobj::section_is_scannable): New method.
(Arm_relobj::section_needs_reloc_stub_scanning): Use it.
(Arm_relobj::section_needs_cortex_a8_stub_scanning): Same.
PR c++/7935:
* cp-support.h: Added char* alias element to using_direct data
struct.
(cp_add_using): Added char* alias argument.
(cp_add_using_directive): Ditto.
* cp-namespace.c: Updated with the above changes.
(cp_lookup_symbol_imports): Check for aliases.
* dwarf2read.c (read_import_statement): Figure out local alias
for the import and pass it on to cp_add_using.
(read_namespace): Pass alias argument to cp_add_using.
* defs.h (gdb_bfd_errmsg): New extern.
* exec.c (exec_file_attach): Change bfd_errmsg to
gdb_bfd_errmsg.
* utils.c (AMBIGUOUS_MESS1): New macro.
(AMBIGUOUS_MESS2): New macro.
(gdb_bfd_errmsg): New function.
PR 11247
* arm-reloc-property.cc (cstdio): Include.
* configure.ac (targetobjs): Remove duplicates.
* configure: Regenerate.
* resolve.cc (Symbol_table::resolve): Explicit instantiate both
big and little endian version for a given address size.
Tom Tromey [Thu, 4 Feb 2010 21:04:30 +0000 (21:04 +0000)]
gdb
* valops.c (search_struct_field): Account for
value_embedded_offset. Fix check for virtual base past the end of
the object. Use value_copy when making a slice of the value.
gdb/testsuite
* gdb.cp/virtbase.exp: Make test case names unique.
* arm-reloc-property.cc
(Arm_reloc_property_table::reloc_name_in_error_message): New method
definition.
* arm-reloc-property.h
(Arm_reloc_property_table::get_implemented_static_reloc_property):
New method definition.
(Arm_reloc_property_table::reloc_name_in_error_message): New method
declaration.
* arm-reloc.def (THM_MOVT_ABS, THM_MOVT_PREL, THM_MOVT_BREL): Change
overflow to N.
(GOT_PREL): Change implemented to Y.
* arm.cc (Target_arm::reloc_uses_thumb_bit): Remove method.
(Target_arm::Relocate::reloc_needs_sym_origin): Remove method.
(Arm_relocate_functions::movw_abs_nc): Remove method.
(Arm_relocate_functions::movt_abs): Ditto.
(Arm_relocate_functions::thm_movw_abs_nc): Ditto.
(Arm_relocate_functions::thm_movt_abs): Ditto.
(Arm_relocate_functions::movw_rel_nc): Ditto.
(Arm_relocate_functions::movw_rel): Ditto.
(Arm_relocate_functions::movt_rel): Ditto.
(Arm_relocate_functions:thm_movw_rel_nc): Ditto.
(Arm_relocate_functions:thm_movw_rel): Ditto.
(Arm_relocate_functions:thm_movt_rel): Ditto.
(Arm_relocate_functions::movw, Arm_relocate_functions::movt,
(Arm_relocate_functions::thm_movw, Arm_relocate_functions::thm_movt):
New method definitions.
(Arm_relocation_functions::arm_grp_alu): Add assertion for group index.
(Arm_relocation_functions::arm_grp_ldr): Ditto.
(Arm_relocation_functions::arm_grp_ldrs): Ditto.
(Arm_relocation_functions::arm_grp_ldc): Ditto.
(Target_arm::Relocate::relocate): Check for non-static or
unimplemented relocation code and exit early. Change calls to
Target_arm::reloc_uses_thumb_bit and
Target_arm::Reloc::reloc_needs_sym_origin to use relocation property
instead. Refactor code to handle similar relocations to increase
code sharing. Remove check for unsupported relocation code in switch
statement.
(Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): Use
relocation property table to find out size. Change error message to
print out the name of a relocation code instead of the numeric value.
(Target_arm::scan_reloc_for_stub): Use relocation property table
instead of calling Target_arm::reloc_uses_thumb_bit().
testsuite/
* gas/i386/i386.exp: Rename amdfam15 test cases to bdver1.
* gas/i386/x86-64-nops-1-amdfam15.d: Renamed test case to
gas/i386/x86-64-nops-1-bdver1.d.
* gas/i386/nops-1-amdfam15.d: Renamed test case to
gas/i386/nops-1-bdver1.d.
Alan Modra [Wed, 3 Feb 2010 12:03:35 +0000 (12:03 +0000)]
bfd/
* elf64-ppc.c (struct plt_entry): Move earlier in file.
(struct got_entry): Likewise. Add is_indirect and got.ent fields.
(struct ppc64_elf_obj_tdata): Change tlsld_got to be a struct got_entry.
Update all uses.
(struct ppc_link_hash_table): Add got_reli_size and second_toc_pass.
Remove no_multi_toc.
(update_local_sym_info, ppc64_elf_check_relocs): Clear is_indirect
when allocating a new struct got_entry.
(allocate_got): New function, extracted from..
(allocate_dynrelocs): ..here. Abort on got entry in non-ppc64 bfd.
(ppc64_elf_size_dynamic_sections): Track got relocs allocated in
.reliplt by got_reli_size. Set owner on ppc64_tlsld_got entries.
(ppc64_elf_setup_section_lists): Remove output_bfd param and
no_multi_toc, add add_stub_section and layout_sections_again. Stash
new params in htab. Extract some code to..
(ppc64_elf_start_multitoc_partition): ..here. New function.
(ppc64_elf_next_toc_section): Check for linker script errors. Handle
second pass toc scan.
(merge_got_entries, merge_global_got, reallocate_got): New functions.
(ppc64_elf_reinit_toc): Rename to..
(ppc64_elf_finish_multitoc_partition): ..this.
(ppc64_elf_layout_multitoc): New function.
(ppc64_elf_size_stubs): Delete output_bfd, add_stub_section and
layout_sections_again params.
(ppc64_elf_relocate_section): Handle indirect got entries.
* elf64-ppc.h: Update prototypes. Declare new functions.
ld/
* emultempl/ppc64elf.em (build_toc_list): Report errors from
ppc64_elf_next_toc_section.
(after_allocation): Update for changed function names and params.
Run second pass of multitoc partitioning.
Joel Brobecker [Tue, 2 Feb 2010 04:24:26 +0000 (04:24 +0000)]
gdbserver crash when running 32bits exes on x64 Windows.
* inferiors.c (find_inferior): Add function documentation.
(unloaded_dll): Handle the case where the unloaded dll has not
been previously registered in the dll list.
* arm.cc (Arm_exidx_fixup::Arm_exidx_fixup): Initialize
first_output_text_section_.
(Arm_exidx_fixup::first_output_text_section): New method definition.
(Arm_exidx_fixup::first_output_text_section_): New data member.
(Arm_exidx_fixup::process_exidx_section): Record the first text
output section seen.
(Arm_output_section::fix_exidx_coverage): Set correct linked section
and entsize in output section header.
Jan Kratochvil [Mon, 1 Feb 2010 19:27:55 +0000 (19:27 +0000)]
gdb/
* solib-svr4.c (scan_dyntag): New variable dyn_addr. Replace gdb_assert
by a conditional setting DYN_ADDR. Use DYN_ADDR.
* config/djgpp/fnchange.lst: Add translations for
symbol-without-target_section.exp and symbol-without-target_section.c.
* arm-tdep.c (arm_find_mapping_symbol): New function, from
arm_pc_is_thumb.
(arm_pc_is_thumb): Use arm_find_mapping_symbol.
(extend_buffer_earlier): New function.
(MAX_IT_BLOCK_PREFIX, IT_SCAN_THRESHOLD): New constants.
(arm_adjust_breakpoint_address): New function.
(arm_gdbarch_init): Register arm_adjust_breakpoint_address.
testsuite/
* gdb.arch/thumb2-it.S (it_breakpoints): New function.
* gdb.arch/thumb2-it.exp (test_it_break): New function.
(Top level): Call it.
* arm-linux-tdep.c (arm_linux_thumb2_be_breakpoint)
(arm_linux_thumb2_le_breakpoint): New constants.
(arm_linux_init_abi): Set thumb2_breakpoint and
thumb2_breakpoint_size.
* arm-tdep.c (thumb_insn_size, thumb_advance_itstate): New functions.
(thumb_get_next_pc): Add a comment. Rename IT to ITSTATE.
Implement support for single stepping through IT blocks if
a 32-bit Thumb breakpoint instruction is available.
(arm_breakpoint_from_pc): If a 32-bit Thumb breakpoint instruction
is available, use it when needed.
(arm_remote_breakpoint_from_pc): New function.
(arm_gdbarch_init): Register arm_remote_breakpoint_from_pc.
* arm-tdep.h (struct gdbarch_tdep): Correct thumb_breakpoint
comment. Add thumb2_breakpoint and thumb2_breakpoint_size.
* arch-utils.c (default_remote_breakpoint_from_pc): New function.
* arch-utils.h (default_remote_breakpoint_from_pc): Declare.
* gdbarch.c, gdbarch.h: Regenerated.
* gdbarch.sh (remote_breakpoint_from_pc): New architecture method.
* remote.c (remote_insert_breakpoint, remote_insert_hw_breakpoint): Use
gdbarch_remote_breakpoint_from_pc.
doc/
* gdb.texinfo (Architecture-Specific Protocol Details): New section.
Document ARM breakpoint types.
(Register Packet Format): Move into the new section.
(Packets): Describe the KIND argument for Z0, z0, Z1, and z1 packets.
Dave Anglin [Sat, 30 Jan 2010 16:09:43 +0000 (16:09 +0000)]
* elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the
linkage table pointer to use the global table pointer if not doing
a shared link.
* gold/arm.cc: Added support for the ARM relocations: R_ARM_THM_PC8,
R_ARM_THM_PC12, R_ARM_THM_ALU_PREL_11_0.
(Arm_relocate_functions::thm_alu11): New Method.
(Arm_relocate_functions::thm_pc8): New Method.
(Arm_relocate_functions::thm_pc12): New Method.
(Target_arm::Scan::local): Handle the relocations.
(Target_arm::Scan::global): Likewise.
(Target_arm::Relocate::relocate): Likewise.
(Target_arm:Relocatable_size_for_reloc::get_size_for_reloc): Likewise.
* arm.cc (Arm_relobj::Arm_relobj): Initialize new data member
output_local_symbol_count_needs_update_.
(Arm_relobj::output_local_symbol_count_needs_update,
Arm_relobj::set_output_local_symbol_count_needs_update,
Arm_relobj::update_output_local_symbol_count): New methods.
(Arm_relobj::output_local_symbol_count_needs_update_): New data
member.
(Arm_exidx_cantunwind::do_fixed_endian_write): Write address
of pointed function as in a R_ARM_PREL31 relocation.
(Arm_output_section<big_endian>::fix_exidx_coverage): Mark objects
for output local symbol count updating.
(Target_arm::do_relax): Update output local symbol counts in objects
if necessary.
* object.h (Sized_relobj::set_output_local_symbol_count): New method.
gas/testsuite/
* gas/arm/dis-data.d: Update test name. Do not expect
.word output.
* gas/arm/dis-data2.d, gas/arm/dis-data2.s,
gas/arm/dis-data3.d, gas/arm/dis-data3.s: New tests.
opcodes/
* opcodes/arm-dis.c (struct arm_private_data): New.
(print_insn_coprocessor, print_insn_arm): Update to use struct
arm_private_data.
(is_mapping_symbol, get_map_sym_type): New functions.
(get_sym_code_type): Check the symbol's section. Do not check
mapping symbols.
(print_insn): Default to disassembling ARM mode code. Check
for mapping symbols separately from other symbols. Use
struct arm_private_data.
* infrun.c (prepare_to_proceed): Handle other signals which might
match a breakpoint.
(handle_inferior_event): Move the check for unusual breakpoint
signals earlier.
gdbserver/
* linux-low.c (get_stop_pc): Check for SIGTRAP.
(linux_wait_for_event_1): Handle SIGILL and SIGSEGV as possible
breakpoints.