* elf-hppa.h (elf_hppa_relocate_section): Pass input_bfd instead of
authorDave Anglin <dave.anglin@nrc.ca>
Mon, 15 Mar 2004 17:53:45 +0000 (17:53 +0000)
committerDave Anglin <dave.anglin@nrc.ca>
Mon, 15 Mar 2004 17:53:45 +0000 (17:53 +0000)
input_section in calls to get_dyn_name.
* elf64-hppa.c (get_dyn_name): Change type of first argument to "bfd *". Use section id of first section in input BFD to build dynamic name for
local symbols.
(elf64_hppa_check_relocs): Pass abfd in call to get_dyn_name.

bfd/ChangeLog
bfd/elf-hppa.h
bfd/elf64-hppa.c

index 15d2758..5bf3745 100644 (file)
@@ -1,3 +1,11 @@
+2004-03-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * elf-hppa.h (elf_hppa_relocate_section): Pass input_bfd instead of
+       input_section in calls to get_dyn_name.
+       * elf64-hppa.c (get_dyn_name): Change type of first argument to "bfd *".        Use section id of first section in input BFD to build dynamic name for
+       local symbols.
+       (elf64_hppa_check_relocs): Pass abfd in call to get_dyn_name.
+
 2004-03-15  Alan Modra  <amodra@bigpond.net.au>
 
        * bfd-in.h (bfd_int64_t, bfd_uint64_t): New types.
index 29579a4..a5c0b44 100644 (file)
@@ -1350,7 +1350,7 @@ elf_hppa_relocate_section (bfd *output_bfd,
 
          /* If this symbol has an entry in the PA64 dynamic hash
             table, then get it.  */
-         dyn_name = get_dyn_name (input_section, h, rel,
+         dyn_name = get_dyn_name (input_bfd, h, rel,
                                   &dynh_buf, &dynh_buflen);
          dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
                                              dyn_name, FALSE, FALSE);
@@ -1373,7 +1373,7 @@ elf_hppa_relocate_section (bfd *output_bfd,
 
              /* If this symbol has an entry in the PA64 dynamic hash
                 table, then get it.  */
-             dyn_name = get_dyn_name (input_section, h, rel,
+             dyn_name = get_dyn_name (input_bfd, h, rel,
                                       &dynh_buf, &dynh_buflen);
              dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
                                                  dyn_name, FALSE, FALSE);
@@ -1410,7 +1410,7 @@ elf_hppa_relocate_section (bfd *output_bfd,
 
              /* If this symbol has an entry in the PA64 dynamic hash
                 table, then get it.  */
-             dyn_name = get_dyn_name (input_section, h, rel,
+             dyn_name = get_dyn_name (input_bfd, h, rel,
                                       &dynh_buf, &dynh_buflen);
              dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
                                                  dyn_name, FALSE, FALSE);
@@ -1426,7 +1426,7 @@ elf_hppa_relocate_section (bfd *output_bfd,
            }
          else if (h->root.type == bfd_link_hash_undefweak)
             {
-             dyn_name = get_dyn_name (input_section, h, rel,
+             dyn_name = get_dyn_name (input_bfd, h, rel,
                                       &dynh_buf, &dynh_buflen);
              dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,
                                                  dyn_name, FALSE, FALSE);
index 06aff7b..5bc9309 100644 (file)
@@ -173,7 +173,7 @@ static void elf64_hppa_dyn_hash_traverse
           PTR info));
 
 static const char *get_dyn_name
-  PARAMS ((asection *, struct elf_link_hash_entry *,
+  PARAMS ((bfd *, struct elf_link_hash_entry *,
           const Elf_Internal_Rela *, char **, size_t *));
 
 /* This must follow the definitions of the various derived linker
@@ -446,13 +446,14 @@ elf64_hppa_section_from_shdr (abfd, hdr, name)
    allocate memory as necessary, possibly reusing PBUF/PLEN.  */
 
 static const char *
-get_dyn_name (sec, h, rel, pbuf, plen)
-     asection *sec;
+get_dyn_name (abfd, h, rel, pbuf, plen)
+     bfd *abfd;
      struct elf_link_hash_entry *h;
      const Elf_Internal_Rela *rel;
      char **pbuf;
      size_t *plen;
 {
+  asection *sec = abfd->sections;
   size_t nlen, tlen;
   char *buf;
   size_t len;
@@ -858,7 +859,7 @@ elf64_hppa_check_relocs (abfd, info, sec, relocs)
        continue;
 
       /* Collect a canonical name for this address.  */
-      addr_name = get_dyn_name (sec, h, rel, &buf, &buf_len);
+      addr_name = get_dyn_name (abfd, h, rel, &buf, &buf_len);
 
       /* Collect the canonical entry data for this address.  */
       dyn_h = elf64_hppa_dyn_hash_lookup (&hppa_info->dyn_hash_table,