diff options
author | Alan Modra <amodra@gmail.com> | 2001-09-29 06:21:59 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2001-09-29 06:21:59 +0000 |
commit | 51b64d56a7c65e6a30649cf9aade57b56c321c0e (patch) | |
tree | 92f1f675368a87f2f181589c5df4a599575e54fb /bfd/elf32-hppa.c | |
parent | 21d17a588f70a57acf7d97def74a550e2925600e (diff) | |
download | gdb-51b64d56a7c65e6a30649cf9aade57b56c321c0e.zip gdb-51b64d56a7c65e6a30649cf9aade57b56c321c0e.tar.gz gdb-51b64d56a7c65e6a30649cf9aade57b56c321c0e.tar.bz2 |
* elf-bfd.h (struct elf_link_local_dynamic_entry): Add init_refcount.
(struct elf_backend_data): Add can_refcount.
* elf.c (_bfd_elf_link_hash_newfunc): Get rid of a few casts. Set
got.refcount and plt.refcount from init_refcount.
(_bfd_elf_link_hash_table_init): Set up init_refcount.
(_bfd_elf_link_hash_copy_indirect): Reference got/plt.refcount
rather than got/plt.offset, and test for <= 0 rather than -1.
* elflink.h (size_dynamic_sections): Set init_refcount to -1.
* elfxx-target.h (elf_backend_can_refcount): Define.
(elfNN_bed): Init can_refcount.
* linker.c (_bfd_link_hash_newfunc): Get rid of a few casts.
(_bfd_generic_link_hash_newfunc): Likewise.
* elf32-cris.c (cris_elf_check_relocs): Modify for refcounts
starting from zero.
(elf_backend_can_refcount): Define.
* elf32-hppa.c (elf32_hppa_check_relocs): Modify for refcounts
starting from zero.
(elf32_hppa_copy_indirect_symbol): Make static to agree with
prototype.
(elf_backend_can_refcount): Define.
* elf32-i386.c (elf_i386_check_relocs): Modify for refcounts
starting from zero.
(allocate_dynrelocs): Set plt/got.offset rather than *.refcount.
(elf_i386_finish_dynamic_symbol): Expand SHN_UNDEF comment.
(elf_i386_finish_dynamic_sections): Use local var so line < 80 chars.
(elf_backend_can_refcount): Define.
(elf_i386_copy_indirect_symbol): Make static to agree with
prototype. Formatting fix.
* elf32-m68k.c (elf_m68k_check_relocs): Modify for refcounts
starting from zero.
(elf_backend_can_refcount): Define.
* elf32-ppc.c (ppc_elf_check_relocs): Modify for refcounts
starting from zero.
(elf_backend_can_refcount): Define.
* elf32-s390.c (elf_s390_check_relocs): Modify for refcounts
starting from zero.
(elf_backend_can_refcount): Define.
* elf64-s390.c (elf_s390_check_relocs): Modify for refcounts
starting from zero.
(elf_backend_can_refcount): Define.
* elf64-x86-64.c (elf64_x86_64_check_relocs): Modify for refcounts
starting from zero.
(elf_backend_can_refcount): Define.
Diffstat (limited to 'bfd/elf32-hppa.c')
-rw-r--r-- | bfd/elf32-hppa.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index b1ec63c..8b662ab 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -1133,7 +1133,7 @@ elf32_hppa_create_dynamic_sections (abfd, info) /* Copy the extra info we tack onto an elf_link_hash_entry. */ -void +static void elf32_hppa_copy_indirect_symbol (dir, ind) struct elf_link_hash_entry *dir, *ind; { @@ -1359,10 +1359,7 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs) if (h != NULL) { - if (h->elf.got.refcount == -1) - h->elf.got.refcount = 1; - else - h->elf.got.refcount += 1; + h->elf.got.refcount += 1; } else { @@ -1404,13 +1401,8 @@ elf32_hppa_check_relocs (abfd, info, sec, relocs) { if (h != NULL) { - if (h->elf.plt.refcount == -1) - { - h->elf.plt.refcount = 1; - h->elf.elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; - } - else - h->elf.plt.refcount += 1; + h->elf.elf_link_hash_flags |= ELF_LINK_HASH_NEEDS_PLT; + h->elf.plt.refcount += 1; /* If this .plt entry is for a plabel, mark it so that adjust_dynamic_symbol will keep the entry @@ -3491,7 +3483,6 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section, Elf_Internal_Sym *local_syms; asection **local_sections; { - bfd *dynobj; bfd_vma *local_got_offsets; struct elf32_hppa_link_hash_table *htab; Elf_Internal_Shdr *symtab_hdr; @@ -3501,7 +3492,6 @@ elf32_hppa_relocate_section (output_bfd, info, input_bfd, input_section, symtab_hdr = &elf_tdata (input_bfd)->symtab_hdr; htab = hppa_link_hash_table (info); - dynobj = htab->elf.dynobj; local_got_offsets = elf_local_got_offsets (input_bfd); rel = relocs; @@ -4019,10 +4009,8 @@ elf32_hppa_finish_dynamic_symbol (output_bfd, info, h, sym) Elf_Internal_Sym *sym; { struct elf32_hppa_link_hash_table *htab; - bfd *dynobj; htab = hppa_link_hash_table (info); - dynobj = htab->elf.dynobj; if (h->plt.offset != (bfd_vma) -1) { @@ -4375,6 +4363,7 @@ elf32_hppa_elf_get_symbol_type (elf_sym, type) #define elf_backend_reloc_type_class elf32_hppa_reloc_type_class #define elf_backend_can_gc_sections 1 +#define elf_backend_can_refcount 1 #define elf_backend_plt_alignment 2 #define elf_backend_want_got_plt 0 #define elf_backend_plt_readonly 0 |