diff options
author | Alan Modra <amodra@gmail.com> | 2001-06-23 05:54:15 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-06-23 05:54:15 +0000 |
commit | 12d0ee4aca6285a5f459434761b3f7577caae138 (patch) | |
tree | 5f96c0e6fa65baf74d02e22bfa2dfae215e146e5 /bfd/ChangeLog | |
parent | b4127474dc299137263682431108e1a021d6dbb4 (diff) | |
download | gdb-12d0ee4aca6285a5f459434761b3f7577caae138.zip gdb-12d0ee4aca6285a5f459434761b3f7577caae138.tar.gz gdb-12d0ee4aca6285a5f459434761b3f7577caae138.tar.bz2 |
Avoid creating COPY relocs if possible.
* elf32-i386.c (elf_i386_check_relocs): Tweak condition under
which .got created. Mark symbols used by R_386_32 and R_386_PC32
relocs as ELF_LINK_NON_GOT_REF to create COPY relocs only when the
reloc is in a read-only section. Instead, allocate space for a
dynamic reloc to reference the library symbol directly. Keep
track of space we allocate using pcrel_relocs_copied.
(discard_copies): Delete, and move code to ..
(allocate_plt_and_got): ..here. Rename to
allocate_plt_and_got_and_discard_relocs. Remove unneeded dynamic
relocs for non-shared link.
(elf_i386_size_dynamic_sections): Update calls to above functions.
(elf_i386_relocate_section): Write out the dynamic relocs. Add
more ugly logic to avoid "unresolvable relocation" error. Use
htab shortcut in place of elf_hash_table macro.
(elf_i386_finish_dynamic_sections): Allow that dynamic .got may
not always be created now.
Diffstat (limited to 'bfd/ChangeLog')
-rw-r--r-- | bfd/ChangeLog | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 201938b..49fc142 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,23 @@ +2001-06-23 Alan Modra <amodra@bigpond.net.au> + + Avoid creating COPY relocs if possible. + * elf32-i386.c (elf_i386_check_relocs): Tweak condition under + which .got created. Mark symbols used by R_386_32 and R_386_PC32 + relocs as ELF_LINK_NON_GOT_REF to create COPY relocs only when the + reloc is in a read-only section. Instead, allocate space for a + dynamic reloc to reference the library symbol directly. Keep + track of space we allocate using pcrel_relocs_copied. + (discard_copies): Delete, and move code to .. + (allocate_plt_and_got): ..here. Rename to + allocate_plt_and_got_and_discard_relocs. Remove unneeded dynamic + relocs for non-shared link. + (elf_i386_size_dynamic_sections): Update calls to above functions. + (elf_i386_relocate_section): Write out the dynamic relocs. Add + more ugly logic to avoid "unresolvable relocation" error. Use + htab shortcut in place of elf_hash_table macro. + (elf_i386_finish_dynamic_sections): Allow that dynamic .got may + not always be created now. + 2001-06-20 Bo Thorsen <bo@suse.co.uk> * elf64-x86-64.c (elf64_x86_64_relocate_section): Fix linking of |