OSDN Git Service

Avoid creating COPY relocs.
authoramodra <amodra>
Wed, 27 Jun 2001 02:42:08 +0000 (02:42 +0000)
committeramodra <amodra>
Wed, 27 Jun 2001 02:42:08 +0000 (02:42 +0000)
commit51c914aa0d19092700b6ac1c31f7dc15ffb63957
tree49449ab45b01789a77f843230da855bc36fef4c7
parentf2ae5d866f8f82ed38cd474904b2ce17b3d956ed
Avoid creating COPY relocs.
* elf32-hppa.c (elf32_hppa_check_relocs): Don't make syms dynamic
here..
(elf32_hppa_adjust_dynamic_symbol): ..nor here..
(allocate_plt_and_got_and_discard_relocs): .. instead do so here
after gc has run.
* elf32-hppa.c (RELATIVE_DYNAMIC_RELOCS): Delete.
(IS_ABSOLUTE_RELOC): Define.
(elf32_hppa_link_hash_entry): Always include reloc_entries field.
(hppa_link_hash_newfunc): Always init it.
(elf32_hppa_check_relocs): Mark symbols 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
relocs_entries.
(hppa_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.
(elf32_hppa_size_dynamic_sections): Update calls to above.
(elf32_hppa_relocate_section): Write out the dynamic relocs used
in lieu of COPY relocs.
bfd/ChangeLog
bfd/elf32-hppa.c