include/elf/
* internal.h (elf_internal_sym): Add st_target_internal.
* arm.h (arm_st_branch_type): New enum.
(ARM_SYM_BRANCH_TYPE): New macro.
bfd/
* elf-bfd.h (elf_link_hash_entry): Add target_internal.
* elf.c (swap_out_syms): Set st_target_internal for each
Elf_Internal_Sym.
* elfcode.h (elf_swap_symbol_in): Likewise.
* elf32-i370.c (i370_elf_finish_dynamic_sections): Likewise.
* elf32-sh-symbian.c (sh_symbian_relocate_section): Likewise.
* elf64-sparc.c (elf64_sparc_output_arch_syms): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections): Likewise.
* elflink.c (elf_link_output_extsym): Likewise.
(bfd_elf_final_link): Likewise.
(elf_link_add_object_symbols): Copy st_target_internal
to the hash table if we see a definition.
(_bfd_elf_copy_link_hash_symbol_type): Copy target_internal.
* elf32-arm.c (elf32_arm_stub_hash_entry): Replace st_type with
a branch_type field.
(a8_erratum_fix, a8_erratum_reloc): Likewise.
(arm_type_of_stub): Replace actual_st_type with an
actual_branch_type parameter.
(arm_build_one_stub): Use branch types rather than st_types to
determine the type of branch.
(cortex_a8_erratum_scan): Likewise.
(elf32_arm_size_stubs): Likewise.
(bfd_elf32_arm_process_before_allocation): Likewise.
(allocate_dynrelocs_for_symbol): Likewise.
(elf32_arm_finish_dynamic_sections): Likewise.
(elf32_arm_final_link_relocate): Replace sym_flags parameter with
a branch_type parameter.
(elf32_arm_relocate_section): Update call accordingly.
(elf32_arm_adjust_dynamic_symbol): Don't check STT_ARM_TFUNC.
(elf32_arm_output_map_sym): Initialize st_target_internal.
(elf32_arm_output_stub_sym): Likewise.
(elf32_arm_symbol_processing): Delete.
(elf32_arm_swap_symbol_in): Convert STT_ARM_TFUNCs into STT_FUNCs.
Use st_target_internal to record the branch type.
(elf32_arm_swap_symbol_out): Use st_target_internal to test for
Thumb functions.
(elf32_arm_is_function_type): Delete.
(elf_backend_symbol_processing): Likewise.
(elf_backend_is_function_type): Likewise.
gas/
* config/tc-arm.c (arm_adjust_symtab): Set the branch type
for Thumb symbols.
bfd/
* elf32-arm.c (elf32_arm_check_relocs): Use call_reloc_p,
may_need_local_target_p and may_become_dynamic_p to classify
the relocation type. Don't check info->symbolic or h->def_regular
when deciding whether to record a potential dynamic reloc.
Don't treat potential dynamic relocs as PLT references.
(elf32_arm_gc_sweep_hook): Update to match. Assert that we don't
try to make the PLT reference count go negative.
ld/testsuite/
* ld-arm/arm-lib-plt-2a.s, ld-arm/arm-lib-plt-2b.s,
ld-arm/arm-lib-plt-2.dd, ld-arm/arm-lib-plt-2.rd: New tests.
* ld-arm/arm-elf.exp: Run them.
bfd/
* elf32-arm.c (elf32_arm_final_link_relocate): Always fill in the
GOT entry here, rather than leaving it to finish_dynamic_symbol.
Only create a dynamic relocation for local references if
info->shared.
(allocate_dynrelocs_for_symbol): Update dynamic relocation
allocation accordingly.
(elf32_arm_finish_dynamic_symbol): Don't initialise the GOT entry here.
ld/testsuite/
* ld-arm/exec-got-1a.s, ld-arm/exec-got-1b.s, ld-arm/exec-got-1.d,
ld-arm/unresolved-1.s, ld-arm/unresolved-1.d,
ld-arm/unresolved-1-dyn.d: New tests.
* ld-arm/arm-elf.exp: Run them.
Michael Snyder [Sat, 12 Mar 2011 22:59:24 +0000 (22:59 +0000)]
2011-03-11 Michael Snyder <msnyder@vmware.com>
* cli/cli-decode.h (CMD_LIST_AMBIGUOUS): Define.
* cli/cli-decode.c (lookup_cmd_1): Use CMD_LIST_AMBIGUOUS.
(lookup_cmd): Test for CMD_LIST_AMBIGUOUS.
* completer.c (complete_line_internal): Use CMD_LIST_AMBIGUOUS.
* top.c (set_verbose): Use CMD_LIST_AMBIGUOUS.
Ian Lance Taylor [Fri, 11 Mar 2011 21:42:12 +0000 (21:42 +0000)]
PR gold/12572
* testsuite/odr_violation2.cc: Add comment to make all error line
numbers double digits.
* testsuite/debug_msg.sh: Adjust expected errors.
Nick Clifton [Fri, 11 Mar 2011 14:18:24 +0000 (14:18 +0000)]
* remap.c (remap_debug_filename): Always allocate a buffer for the
returned pointer.
* stabs.c (stabs_generate_asm_file): Free the pointer returned by
remap_debug_filename.
Maxim Grigoriev [Fri, 11 Mar 2011 00:21:42 +0000 (00:21 +0000)]
2011-03-10 Maxim Grigoriev <maxim2405@gmail.com>
* xtensa-tdep.c (xtensa_c0reg_t): Update comments.
(xtensa_call0_frame_cache_t): Update comments. New fields added.
(xtensa_alloc_frame_cache): Add initialization for new fields.
(xtensa_frame_cache): Change the way how call0_frame_cache () is called.
(warning_once): New function.
(xtensa_insn_kind): New item c0opc_and.
(call0_classify_opcode): Add the case for AND instruction.
(call0_track_op): Change arguments. New local variable litbase. Add the
case to handle c0opc_and. Update algorithms for c0opc_mov, c0opc_l32r,
c0opc_s32i to take into account dynamic stack adjustments in prologue.
Add cases for c0opc_l32e, c0opc_s32e, c0opc_rfwo, c0opc_rfwu.
(call0_analyze_prologue): Update the comments. Change arguments.
Add the variety of updates to handle extended prologues, which now can
conduct dynamic stack adjustments.
(call0_frame_cache): Likewise.
(xtensa_skip_prologue): Update call0_analyze_prologue () function call.
(xtensa_gdbarch_init): Initialize xtensa_session_once_reported.
Phil Muldoon [Thu, 10 Mar 2011 12:29:08 +0000 (12:29 +0000)]
2011-03-10 Phil Muldoon <pmuldoon@redhat.com>
* python/py-param.c (add_setshow_generic): Add set/show callback
parameters. Register Python object context.
(get_show_value): New function.
(get_set_value): New function.
(call_doc_function): New function.
(get_doc_string): Move behind get_show_value/get_set_value.
2011-03-10 Phil Muldoon <pmuldoon@redhat.com>
* gdb.texinfo (Parameters In Python): Document get_set_string and
get_show_string methods.
2011-03-10 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/py-parameter.exp: Update tests to the new Python
parameter API. Add "no documentation" test. Add deprecated API
backward compatibility test.
Dave Korn [Thu, 10 Mar 2011 10:25:02 +0000 (10:25 +0000)]
[PATCH] Revise linker plugin API to better preserve link order.
ld/ChangeLog:
2011-03-10 Dave Korn <dave.korn.cygwin@gmail.com>
* ldlang.h (lang_input_statement_type): Add new 'claim_archive' flag,
wrapping both it and 'claim' flag in #ifdef ENABLE_PLUGINS.
* ldmain.c (add_archive_element): Set it if the member is claimed.
* ldlang.c (new_afile): Initialise claim_archive and claimed members.
(find_replacements_insert_point): New helper function.
(lang_process): After adding and opening replacement files passed
from plugin, splice them into correct place in statement list and
file chains to preserve critical link order.
(lang_list_insert_after): New helper function.
(lang_list_remove_tail): Likewise.
Alan Modra [Thu, 10 Mar 2011 09:11:15 +0000 (09:11 +0000)]
* elf64-ppc.c (bfd_elf64_bfd_link_just_syms): Define.
(ppc64_elf_link_just_syms): New function.
(opd_entry_value): Don't assume big-endian host.
(get_r2off): New function.
(ppc_build_one_stub, ppc_size_one_stub): Use it here.
Ian Lance Taylor [Thu, 10 Mar 2011 01:31:33 +0000 (01:31 +0000)]
* dwarf_reader.cc (Sized_dwarf_line_info): Include all lines,
but mark earlier ones as non-canonical
(offset_to_iterator): Update search target and example
(do_addr2line): Return extra lines in a vector*
(format_file_lineno): Extract from do_addr2line
(one_addr2line): Add vector* out-param
* dwarf_reader.h (Offset_to_lineno_entry): New field recording
when a lineno entry appeared last for its instruction
(Dwarf_line_info): Add vector* out-param
* object.cc (Relocate_info): Pass NULL for the vector* out-param
* symtab.cc (Odr_violation_compare): Include the lineno in the
comparison again.
(linenos_from_loc): New. Combine the canonical line for an
address with its other lines.
(True_if_intersect): New. Helper functor to make
std::set_intersection a query.
(detect_odr_violations): Compare sets of lines instead of just
one line for each function. This became less deterministic, but
has fewer false positives.
* symtab.h: Declarations.
* testsuite/Makefile.am (odr_violation2.o): Compile with -O2 to
mix an optimized and non-optimized object in the same binary
(odr_violation2.so): Same.
* testsuite/Makefile.in: Regenerate from Makefile.am.
* testsuite/debug_msg.cc (main): Make OdrDerived classes.
* testsuite/debug_msg.sh: Update line numbers and add
assertions.
* testsuite/odr_violation1.cc: Use OdrDerived, in a
non-optimized context.
* testsuite/odr_violation2.cc: Make sure Ordering::operator()
isn't inlined, and use OdrDerived in an optimized context.
* testsuite/odr_header1.h: Defines OdrDerived, where
optimization will change the
first-instruction-in-the-destructor's file and line number.
* testsuite/odr_header2.h: Defines OdrBase.
Yao Qi [Wed, 9 Mar 2011 06:10:40 +0000 (06:10 +0000)]
gdb/
2011-03-09 Yao Qi <yao@codesourcery.com>
Revert:
2011-02-11 Yao Qi <yao@codesourcery.com>
* common/Makefile.in: Add copyright header.
2011-02-11 Yao Qi <yao@codesourcery.com>
* Makefile.in: Remove signals.o from COMMON_OBS. Link
libcommon.a.
* configure.ac: Add common to sub dir.
* configure: Regenerate.
gdb/gdbserver/
2011-03-09 Yao Qi <yao@codesourcery.com>
Revert:
2011-03-04 Yao Qi <yao@codesourcery.com>
* Makefile.in: Remove GNU make feature --directory.
2011-03-05 Yao Qi <yao@codesourcery.com>
* Makefile.in (CLEANDIRS, REQUIRED_SUBDIRS): New variable.
(subdir_do): New make target. Copied from gdb/Makefile.
(maintainer-clean, realclean, distclean, clean): Call corresponding
make targets in common/Makefile.
2011-02-11 Yao Qi <yao@codesourcery.com>
* configure.ac: Call AC_PROG_RANLIB.
* Makefile.in: Remove signals.o from OBS. Link libcommon.a.
* configure: Regenerate.
Maxim Grigoriev [Wed, 9 Mar 2011 02:25:12 +0000 (02:25 +0000)]
2011-03-08 Maxim Grigoriev <maxim2405@gmail.com>
* xtensa-tdep.c (xtensa_read_register): New function.
(xtensa_write_register): New function.
(xtensa_find_register_by_name): New function.
(xtensa_windowed_frame_cache): Update comments in type description.
(xtensa_frame_cache): Likewise.
(xtensa_window_interrupt_insn): New function.
(xtensa_frame_cache): Add analysis for Xtensa Window Exception frames.
(xtensa_insn_kind): Add new instructions.
(rwx_special_register): New function.
(call0_classify_opcode): Add new instructions to the analysis.
(a0_saved, a7_saved, a11_saved): New variables.
(a0_was_saved, a7_was_saved, a11_was_saved): New variables.
(execute_l32e): New function.
(execute_s32e): New function.
(xtensa_exception_handler_t): New type.
(execute_code): New function.
(xtensa_window_interrupt_frame_cache): New function to conduct frame
analysis for Xtensa Window Exception handlers.
PR gold/12525
* fileread.cc: #include <climits>.
(GOLD_IOV_MAX): Define.
(File_read::read_multiple): Limit number of entries by iov_max.
* fileread.h (class File_read): Always set max_readv_entries to
128.
Maxim Grigoriev [Wed, 9 Mar 2011 00:55:09 +0000 (00:55 +0000)]
2011-03-08 Maxim Grigoriev <maxim2405@gmail.com>
* xtensa-tdep.c (TX_PS): New.
(windowing_enabled): Update to count for Call0 ABI.
(xtensa_hextochar): New.
(xtensa_init_reggroups): Make algorithm generic.
(xtensa_frame_cache): Use TX_PS on Tiny Xtensa.
Jan Kratochvil [Mon, 7 Mar 2011 20:25:57 +0000 (20:25 +0000)]
gdb/testsuite/
* gdb.trace/report.exp (12.1: trace report #1): New match for the
initial commands echo. New match for `Found trace'. Anchor all the
other matches. Anchor and match for `No trace frame found' the final
match.