diff options
author | Alan Modra <amodra@gmail.com> | 2013-11-01 19:24:20 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2013-11-04 10:20:09 +1030 |
commit | a345bc8d317a159e3e887632d80c5a8282d34f07 (patch) | |
tree | b715139c77d1b610f9e6a79dad21767bae1adeae /ld | |
parent | 4115bfc68301edaca4dd1fd83eddeaafeda4c63c (diff) | |
download | gdb-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