bfd/
* elfxx-mips.c (mips_elf_link_hash_entry): Add got_only_for_calls.
(mips_elf_link_hash_newfunc): Initialize it.
(mips_elf_record_global_got_symbol): Add a for_call parameter.
(mips_elf_count_got_symbols): Check SYMBOL_CALLS_LOCAL rather
than SYMBOL_REFERENCES_LOCAL if the GOT entry is only used for calls.
Try to remove .got entries in favour of .got.plt entries on VxWorks.
(_bfd_mips_elf_check_relocs): Do not try to avoid allocating
a global GOT entry for VxWorks calls. Update uses of
mips_elf_record_global_got_symbol.
(allocate_dynrelocs): Set got_only_for_calls to false if the GOT
entry is used for dynamic relocations.
bfd/
* elfxx-mips.c (mips_got_entry): Adjust commentary.
(mips_elf_create_local_got_entry): If given a symbol, check that it
has been assigned to the local part of the GOT.
(mips_elf_count_got_symbols): Take the bfd_link_info as argument
instead of the master GOT. Put all locally-binding symbols in
the local area.
(mips_elf_make_got_per_bfd): Use global_got_area to decide whether
a symbol lives in the local or global area.
(mips_elf_local_relocation_p): Remove check_forced argument and
retain only the !check_forced behavior.
(mips_elf_calculate_relocation): Adjust call accordingly.
Use global_got_area to decide whether an output relocation
should be local or global. Explicitly decay R_MIPS_GOT_PAGE
into R_MIPS_GOT_DISP where appropriate. Fix selection of
local vs. global semantics for R_MIPS*_26. Remove redundant
reevaluation of what is stored in was_local_p.
(mips_elf_create_dynamic_relocation): Use global_got_area to decide
whether the relocation should be against a global or local symbol.
(mips_elf_lay_out_got): Update the GOT traversal after the above
change to mips_elf_count_got_symbols.
(mips_elf_adjust_addend): Adjust call to mips_elf_local_relocation_p.
(_bfd_mips_elf_relocate_section): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Use global_got_area to decide
whether the symbol has a global got entry.
(_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
ld/testsuite/
* ld-mips-elf/elf-rel-got-n32.d: Swap two local GOT entries
and remove some duplication between the global and local GOT
entries. Adjust GP offsets accordingly.
* ld-mips-elf/elf-rel-got-n64-linux.d: Likewise.
* ld-mips-elf/elf-rel-xgot-n32.d: Reorder GOT entries and update
GP offsets accordingly.
* ld-mips-elf/elf-rel-xgot-n64-linux.d: Likewise.
* ld-mips-elf/mips16-pic-1.gd: Move all global GOT entries to
the local GOT.
* ld-mips-elf/mips16-pic-1.dd: Update GP offsets accordingly.
* ld-mips-elf/multi-got-no-shared.d: Adjust GP setup for
smaller GOT sizes.
bfd/
* elfxx-mips.c (_bfd_mips_elf_check_relocs): On VxWorks,
exclude __GOTT_BASE__ and __GOTT_INDEX__ from the warning
about HI/LO relocations in shared objects.
H.J. Lu [Sat, 18 Sep 2010 00:42:25 +0000 (00:42 +0000)]
Add a target argument.
2010-09-15 H.J. Lu <hongjiu.lu@intel.com>
* emul_aix.c (ar_emul_aix_append): Add a target argument
and ignore it if it is set.
(ar_emul_aix5_append): Likewise.
(ar_emul_aix_replace): Likewise.
(ar_emul_aix5_replace): Likewise.
Ian Lance Taylor [Sat, 18 Sep 2010 00:34:58 +0000 (00:34 +0000)]
* testsuite/Makefile.am (memory_test.o): New target.
(memory_test): Depend on memory_test.o, gcctestdir/ld, and
memory_test.t.
* testsuite/Makefile.in: Rebuild.
* arm.cc (Target_arm::Relocate::relocate): Ignore symbol type and
defintion if relocation uses GOT entries of the symbol.
* testsuite/icf_safe_test.sh: Fix test.
* testsuite/icf_safe_so_test.sh: Fix test.
* config/tc-arm.c (insns): Change MRC entry to accept APSR_RR instead
of just RR.
2010-09-17 Tejas Belagod <tejas.belagod@arm.com>
* gas/arm/copro.s: Add test for APSR_nzcv as a MRC operand.
* gas/arm/copro.d: Change pc in MRC to disassemble as APSR_nzcv. Also
add disassembly for test added in copro.s
2010-09-17 Tejas Belagod <tejas.belagod@arm.com>
* arm_dis.c (coprocessor_opcodes): Add MRC entry for APSR_nzcv.
Phil Muldoon [Thu, 16 Sep 2010 13:47:55 +0000 (13:47 +0000)]
2010-09-16 Phil Muldoon <pmuldoon@redhat.com>
PR mi/11407
* mi/mi-cmd-stack.c (list_args_or_locals): Catch exceptions from
read_var_value and common_val_print and print a warning.
2010-09-16 Phil Muldoon <pmuldoon@redhat.com>
Jan Kratochvil <jan.kratochvil@redhat.com>
PR mi/11407
* gdb.mi/dw2-ref-missing-frame-func.c: New File.
* gdb.mi/dw2-ref-missing-frame-main.c New File.
* gdb.mi/dw2-ref-missing-frame.S New File.
* gdb.mi/dw2-ref-missing-frame.exp New File.
Alan Modra [Thu, 16 Sep 2010 10:36:00 +0000 (10:36 +0000)]
* elf32-spu.c (spu_elf_size_sections): Omit fixups for non-alloc
sections.
(spu_elf_create_sections): Mark .fixup with SEC_LINKER_CREATED and
set dynobj.
(spu_elf_finish_dynamic_sections): New function.
(elf_backend_finish_dynamic_sections): Define.
Alan Modra [Thu, 16 Sep 2010 00:39:11 +0000 (00:39 +0000)]
* gas/all/redef3.d: Don't run on arc.
* gas/i386/i386.exp: Don't run intel-got32 on linuxaout. Move
x86_64 mingw exclusions to equivalent elf only block of tests.
Alan Modra [Thu, 16 Sep 2010 00:06:12 +0000 (00:06 +0000)]
bfd/
* elf.c (bfd_elf_get_default_section_type): Don't test SEC_NEVER_LOAD.
* elflink.c (elf_link_input_bfd): Likewise.
ld/
* ld.texinfo (NOLOAD): Do not erroneously state that contents will
appear in output file.
* ldlang.c (lang_add_section): Clear SEC_HAS_CONTENTS on noload
unless SEC_COFF_SHARED_LIBRARY.
(map_input_to_output_sections): Don't set SEC_HAS_CONTENTS for noload
output sections.
(lang_size_sections_1): Don't test SEC_NEVER_LOAD when deciding
to update dot in region. Ditto when setting SEC_ALLOC if dot
advanced due to assignment.
* ldwrite.c (build_link_order): Don't test SEC_NEVER_LOAD.
Kai Tietz [Wed, 15 Sep 2010 19:43:56 +0000 (19:43 +0000)]
ChangeLog gas
2010-09-15 Kai Tietz <kai.tietz@onevision.com>
* config/obj-coff-seh.h (seh_context): New member code_seg.
* config/obj-coff-seh.c: Implementing xdata/pdata section cloning
for link-once code-segment.
ChangeLog ld
2010-09-15 Kai Tietz <kai.tietz@onevision.com>
* scripttempl/pep.sc: Add .xdata segment and
put into .pdata all segments beginning with .pdata.
ChangeLog gas/testsuite
2010-09-15 Kai Tietz <kai.tietz@onevision.com>
H.J. Lu [Wed, 15 Sep 2010 17:10:15 +0000 (17:10 +0000)]
Pass "plugin" as target for "ar --plugin" when opening a BFD file.
2010-09-15 H.J. Lu <hongjiu.lu@intel.com>
* ar.c (plugin_target): New.
(main): Set plugin_target to "plugin" for --plugin.
(open_inarch): Initialize target to plugin_target.
(replace_members): Pass plugin_target to ar_emul_replace
and ar_emul_append.
* binemul.h (ar_emul_append): Add a target argument.
(ar_emul_default_append): Likewise.
(ar_emul_replace): Likewise.
(ar_emul_default_replace): Likewise.
(bin_emulation_xfer_struct): Add a target argument to
ar_append and ar_replace.
gas/testsuite/
* gas/mips/mips32r2-sync.d: New test for MIPS32r2 "sync"
instruction variants.
* gas/mips/octeon@mips32r2-sync.d: Likewise, Octeon version.
* gas/mips/mips32r2-sync.s: Source for the new test.
* gas/mips/mips.exp: Run the new test.
* x86_64.cc (Target_x86_64::saw_tls_block_reloc_): Remove member.
(Target_x86_64::Relocate::relocate_tls): Replace check for
saw_tls_block_reloc_ with test for executable section.
Tom Tromey [Tue, 14 Sep 2010 19:08:30 +0000 (19:08 +0000)]
gdb
PR exp/11803:
* value.c (value_static_field): Use value_of_variable.
gdb/testsuite
PR exp/11803:
* gdb.threads/tls.exp: Use C++.
(check_thread_local): Use K::another_thread_local.
* gdb.threads/tls.c (class K): New.
(another_thread_local): Now a member of K.
(spin): Update. No longer K&R C.
Joel Brobecker [Mon, 13 Sep 2010 19:10:30 +0000 (19:10 +0000)]
[LynxOS] Remove handling of PTRACE_* values removed in Lynx5.
Some of the PTRACE_ macros/values were removed in LynxOS 5.x.
Since we have not use them so far, the chances that we will use them
one day are very small. So I decided to delete them.
gdb/gdbserver/ChangeLog:
* lynx-low.c (ptrace_request_to_str): Remove handling for
request values that have been removed in LynxOS 5.x.
Joel Brobecker [Mon, 13 Sep 2010 19:10:19 +0000 (19:10 +0000)]
[LynxOS] Include sys/ptrace.h instead of ptrace.h.
This is one of the changes needed in order to build gdbserver on
LynxOS 5.x.
Really interesting: On LynxOS 4.x, there is a #warning when sys/ptrace.h
is used (explaining that ptrace.h will be used instead), whereas this
file was removed from LynxOS 5.x. The contents of sys/ptrace.h on 4.x
(or at least the meat of it):
The fix I went for, for now, is to just include <sys/ptrace.h>
unconditionally. I could have done some configury, but we already
have to build with -D__NO_INCLUDE_WARN__ to avoid the warnings
anyway, and that's unvoidable, due to system includes themselves
including the "wrong" header file.
Since <sys/ptrace.h> seems to be the choice that was made for LynxOS,
and since it works to include it on LynxOS 4.x, I think that's the simplest
solution.
gdb/gdbserver/ChangeLog:
* lynx-low.c, lynx-ppc-low.c: Include <sys/ptrace.h> instead of
<ptrace.h>
* symtab.h (Symbol::needs_dynamic_reloc): Non-PIC calls from
position-independent executables to shared libraries need dynamic
relocations.
(Symbol::may_need_copy_reloc): Do not generate COPY relocs in
position-independent executables.
* testsuite/Makefile.am (two_file_mixed_pie_test): New test.
* testsuite/Makefile.in: Regenerate.
Jan Kratochvil [Sat, 11 Sep 2010 16:00:27 +0000 (16:00 +0000)]
gdb/
Redirect also uiout and stdtarg{,err} in execute_command_to_string.
* cli-logging.c (struct saved_output_files) <targerr>: New.
(set_logging_redirect, pop_output_files, handle_redirections):
Redirect also gdb_stdtargerr.
* defs.h (struct ui_out, make_cleanup_ui_out_redirect_pop): New
declarations.
* event-top.c (gdb_setup_readline, gdb_disable_readline): Redirect
also gdb_stdtargerr.
* top.c (execute_command_to_string): Move make_cleanup_ui_file_delete
to the top. Redirect also gdb_stdlog, gdb_stdtarg and gdb_stdtargerr.
Use ui_out_redirect, register make_cleanup_ui_out_redirect_pop.
* tui/tui-io.c (tui_setup_io): Redirect also gdb_stdtargerr.
* utils.c (do_ui_out_redirect_pop, make_cleanup_ui_out_redirect_pop):
New functions.
gdb/testsuite/
* gdb.python/python.exp (set height 0, collect help from uiout)
(verify help to uiout): New tests.
Pierre Muller [Fri, 10 Sep 2010 16:17:14 +0000 (16:17 +0000)]
* hppa-tdep.c (unwind_command): Use host_address_to_string function
to display a host address.
* monitor.c (monitor_read_memory): Likewise.
* xtensa-tdep.c (xtensa_push_dummy_call): Likewise.
Nick Clifton [Fri, 10 Sep 2010 12:11:28 +0000 (12:11 +0000)]
* objcopy.c: Add --interleave-width option to allow interleaving
of more than one byte at a time.
(copy_width): New variable.
(copy_options): Add --interleave-width.
(copy_section): When interleaving copy in units of copy_width
bytes.
(copy_main): Parse the new option.
* doc/binutils: Document the new option.
* NEWS: Mention the new feature.
* binutils-all/objcopy.exp: Add test of new --interleave-width
option.
Alan Modra [Fri, 10 Sep 2010 01:23:12 +0000 (01:23 +0000)]
PR ld/11931
* ldlang.h (lang_for_each_statement_worker): Declare.
* ldlang.c (lang_for_each_statement_worker): Make global. Don't
recurse into children of output_section_statement with constraint
set to -1.
(print_assignment): Handle NULL output_section->bfd_section.
(lang_size_sections_1): Ignore output section statement address
when constraint is -1.
* emultempl/xtensaelf.em (lang_for_each_statement_worker): Delete.