summaryrefslogtreecommitdiff
path: root/bfd/elf64-hppa.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2008-05-30 16:13:53 +0000
committerNick Clifton <nickc@redhat.com>2008-05-30 16:13:53 +0000
commitf9d89e30e693000aea575fbedf8f72aee6188201 (patch)
tree51a9a6e0221ac7cac0d3cf16472cb29444089d3f /bfd/elf64-hppa.c
parenta83d71d370995aa1c0a71040675bd1e68ad3dc62 (diff)
downloadbinutils-redhat-f9d89e30e693000aea575fbedf8f72aee6188201.tar.gz
PR ld/6511
* elf64-hppa.c (allocate_global_data_opd): Default to using the dynamic symbol table for local function names in shared libraries.
Diffstat (limited to 'bfd/elf64-hppa.c')
-rw-r--r--bfd/elf64-hppa.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/bfd/elf64-hppa.c b/bfd/elf64-hppa.c
index b2dafdd937..2359adde6d 100644
--- a/bfd/elf64-hppa.c
+++ b/bfd/elf64-hppa.c
@@ -1175,7 +1175,8 @@ allocate_global_data_opd (dyn_h, data)
&& (h == NULL || (h->dynindx == -1)))
{
bfd *owner;
- owner = (h ? h->root.u.def.section->owner : dyn_h->owner);
+ /* PR 6511: Default to using the dynamic symbol table. */
+ owner = (dyn_h->owner ? dyn_h->owner: h->root.u.def.section->owner);
if (!bfd_elf_link_record_local_dynamic_symbol
(x->info, owner, dyn_h->sym_indx))
@@ -2197,8 +2198,8 @@ elf64_hppa_finalize_opd (dyn_h, data)
strcpy (new_name + 1, h->root.root.string);
nh = elf_link_hash_lookup (elf_hash_table (info),
- new_name, FALSE, FALSE, FALSE);
-
+ new_name, TRUE, TRUE, FALSE);
+
/* All we really want from the new symbol is its dynamic
symbol index. */
if (nh)