2017-02-20 14:50:45 +08:00
|
|
|
|
2017-02-20 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 21181
|
|
|
|
|
* elflink.c (bfd_elf_final_link): Make DT_REL/DT_RELA zero
|
|
|
|
|
if DT_RELSZ/DT_RELASZ is zero.
|
|
|
|
|
|
2017-02-17 19:39:20 +08:00
|
|
|
|
2017-02-17 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* compress.c (bfd_get_full_section_contents): Remember to reduce
|
|
|
|
|
compressed size by the sizeof the compression header when
|
|
|
|
|
decompressing the contents.
|
|
|
|
|
|
2017-02-17 09:26:12 +08:00
|
|
|
|
2017-02-17 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* srec.c (Chunk): Rename to ...
|
|
|
|
|
(_bfd_srec_len): ... this.
|
|
|
|
|
(S3Forced): Rename to ...
|
|
|
|
|
(_bfd_srec_forceS3): ... this.
|
|
|
|
|
* objcopy.c: Adjust all references.
|
|
|
|
|
|
2017-02-17 09:26:12 +08:00
|
|
|
|
2017-02-17 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* archive.c (bsd_write_armap): Rename to ...
|
|
|
|
|
(_bfd_bsd_write_armap): ... this.
|
|
|
|
|
(coff_write_armap): Rename to ...
|
|
|
|
|
(_bfd_coff_write_armap): ... this.
|
|
|
|
|
* libbfd-in.h (bsd_write_armap): Rename to ...
|
|
|
|
|
(_bfd_bsd_write_armap): ... this.
|
|
|
|
|
(coff_write_armap): Rename to ...
|
|
|
|
|
(_bfd_coff_write_armap): ... this.
|
|
|
|
|
* aout-target.h, aout-tic30.c: Adjust all users.
|
|
|
|
|
* libbfd.h: Regenerate.
|
|
|
|
|
|
2017-02-17 09:26:12 +08:00
|
|
|
|
2017-02-17 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* bfd-in.h (bfd_read, bfd_write): Adjust to rename.
|
|
|
|
|
(warn_deprecated): Rename to ...
|
|
|
|
|
(_bfd_warn_deprecated): ... this.
|
|
|
|
|
* libbfd.c (warn_deprecated): Rename to ...
|
|
|
|
|
(_bfd_warn_deprecated): ... this.
|
|
|
|
|
* bfd-in2.h: Regenerate.
|
|
|
|
|
|
2017-02-17 09:26:12 +08:00
|
|
|
|
2017-02-17 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* bfdio.c (real_ftell): Rename to ...
|
|
|
|
|
(_bfd_real_ftell): ... this.
|
|
|
|
|
(real_fseek): Rename to ...
|
|
|
|
|
(_bfd_real_fseek): ... this.
|
|
|
|
|
(real_fopen): Rename to ...
|
|
|
|
|
(_bfd_real_fopen): ... this.
|
|
|
|
|
* libbfd-in.h (real_ftell): Rename to ...
|
|
|
|
|
(_bfd_real_ftell): ... this.
|
|
|
|
|
(real_fseek): Rename to ...
|
|
|
|
|
(_bfd_real_fseek): ... this.
|
|
|
|
|
(real_fopen): Rename to ...
|
|
|
|
|
(_bfd_real_fopen): ... this.
|
|
|
|
|
* cache.c, dwarf2.c, opncls.c: Adjust all callers.
|
|
|
|
|
* libbfd.h: Regenerate.
|
|
|
|
|
|
2017-02-17 09:26:11 +08:00
|
|
|
|
2017-02-17 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2.c, elf-attrs.c, elf32-nds32.c: Adjust all callers.
|
|
|
|
|
* libbfd.c (read_unsigned_leb128): Rename to ...
|
|
|
|
|
(_bfd_read_unsigned_leb128): ... this.
|
|
|
|
|
(read_signed_leb128): Rename to ...
|
|
|
|
|
(_bfd_read_signed_leb128): ... this.
|
|
|
|
|
(safe_read_leb128): Rename to ...
|
|
|
|
|
(_bfd_safe_read_leb128): ... this.
|
|
|
|
|
* libbfd-in.h (read_unsigned_leb128): Rename to ...
|
|
|
|
|
(_bfd_read_unsigned_leb128): ... this.
|
|
|
|
|
(read_signed_leb128): Rename to ...
|
|
|
|
|
(_bfd_read_signed_leb128): ... this.
|
|
|
|
|
(safe_read_leb128): Rename to ...
|
|
|
|
|
(_bfd_safe_read_leb128): ... this.
|
|
|
|
|
* libbfd.h: Renegerate.
|
|
|
|
|
|
2016-12-19 23:27:59 +08:00
|
|
|
|
2017-02-16 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Perform symbol lookup
|
|
|
|
|
before trying to fine matching file and line information.
|
|
|
|
|
|
bfd/dwarf: Improve use of previously loaded dwarf information
When parsing DWARF data in order to report file/line type error messages
we perform section placement to make section addresses unique within
relocatable object files.
Currently, if we reuse previously loaded (and cached) dwarf data then we
neglect to perform section placement, the result is that the section
addresses will not be unique, and we might, incorrectly associate an
address with the wrong debug information, and so report an incorrect
file and line number.
Further we neglect to check that that bfd for which we are looking up
debug information is actually the bfd for which the previous debug
information was loaded, it is possible that we will reuse previously
loaded debug information for a different bfd.
And finally, due to following of gnu_debuglink links in one bfd to
another, the process of checking that the cached debug information is
valid requires us to track the original bfd in the cached debug
information. The original debug information here is either the bfd that
we're interested in, not the bfd we finally load the debug information
from.
bfd/ChangeLog:
* dwarf2.c (struct dwarf2_debug): Add orig_bfd member.
(_bfd_dwarf2_slurp_debug_info): If stashed debug information does
not match current bfd, then reload debug information. Record bfd
we're loading debug info for in the stash. If we have debug
informatin in the cache then perform section placement before
returning.
ld/ChangeLog:
* testsuite/ld-elf/dwarf.exp (build_tests): Add new tests.
* testsuite/ld-elf/dwarf2.err: New file.
* testsuite/ld-elf/dwarf2a.c: New file.
* testsuite/ld-elf/dwarf2b.c: New file.
* testsuite/ld-elf/dwarf3.c: New file.
* testsuite/ld-elf/dwarf3.err: New file.
2016-12-15 23:22:49 +08:00
|
|
|
|
2017-02-16 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2.c (struct dwarf2_debug): Add orig_bfd member.
|
|
|
|
|
(_bfd_dwarf2_slurp_debug_info): If stashed debug information does
|
|
|
|
|
not match current bfd, then reload debug information. Record bfd
|
|
|
|
|
we're loading debug info for in the stash. If we have debug
|
|
|
|
|
informatin in the cache then perform section placement before
|
|
|
|
|
returning.
|
|
|
|
|
|
2017-02-14 08:15:51 +08:00
|
|
|
|
2017-02-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 21000
|
|
|
|
|
* elf-bfd.h (struct elf_backend_data): Add no_page_alias.
|
|
|
|
|
* elfxx-target.h (elf_backend_no_page_alias): Define.
|
|
|
|
|
(elfNN_bed): Init new field.
|
|
|
|
|
* elf.c (assign_file_positions_for_load_sections): If no_page_alias
|
|
|
|
|
ensure PT_LOAD segment starts on a new page.
|
|
|
|
|
* elf32-hppa.c (elf_backend_no_page_alias): Define.
|
|
|
|
|
|
2017-02-16 09:53:12 +08:00
|
|
|
|
2017-02-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 21132
|
|
|
|
|
* elf32-hppa.c (allocate_plt_static): Allocate space for relocs
|
|
|
|
|
if pic.
|
|
|
|
|
|
2017-02-16 17:40:03 +08:00
|
|
|
|
2017-02-16 Jiong Wang <jiong.wang@arm.com>
|
|
|
|
|
|
|
|
|
|
* bfd.c (BFD_FLAGS_SAVED): Add BFD_LINKER_CREATED.
|
|
|
|
|
* bfd-in2.h: Regenerated.
|
|
|
|
|
|
2017-02-16 03:39:30 +08:00
|
|
|
|
2017-02-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/21168
|
|
|
|
|
* elf32-i386.c (elf_i386_relocate_section): Allow
|
|
|
|
|
"lea foo@GOT, %reg" in PIC.
|
|
|
|
|
|
2017-02-16 02:55:51 +08:00
|
|
|
|
2017-02-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/20244
|
|
|
|
|
* elf32-i386.c (elf_i386_relocate_section): Properly get IFUNC
|
|
|
|
|
symbol name when reporting R_386_GOT32/R_386_GOT32X relocation
|
|
|
|
|
error against local IFUNC symbol without a base register for
|
|
|
|
|
PIC.
|
|
|
|
|
|
2017-02-07 10:07:21 +08:00
|
|
|
|
2017-02-15 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elf32-ppc.c (ppc_elf_check_relocs): Use `%H:' rather than
|
|
|
|
|
`%P: %H:' with `info->callbacks->einfo'.
|
|
|
|
|
(ppc_elf_relocate_section): Likewise.
|
|
|
|
|
* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
|
|
|
|
|
(ppc64_elf_edit_toc): Likewise.
|
|
|
|
|
(ppc64_elf_relocate_section): Likewise.
|
|
|
|
|
|
2017-02-14 13:29:13 +08:00
|
|
|
|
2017-02-14 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf64-ppc.c (ppc64_elf_gc_mark_dynamic_ref): Support
|
|
|
|
|
--gc-keep-exported, and test versioned field of sym rather than
|
|
|
|
|
looking for @ in name.
|
|
|
|
|
|
2017-02-09 03:26:07 +08:00
|
|
|
|
2017-02-13 Palmer Dabbelt <palmer@dabbelt.com>
|
|
|
|
|
|
|
|
|
|
* elfnn-riscv.c (riscv_global_pointer_value): Change _gp to
|
|
|
|
|
__global_pointer$.
|
|
|
|
|
|
2017-02-14 01:51:27 +08:00
|
|
|
|
2017-02-13 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/21151
|
|
|
|
|
* dwarf2.c (_bfd_dwarf2_find_nearest_line): Check for an invalid
|
|
|
|
|
unit length field.
|
|
|
|
|
|
2017-01-24 04:58:30 +08:00
|
|
|
|
2017-02-07 Andrew Waterman <andrew@sifive.com>
|
|
|
|
|
|
|
|
|
|
* elfnn-riscv.c (riscv_elf_finish_dynamic_sections): Only write PLT
|
|
|
|
|
entry size if PLT header is written.
|
|
|
|
|
|
2017-02-07 22:05:59 +08:00
|
|
|
|
2017-02-06 Sheldon Lobo <sheldon.lobo@oracle.com>
|
|
|
|
|
|
|
|
|
|
Fix sparc64 dynamic relocation processing to use the dynamic
|
|
|
|
|
symbol count.
|
|
|
|
|
* elf64-sparc.c (elf64_sparc_slurp_one_reloc_table): Use 'dynamic'
|
|
|
|
|
to determine if bfd_get_symcount() or bfd_get_dynamic_symcount()
|
|
|
|
|
should be used.
|
|
|
|
|
|
2017-02-03 17:04:21 +08:00
|
|
|
|
2017-02-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 21096
|
|
|
|
|
* coffcode.h (coff_write_object_contents): Enlarge size of
|
|
|
|
|
s_name_buf in order to avoid compile time warning about possible
|
|
|
|
|
integer truncation.
|
|
|
|
|
* elf32-nds32.c (nds32_elf_ex9_import_table): Mask off lower
|
|
|
|
|
32-bits of insn value before printing into buffer.
|
|
|
|
|
|
2017-02-03 06:05:46 +08:00
|
|
|
|
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elfxx-mips.c (mips_elf_hash_sort_data): Add
|
|
|
|
|
`max_local_dynindx'.
|
|
|
|
|
(mips_elf_sort_hash_table): Handle it.
|
|
|
|
|
(mips_elf_sort_hash_table_f) <GGA_NONE>: For forced local
|
|
|
|
|
symbols bump up `max_local_dynindx' rather than
|
|
|
|
|
`max_non_got_dynindx'.
|
|
|
|
|
|
2017-02-03 05:43:26 +08:00
|
|
|
|
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elfxx-mips.c (mips_elf_hash_sort_data): Convert the
|
|
|
|
|
`min_got_dynindx', `max_unref_got_dynindx' and
|
|
|
|
|
`max_non_got_dynindx' members to the `bfd_size_type' data type.
|
|
|
|
|
(mips_elf_sort_hash_table): Adjust accordingly.
|
|
|
|
|
|
2017-02-03 05:30:27 +08:00
|
|
|
|
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elfxx-mips.c (mips_elf_sort_hash_table): Use `htab' throughout
|
|
|
|
|
to access the hash table.
|
|
|
|
|
|
2017-02-03 04:53:16 +08:00
|
|
|
|
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elfxx-mips.c (mips_elf_sort_hash_table): Move assertion on
|
|
|
|
|
non-NULL `htab' to the beginning.
|
|
|
|
|
|
2017-02-03 00:44:09 +08:00
|
|
|
|
2017-02-02 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elflink.c (elf_gc_sweep): Wrap overlong line.
|
|
|
|
|
|
2017-01-31 01:11:22 +08:00
|
|
|
|
2017-01-30 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* elfxx-mips.h (_bfd_mips_elf_insn32): Rename prototype to...
|
|
|
|
|
(_bfd_mips_elf_linker_flags): ... this. Add another parameter.
|
|
|
|
|
* elfxx-mips.c (mips_elf_link_hash_table): Add
|
|
|
|
|
`ignore_branch_isa' member.
|
|
|
|
|
(mips_elf_perform_relocation): Do not treat an ISA mode mismatch
|
|
|
|
|
in branch relocation calculation as an error if
|
|
|
|
|
`ignore_branch_isa' has been set.
|
|
|
|
|
(_bfd_mips_elf_insn32): Rename to...
|
|
|
|
|
(_bfd_mips_elf_linker_flags): ... this. Rename the `on'
|
|
|
|
|
parameter to `insn32' and add an `ignore_branch_isa' parameter.
|
|
|
|
|
Handle the new parameter.
|
|
|
|
|
|
2017-01-27 08:50:06 +08:00
|
|
|
|
2017-01-27 Hans-Peter Nilsson <hp@axis.com>
|
|
|
|
|
|
2017-01-27 16:12:14 +08:00
|
|
|
|
* elf32-cris.c (elf_cris_finish_dynamic_symbol): Remove now unused
|
|
|
|
|
local variable dynobj.
|
|
|
|
|
|
2017-01-27 08:50:06 +08:00
|
|
|
|
PR ld/20995
|
|
|
|
|
* elf32-cris.c (elf_cris_size_dynamic_sections): Handle sdynrelro.
|
|
|
|
|
(elf_cris_adjust_dynamic_symbol): Place variables copied into the
|
|
|
|
|
executable from read-only sections into sdynrelro.
|
|
|
|
|
(elf_cris_finish_dynamic_symbol): Select sreldynrelro for
|
|
|
|
|
dynamic relocs in sdynrelro.
|
|
|
|
|
(elf_backend_want_dynrelro): Define.
|
|
|
|
|
|
2017-01-25 15:26:46 +08:00
|
|
|
|
2017-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config.bfd (*-*-rtemsaout*): Mark as removed.
|
|
|
|
|
|
2017-01-25 15:25:57 +08:00
|
|
|
|
2017-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config.bfd (powerpcle-*-rtems*): Do not mark as removed.
|
|
|
|
|
(arm-*-rtems*): Move to (arm*-*-eabi*).
|
|
|
|
|
(i[3-7]86-*-rtems*): Move to (i[3-7]86-*-elf*).
|
|
|
|
|
(m68-*-rtems*): Move to (m68*-*-elf*).
|
|
|
|
|
|
2017-01-25 15:22:27 +08:00
|
|
|
|
2017-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
|
|
|
|
|
|
|
|
|
* config.bfd (*-*-rtemscoff*): Mark as removed.
|
|
|
|
|
|
2017-01-23 19:38:20 +08:00
|
|
|
|
2017-01-24 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
PR ld/20828
|
|
|
|
|
* elflink.c (bfd_elf_record_link_assignment): Revert last
|
|
|
|
|
change and don't ever clear `forced_local'. Set `mark'
|
|
|
|
|
unconditionally.
|
|
|
|
|
(elf_gc_sweep_symbol_info, elf_gc_sweep_symbol): Reorder within
|
|
|
|
|
file.
|
|
|
|
|
(elf_gc_sweep): Move the call to `elf_gc_sweep_symbol'...
|
|
|
|
|
(bfd_elf_size_dynamic_sections): ... here.
|
|
|
|
|
* elf32-ppc.c (ppc_elf_tls_setup): Don't clear `forced_local'
|
|
|
|
|
and set `mark' instead in `__tls_get_addr_opt' processing.
|
|
|
|
|
* elf64-ppc.c (ppc64_elf_tls_setup): Likewise.
|
|
|
|
|
|
2017-01-24 06:13:01 +08:00
|
|
|
|
2017-01-24 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Merge two cases
|
|
|
|
|
where dynamic relocs are preferable. Allow ifunc too.
|
|
|
|
|
(ensure_undefweak_dynamic): New function.
|
|
|
|
|
(allocate_dynrelocs): Use it here. Move plt handling last and
|
|
|
|
|
don't make symbols dynamic, simplifying loop. Only make undef
|
|
|
|
|
weak symbols with GOT entries dynamic. Correct condition
|
|
|
|
|
for GOT relocs. Handle dynamic relocs on ifuncs. Correct
|
|
|
|
|
comments. Remove goto.
|
|
|
|
|
(ppc_elf_relocate_section): Correct test for using dynamic
|
|
|
|
|
symbol on GOT relocs. Rearrange test for emitting GOT relocs
|
|
|
|
|
to suit. Set up explicit tls_index entries and implicit GOT
|
|
|
|
|
tls_index entries resolvable at link time for
|
|
|
|
|
__tls_get_addr_opt. Simplify test to clear mem for prelink.
|
|
|
|
|
* elf64-ppc.c (allocate_got): Correct condition for GOT relocs.
|
|
|
|
|
(ensure_undefweak_dynamic): New function.
|
|
|
|
|
(allocate_dynrelocs): Use it here. Only make undef weak symbols
|
|
|
|
|
with GOT entries dynamic. Remove unnecessary test of
|
|
|
|
|
WILL_CALL_FINISH_DYNAMIC_SYMBOL in PLT handling.
|
|
|
|
|
(ppc64_elf_relocate_section): Correct test for using dynamic
|
|
|
|
|
symbol on GOT relocs. Rearrange test for emitting GOT relocs
|
|
|
|
|
to suit. Set up explicit tls_index entries and implicit GOT
|
|
|
|
|
tls_index entries resolvable at link time for __tls_get_addr_opt.
|
|
|
|
|
Simplify expression to clear mem for prelink.
|
|
|
|
|
|
2017-01-24 01:07:13 +08:00
|
|
|
|
2017-01-23 Yury Norov <ynorov@caviumnetworks.com>
|
|
|
|
|
|
|
|
|
|
* elfnn-aarch64.c: Fix relaxations for ILP32 mode.
|
|
|
|
|
|
2017-01-20 21:30:32 +08:00
|
|
|
|
2017-01-20 Jiong Wang <jiong.wang@arm.com>
|
|
|
|
|
|
|
|
|
|
* elfnn-aarch64.c (elf_aarch64_hash_symbol): New function.
|
|
|
|
|
(elf_backend_hash_symbol): Define.
|
|
|
|
|
|
PR ld/20828: Fix linker script symbols wrongly forced local with section GC
Fix a generic ELF linker regression introduced with a chain of changes
made to unused input section garbage collection:
- commit 1a766c6843ce ("Also hide symbols without PLT nor GOT
references."),
<https://sourceware.org/ml/binutils/2011-09/msg00076.html>,
- commit 1d5316ab67e1 ("PR ld/13177: garbage collector retains zombie
references to external libraries"),
<https://sourceware.org/ml/binutils/2011-10/msg00161.html>,
- commit 6673f753c019 ("Fix PR 12772, garbage collection of dynamic
syms"), <https://sourceware.org/ml/binutils/2011-12/msg00077.html>,
causing the garbage collection of unused symbols present in a DSO
involved in a link to make identically named symbols ordinarily defined
(i.e. not hidden or PROVIDEd) by a linker script local, even though the
latter symbols are supposed to be global as if no DSO defined them as
well.
This is because linker script assignments are processed very late as
`lang_process' proceeds, down in the call to `ldemul_before_allocation',
which is made after the call to `lang_gc_sections' to do input section
garbage collecting. Consequently if unused, then any such DSO-defined
symbol has already been garbage-collected and internally marked local.
It would ordinarily be removed from dynamic symbol table output, however
a linker script assignment correctly replaces its original definition
with the new one and enters it into the dynamic symbol table produced as
it is supposed to be exported. The original local marking is however
retained making the symbol local in the dynamic symbol table and
therefore not available externally. This also causes a sorting problem
with the MIPS target, which does not expect non-section local dynamic
symbols to be output and produces an invalid binary.
Fix the problem then, by removing the `forced_local' marking for the
offending case and add suitable test cases. First to verify that unused
symbols ordinarily defined with linker script assignments remain
exported in the context of input section garbage collection whether or
not a DSO defining identically named symbols is present in the link.
Second that a linker version script still correctly retains or removes
such symbols as requested.
bfd/
PR ld/20828
* elflink.c (bfd_elf_record_link_assignment): Clear any
`forced_local' marking for DSO symbols that are not being
provided.
ld/
PR ld/20828
* testsuite/ld-elf/pr20828-1.sd: New test.
* testsuite/ld-elf/pr20828-2a.sd: New test.
* testsuite/ld-elf/pr20828-2b.sd: New test.
* testsuite/ld-elf/pr20828.ld: New test linker script.
* testsuite/ld-elf/pr20828.ver: New test version script.
* testsuite/ld-elf/pr20828.s: New test source.
* testsuite/ld-elf/shared.exp: Run the new test.
2017-01-17 06:10:57 +08:00
|
|
|
|
2017-01-18 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
PR ld/20828
|
|
|
|
|
* elflink.c (bfd_elf_record_link_assignment): Clear any
|
|
|
|
|
`forced_local' marking for DSO symbols that are not being
|
|
|
|
|
provided.
|
|
|
|
|
|
2017-01-17 09:46:28 +08:00
|
|
|
|
2017-01-17 Kuan-Lin Chen <kuanlinchentw@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elfnn-riscv.c (riscv_elf_object_p): New function.
|
|
|
|
|
|
2017-01-13 02:30:56 +08:00
|
|
|
|
2017-01-12 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/21038
|
|
|
|
|
* elf64-x86-64.c (elf_x86_64_link_hash_table): Add
|
|
|
|
|
plt_bnd_eh_frame.
|
|
|
|
|
(elf_x86_64_check_relocs): Create .eh_frame section for the
|
|
|
|
|
.plt.bnd section.
|
|
|
|
|
(elf_x86_64_size_dynamic_sections): Allocate and initialize
|
|
|
|
|
.eh_frame section for the .plt.bnd section.
|
|
|
|
|
(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
|
|
|
|
|
for the .plt.bnd section.
|
|
|
|
|
|
2017-01-13 00:56:54 +08:00
|
|
|
|
2017-01-12 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/20876
|
|
|
|
|
* opncls.c (find_separate_debug_file): Add include_dirs
|
|
|
|
|
parameter. Only include the directory part of the bfd's filename
|
|
|
|
|
in search paths if include_dirs is true. Add a couple of extra
|
|
|
|
|
locations for looking for debug files.
|
|
|
|
|
( bfd_follow_gnu_debuglink): Update invocation of
|
|
|
|
|
find_separate_debug_file.
|
|
|
|
|
(bfd_follow_gnu_debugaltlink): Likewise.
|
|
|
|
|
(get_build_id): New function: Finds the build-id of the given bfd.
|
|
|
|
|
(get_build_id_name): New function: Computes the name of the
|
|
|
|
|
separate debug info file for a bfd, based upon its build-id.
|
|
|
|
|
(check_build_id_file): New function: Checks to see if a separate
|
|
|
|
|
debug info file exists at the given location, and that its
|
|
|
|
|
build-id matches that of the original bfd.
|
|
|
|
|
(bfd_follow_build_id_debuglink): New function: Finds a separate
|
|
|
|
|
debug info file for a given bfd by using the build-id method.
|
|
|
|
|
* dwarf2.c (_bfd_dwarf2_slurp_debug_info): Try using the build-id
|
|
|
|
|
method of locating a separate debug info file before using the
|
|
|
|
|
debuglink method.
|
|
|
|
|
* bfd-in2.h: Regenerate.
|
|
|
|
|
|
2017-01-12 01:16:44 +08:00
|
|
|
|
2017-01-11 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/21038
|
|
|
|
|
* elf64-x86-64.c (elf_x86_64_eh_frame_bnd_plt): New.
|
|
|
|
|
(elf_x86_64_bnd_arch_bed): Use elf_x86_64_eh_frame_bnd_plt and
|
|
|
|
|
elf_x86_64_eh_frame_plt_got.
|
|
|
|
|
(elf_x86_64_size_dynamic_sections): Get unwind info from
|
|
|
|
|
elf_x86_64_bnd_arch_bed for the BND PLT.
|
|
|
|
|
|
2017-01-11 23:05:53 +08:00
|
|
|
|
2017-01-11 Jeremy Soller <jackpot51@gmail.com>
|
|
|
|
|
|
|
|
|
|
* config.bfd: Add entries for i686-redox and x86_64-redox.
|
|
|
|
|
|
2017-01-11 06:18:11 +08:00
|
|
|
|
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* elf32-i386.c (elf_i386_check_relocs): Align .eh_frame section
|
|
|
|
|
to 4 bytes.
|
|
|
|
|
* elf64-x86-64.c (elf_x86_64_create_dynamic_sections): Align
|
|
|
|
|
.eh_frame section to 4 bytes for x32.
|
|
|
|
|
(elf_x86_64_check_relocs): Likewise.
|
|
|
|
|
|
2017-01-11 05:31:59 +08:00
|
|
|
|
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/20830
|
|
|
|
|
* elf32-i386.c (elf_i386_eh_frame_plt_got): New.
|
|
|
|
|
(PLT_GOT_FDE_LENGTH): Likewise.
|
|
|
|
|
(elf_i386_plt_layout): Add eh_frame_plt_got and
|
|
|
|
|
eh_frame_plt_got_size.
|
|
|
|
|
(elf_i386_plt): Updated.
|
|
|
|
|
(elf_i386_link_hash_table): Add plt_got_eh_frame.
|
|
|
|
|
(elf_i386_check_relocs): Create .eh_frame section for .plt.got.
|
|
|
|
|
(elf_i386_size_dynamic_sections): Allocate and initialize
|
|
|
|
|
.eh_frame section for .plt.got.
|
|
|
|
|
(elf_i386_finish_dynamic_sections): Adjust .eh_frame section for
|
|
|
|
|
.plt.got.
|
|
|
|
|
(elf_i386_nacl_plt): Add FIXME for eh_frame_plt_got and
|
|
|
|
|
eh_frame_plt_got_size.
|
|
|
|
|
* elf64-x86-64.c (elf_x86_64_eh_frame_plt_got): New.
|
|
|
|
|
(PLT_GOT_FDE_LENGTH): Likewise.
|
|
|
|
|
(elf_x86_64_backend_data): Add eh_frame_plt_got and
|
|
|
|
|
eh_frame_plt_got_size.
|
|
|
|
|
(elf_x86_64_arch_bed): Updated.
|
|
|
|
|
(elf_x86_64_bnd_arch_bed): Add FIXME for eh_frame_plt_got and
|
|
|
|
|
eh_frame_plt_got_size.
|
|
|
|
|
(elf_x86_64_nacl_arch_bed): Likewise.
|
|
|
|
|
(elf_x86_64_link_hash_table): Add plt_got_eh_frame.
|
|
|
|
|
(elf_x86_64_check_relocs): Create .eh_frame section for .plt.got.
|
|
|
|
|
(elf_x86_64_size_dynamic_sections): Allocate and initialize
|
|
|
|
|
.eh_frame section for .plt.got.
|
|
|
|
|
(elf_x86_64_finish_dynamic_sections): Adjust .eh_frame section
|
|
|
|
|
for .plt.got.
|
|
|
|
|
|
2017-01-11 03:30:25 +08:00
|
|
|
|
2017-01-10 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* elf32-i386.c (elf_i386_size_dynamic_sections): Set
|
|
|
|
|
plt_eh_frame->size to eh_frame_plt_size and use eh_frame_plt.
|
|
|
|
|
|
2017-01-10 00:49:48 +08:00
|
|
|
|
2017-01-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dwarf2.c (lookup_address_in_function_table): Return early if
|
|
|
|
|
there are no functions in the given comp unit, or if the high
|
|
|
|
|
address of the last function in the comp unit is less than the
|
|
|
|
|
desired address.
|
|
|
|
|
|
2017-01-09 17:27:46 +08:00
|
|
|
|
2017-01-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/21013
|
|
|
|
|
* coffgen.c (_bfd_coff_get_external_symbols): Generate an error
|
|
|
|
|
message if there are too many symbols to load.
|
|
|
|
|
|
2017-01-04 00:15:15 +08:00
|
|
|
|
2017-01-04 James Clarke <jrtc27@jrtc27.com>
|
|
|
|
|
|
|
|
|
|
* elf64-alpha.c (elf64_alpha_relax_opt_call): Don't set tsec_free
|
|
|
|
|
if relocs are cached.
|
|
|
|
|
|
2017-01-04 00:18:41 +08:00
|
|
|
|
2017-01-03 Rich Felker <bugdal@aerifal.cx>
|
|
|
|
|
|
|
|
|
|
PR ld/21017
|
|
|
|
|
* elf32-microblaze.c (microblaze_elf_check_relocs): Add an entry
|
|
|
|
|
for R_MICROBLAZE_GOTOFF_64.
|
|
|
|
|
|
2017-01-03 23:26:27 +08:00
|
|
|
|
2017-01-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* mach-o.c (bfd_mach_o_lookup_uuid_command): Fix compile time
|
|
|
|
|
warning about using a possibly uninitialised variable.
|
|
|
|
|
|
2017-01-02 20:01:27 +08:00
|
|
|
|
2017-01-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf32-hppa.c (ensure_undef_weak_dynamic): New function.
|
|
|
|
|
(allocate_plt_static, allocate_dynrelocs): Use it.
|
|
|
|
|
|
2017-01-02 19:58:29 +08:00
|
|
|
|
2017-01-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elf-hppa.h (elf_hppa_fake_sections): Set SHF_INFO_LINK for
|
|
|
|
|
.PARISC.unwind section.
|
|
|
|
|
|
2017-01-02 19:36:28 +08:00
|
|
|
|
2017-01-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/20989
|
|
|
|
|
* elfxx-sparc.c (gdop_relative_offset_ok): New function.
|
|
|
|
|
(_bfd_sparc_elf_relocate_section): Use it to validate GOT
|
|
|
|
|
indirect to GOT pointer relative code edit.
|
|
|
|
|
|
2017-01-02 11:36:43 +08:00
|
|
|
|
2017-01-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
Update year range in copyright notice of all files.
|
|
|
|
|
|
2017-01-02 11:25:05 +08:00
|
|
|
|
For older changes see ChangeLog-2016
|
2016-01-01 18:44:31 +08:00
|
|
|
|
|
2017-01-02 11:25:05 +08:00
|
|
|
|
Copyright (C) 2017 Free Software Foundation, Inc.
|
2016-01-01 18:44:31 +08:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|