aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Anglin <dave.anglin@nrc.ca>2004-03-15 18:12:05 +0000
committerDave Anglin <dave.anglin@nrc.ca>2004-03-15 18:12:05 +0000
commit905ac58d4dc0c90ac110342af891bdccfb494261 (patch)
tree88d35fa9d261bec845b95cf8413ce144f4700e26
parent6b8de360a19bf2f5f0d8a7b9173ab4c317658113 (diff)
downloadgdb-905ac58d4dc0c90ac110342af891bdccfb494261.zip
gdb-905ac58d4dc0c90ac110342af891bdccfb494261.tar.gz
gdb-905ac58d4dc0c90ac110342af891bdccfb494261.tar.bz2
* 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.
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/elf-hppa.h8
-rw-r--r--bfd/elf64-hppa.c9
3 files changed, 17 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index e1ce095..f56d0ed 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elf-hppa.h b/bfd/elf-hppa.h
index 29579a4..a5c0b44 100644
--- a/bfd/elf-hppa.h
+++ b/bfd/elf-hppa.h
@@ -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);
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index 06aff7b..5bc9309 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -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,