aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-11-01 19:24:20 +1030
committerAlan Modra <amodra@gmail.com>2013-11-04 10:20:09 +1030
commita345bc8d317a159e3e887632d80c5a8282d34f07 (patch)
treeb715139c77d1b610f9e6a79dad21767bae1adeae /ld
parent4115bfc68301edaca4dd1fd83eddeaafeda4c63c (diff)
downloadgdb-a345bc8d317a159e3e887632d80c5a8282d34f07.zip
gdb-a345bc8d317a159e3e887632d80c5a8282d34f07.tar.gz
gdb-a345bc8d317a159e3e887632d80c5a8282d34f07.tar.bz2
PowerPC64 ELFv2 symbols defined in plt
In a non-pic executable, ELFv2 like other targets, needs to emit a plt entry even for non-call references to functions defined in shared libraries, and define the function on the plt code. * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Copy pointer_equality_needed flag. (ppc64_elf_check_relocs): For ELFv2 arrange to emit plt entries for references to functions in shared libraries on non-call relocs. (readonly_dynrelocs): Split into function of the same name and.. (maybe_set_textrel): ..this new function. Update call. (ppc64_elf_adjust_dynamic_symbol): Don't emit dynrelocs for ELFv2 in most cases if we have a plt entry. Use new readonly_relocs. (allocate_dynrelocs): For ELFv2, don't allocate dynreloc space for ifunc in static executables. (size_global_entry_stubs): New function. (ppc64_elf_size_dynamic_sections): Call size_global_entry_stubs. Save end of glink branch table. (ppc64_elf_hash_symbol): New function. (build_global_entry_stubs): New function. (ppc64_elf_build_stubs): Call build_global_entry_stubs. Adjust glink sizing. (ppc64_elf_relocate_section): Tidy plt16/32/64 reloc code. (ppc64_elf_finish_dynamic_symbol): For ELFv2, adjust symbols defined on plt code.
Diffstat (limited to 'ld')
0 files changed, 0 insertions, 0 deletions