Tue Jul 14 11:22:21 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
authorIan Lance Taylor <ian@airs.com>
Tue, 14 Jul 1998 15:45:55 +0000 (15:45 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 14 Jul 1998 15:45:55 +0000 (15:45 +0000)
commitbe228e0db6047054b1ebfe6ac440186eeaba8f16
tree2346381fd3e776e289a17b70312f7cb6aa0a7138
parentbb51198f7aad39a41c33b4f233ec38c7c7986116
Tue Jul 14 11:22:21 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

* elf32-m68k.c (elf_m68k_check_relocs): Also reference count
R_68K_PCxx and R_68K_xx relocations.  Make sure that
ELF_LINK_HASH_NEEDS_PLT is always set for a PLT reloc reference.
(elf_m68k_gc_sweep_hook): Also reference count R_68K_PCxx and
R_68K_xx relocations.
(elf_m68k_adjust_dynamic_symbol): Reset the plt offset of a symbol
that has no plt entry.
(elf_m68k_relocate_section): Ignore the plt offset in a static
link.
* elflink.h (elf_adjust_dynamic_symbol): Reset the plt offset for
an ignored symbol.
(elf_gc_common_finalize_got_offsets): Set the got offsets also in
a static link.

* elf32-m68k.c (R_68K_GNU_VTINHERIT, R_68K_GNU_VTENTRY): New reloc
types.
(howto_table, reloc_map): Add entries for them.
(elf_m68k_check_relocs): Handle them.  Implement reference
counting for got and plt entries.
(elf_m68k_gc_mark_hook, elf_m68k_gc_sweep_hook): New functions.
(elf_m68k_adjust_dynamic_symbol): Handle unreferenced plt
symbols.
(rtype_to_howto_rel, elf_info_to_howto_rel): Delete.
(elf_m68k_relocate_section): Handle the new reloc types.
(bfd_elf32_bfd_final_link, elf_backend_gc_mark_hook,
elf_backend_gc_sweep_hook, elf_backend_can_gc_sections): Define.
* elflink.h (elf_link_add_object_symbols): When creating an
indirect reference for symbol versioning also copy the plt
offset.
(elf_fix_symbol_flags): When clearing the ELF_LINK_HASH_NEEDS_PLT
flag also reset the plt offset.
(elf_link_assign_sym_version): Likewise.
(elf_gc_common_finalize_got_offsets): Increment the got offset by
the size of the entry in bytes.
(elf_gc_allocate_got_offsets): Likewise.

Tue Jul 14 11:18:14 1998  Ian Lance Taylor  <ian@cygnus.com>

* elflink.h (elf_gc_sections): Return true rather than falling off
the bottom.
bfd/ChangeLog
bfd/elflink.h