diff options
author | Dave Anglin <dave.anglin@nrc.ca> | 2004-03-15 17:53:45 +0000 |
---|---|---|
committer | Dave Anglin <dave.anglin@nrc.ca> | 2004-03-15 17:53:45 +0000 |
commit | d63b5ed92adb2d291aa4da0f82b926dd3eb865b4 (patch) | |
tree | a890c39299b9256f463a55296fc3b7808fc6ffb4 /bfd | |
parent | 4fdf61212ce391ae0e30257330c0f89e648b2021 (diff) | |
download | gdb-d63b5ed92adb2d291aa4da0f82b926dd3eb865b4.zip gdb-d63b5ed92adb2d291aa4da0f82b926dd3eb865b4.tar.gz gdb-d63b5ed92adb2d291aa4da0f82b926dd3eb865b4.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.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 8 | ||||
-rw-r--r-- | bfd/elf-hppa.h | 8 | ||||
-rw-r--r-- | bfd/elf64-hppa.c | 9 |
3 files changed, 17 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 15d2758..5bf3745 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, |