This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Copy relocations against protected symbols


On Fri, Dec 12, 2014 at 5:05 AM, Alan Modra <amodra@gmail.com> wrote:
> 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.
>

This caused:

https://sourceware.org/bugzilla/show_bug.cgi?id=17709

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]