From 87d72d41b073d51b7409d2b0e7f0bbb7b840e1e6 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 18 Jun 2009 14:18:29 +0000 Subject: * elf-bfd.h (struct sym_sec_cache): Delete. (struct sym_cache): New. (bfd_section_from_r_symndx): Delete prototype. (bfd_sym_from_r_symndx): Define prototype. * elf.c (bfd_section_from_r_symndx): Delete, replace with.. (bfd_sym_from_r_symndx): ..new function. * elf32-arm.c: Update all uses of struct sym_sec_cache and bfd_section_from_r_symndx to new struct and function. * elf32-bfin.c: Likewise. * elf32-hppa.c: Likewise. * elf32-i386.c: Likewise. * elf32-m32r.c: Likewise. * elf32-m68hc1x.c: Likewise. * elf32-m68hc1x.h: Likewise. * elf32-m68k.c: Likewise. * elf32-ppc.c: Likewise. * elf32-s390.c: Likewise. * elf32-sh.c: Likewise. * elf64-ppc.c: Likewise. * elf64-s390.c: Likewise. * elf64-x86-64.c: Likewise. * elfxx-sparc.c: Likewise. * elfxx-sparc.h: Likewise. --- bfd/elf32-hppa.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'bfd/elf32-hppa.c') diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c index 20be2e79525..cac0a215f4d 100644 --- a/bfd/elf32-hppa.c +++ b/bfd/elf32-hppa.c @@ -301,8 +301,8 @@ struct elf32_hppa_link_hash_table /* Set if we need a .plt stub to support lazy dynamic linking. */ unsigned int need_plt_stub:1; - /* Small local sym to section mapping cache. */ - struct sym_sec_cache sym_sec; + /* Small local sym cache. */ + struct sym_cache sym_cache; /* Data for LDM relocations. */ union @@ -460,7 +460,7 @@ elf32_hppa_link_hash_table_create (bfd *abfd) htab->has_17bit_branch = 0; htab->has_22bit_branch = 0; htab->need_plt_stub = 0; - htab->sym_sec.abfd = NULL; + htab->sym_cache.abfd = NULL; htab->tls_ldm_got.refcount = 0; return &htab->etab.root; @@ -1522,15 +1522,19 @@ elf32_hppa_check_relocs (bfd *abfd, /* Track dynamic relocs needed for local syms too. We really need local syms available to do this easily. Oh well. */ - asection *sr; void *vpp; + Elf_Internal_Sym *isym; - sr = bfd_section_from_r_symndx (abfd, &htab->sym_sec, - sec, r_symndx); - if (sr == NULL) + isym = bfd_sym_from_r_symndx (&htab->sym_cache, + abfd, r_symndx); + if (isym == NULL) return FALSE; + sr = bfd_section_from_elf_index (abfd, isym->st_shndx); + if (sr == NULL) + sr = sec; + vpp = &elf_section_data (sr)->local_dynrel; hdh_head = (struct elf32_hppa_dyn_reloc_entry **) vpp; } -- cgit v1.2.1