https://sourceware.org/bugzilla/show_bug.cgi?id=17689
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> --- This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gdb and binutils". The branch, master has been updated via bc696fd5af08fa199750abfca092894ab54206c7 (commit) from 94ec908766bbe8c146798754261bcce83572b00f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=bc696fd5af08fa199750abfca092894ab54206c7 commit bc696fd5af08fa199750abfca092894ab54206c7 Author: H.J. Lu <hjl.to...@gmail.com> Date: Sat Dec 13 23:37:22 2014 -0800 Handle weak alias for PIE with copy reloc When there is a weak symbol with a real definition, the processor independent code will have arranged for us to see the real definition first. We need to copy the needs_copy bit from the real definition and check it when allowing copy reloc in PIE. bfd/ PR ld/17689 * elf64-x86-64.c (elf_x86_64_link_hash_entry): Add needs_copy. Change has_bnd_reloc to bit field. (elf_x86_64_link_hash_newfunc): Initialize needs_copy and has_bnd_reloc to 0. (elf_x86_64_check_relocs): Set has_bnd_reloc to 1 instead of TRUE. (elf_x86_64_adjust_dynamic_symbol): Copy needs_copy from the real definition to a weak symbol. (elf_x86_64_allocate_dynrelocs): Also check needs_copy of a weak symbol for PIE when discarding space for relocs against symbols which turn out to need copy relocs. (elf_x86_64_relocate_section): Also check needs_copy of a weak symbol for PIE with copy reloc. ld/testsuite/ PR ld/17689 * ld-x86-64/pr17689.out: New file. * ld-x86-64/pr17689.rd: Likewise. * ld-x86-64/pr17689a.c: Likewise. * ld-x86-64/pr17689b.S: Likewise. * ld-x86-64/x86-64.exp: Run PR ld/17689 tests. ----------------------------------------------------------------------- Summary of changes: bfd/ChangeLog | 17 ++++++++++++ bfd/elf64-x86-64.c | 27 ++++++++++++++----- ld/testsuite/ChangeLog | 10 +++++++ .../{ld-elf/dl5.out => ld-x86-64/pr17689.out} | 0 ld/testsuite/ld-x86-64/pr17689.rd | 3 ++ ld/testsuite/ld-x86-64/pr17689a.c | 10 +++++++ ld/testsuite/ld-x86-64/pr17689b.S | 12 +++++++++ ld/testsuite/ld-x86-64/x86-64.exp | 24 +++++++++++++++++ 8 files changed, 96 insertions(+), 7 deletions(-) copy ld/testsuite/{ld-elf/dl5.out => ld-x86-64/pr17689.out} (100%) create mode 100644 ld/testsuite/ld-x86-64/pr17689.rd create mode 100644 ld/testsuite/ld-x86-64/pr17689a.c create mode 100644 ld/testsuite/ld-x86-64/pr17689b.S -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils