[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/17689] PIE copy relocations handling broken with ld.bfd
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug ld/17689] PIE copy relocations handling broken with ld.bfd |
Date: |
Sun, 14 Dec 2014 07:53:35 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=17689
--- Comment #2 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, binutils-2_25-branch has been updated
via 3e5d8b05745a9fa1d9ad120459143e6e36cfbde0 (commit)
from 27cef631a78b56f8ad030ba6231432e04cc1838e (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=3e5d8b05745a9fa1d9ad120459143e6e36cfbde0
commit 3e5d8b05745a9fa1d9ad120459143e6e36cfbde0
Author: H.J. Lu <address@hidden>
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 | 22 ++++++++++++++++
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, 101 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.