[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:18 +0000 |
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 <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 | 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.