[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/15228] copy relocations against protected symbols should be disa
From: |
cvs-commit at gcc dot gnu.org |
Subject: |
[Bug ld/15228] copy relocations against protected symbols should be disallowed |
Date: |
Fri, 12 Dec 2014 13:07:48 +0000 |
https://sourceware.org/bugzilla/show_bug.cgi?id=15228
--- 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 6cabe1ea460c54c17ac877b2541eccf91d6b4b9c (commit)
from 21daaaaffcbda47b724858dd99ee2082043ef2da (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=6cabe1ea460c54c17ac877b2541eccf91d6b4b9c
commit 6cabe1ea460c54c17ac877b2541eccf91d6b4b9c
Author: Alan Modra <address@hidden>
Date: Fri Dec 12 22:53:46 2014 +1030
Copy relocations against protected symbols
Copy relocs are used in a scheme to avoid dynamic text relocations in
non-PIC executables that refer to variables defined in shared
libraries. The idea is to have the linker define any such variable in
the executable, with a copy reloc copying the initial value, then have
both the executable and shared library refer to the executable copy.
If the shared library defines the variable as protected then we have
two copies of the variable being used.
PR 15228
* elflink.c (_bfd_elf_adjust_dynamic_copy): Add "info" param.
Error on copy relocs against protected symbols.
(elf_merge_st_other): Set h->protected_def.
* elf-bfd.h (struct elf_link_hash_entry): Add "protected_def".
(_bfd_elf_adjust_dynamic_copy): Update prototype.
* elf-m10300.c (_bfd_mn10300_elf_adjust_dynamic_symbol): Update
_bfd_elf_adjust_dynamic_copy call.
* elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Likewise.
* elf32-cr16.c (_bfd_cr16_elf_adjust_dynamic_symbol): Likewise.
* elf32-cris.c (elf_cris_adjust_dynamic_symbol): Likewise.
* elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise.
* elf32-i370.c (i370_elf_adjust_dynamic_symbol): Likewise.
* elf32-i386.c (elf_i386_adjust_dynamic_symbol): Likewise.
* elf32-lm32.c (lm32_elf_adjust_dynamic_symbol): Likewise.
* elf32-m32r.c (m32r_elf_adjust_dynamic_symbol): Likewise.
* elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
* elf32-metag.c (elf_metag_adjust_dynamic_symbol): Likewise.
* elf32-or1k.c (or1k_elf_adjust_dynamic_symbol): Likewise.
* elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise.
* elf32-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
* elf32-sh.c (sh_elf_adjust_dynamic_symbol): Likewise.
* elf32-tic6x.c (elf32_tic6x_adjust_dynamic_symbol): Likewise.
* elf32-tilepro.c (tilepro_elf_adjust_dynamic_symbol): Likewise.
* elf32-vax.c (elf_vax_adjust_dynamic_symbol): Likewise.
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
* elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
* elf64-sh64.c (sh64_elf64_adjust_dynamic_symbol): Likewise.
* elf64-x86-64.c (elf_x86_64_adjust_dynamic_symbol): Likewise.
* elfnn-aarch64.c (elfNN_aarch64_adjust_dynamic_symbol): Likewise.
* elfxx-mips.c (_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol): Likewise.
* elfxx-tilegx.c (tilegx_elf_adjust_dynamic_symbol): Likewise.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 36 ++++++++++++++++++++++++++++++++++++
bfd/elf-bfd.h | 4 +++-
bfd/elf-m10300.c | 2 +-
bfd/elf32-arm.c | 2 +-
bfd/elf32-cr16.c | 2 +-
bfd/elf32-cris.c | 2 +-
bfd/elf32-hppa.c | 2 +-
bfd/elf32-i370.c | 2 +-
bfd/elf32-i386.c | 2 +-
bfd/elf32-lm32.c | 2 +-
bfd/elf32-m32r.c | 2 +-
bfd/elf32-m68k.c | 2 +-
bfd/elf32-metag.c | 2 +-
bfd/elf32-or1k.c | 2 +-
bfd/elf32-ppc.c | 2 +-
bfd/elf32-s390.c | 2 +-
bfd/elf32-sh.c | 2 +-
bfd/elf32-tic6x.c | 2 +-
bfd/elf32-tilepro.c | 2 +-
bfd/elf32-vax.c | 2 +-
bfd/elf64-ppc.c | 2 +-
bfd/elf64-s390.c | 2 +-
bfd/elf64-sh64.c | 2 +-
bfd/elf64-x86-64.c | 2 +-
bfd/elflink.c | 13 ++++++++++++-
bfd/elfnn-aarch64.c | 2 +-
bfd/elfxx-mips.c | 2 +-
bfd/elfxx-sparc.c | 2 +-
bfd/elfxx-tilegx.c | 2 +-
29 files changed, 77 insertions(+), 28 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.
- [Bug ld/15228] copy relocations against protected symbols should be disallowed,
cvs-commit at gcc dot gnu.org <=