aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2013-05-08 23:31:38 +0000
committerAlan Modra <amodra@gmail.com>2013-05-08 23:31:38 +0000
commit012b2306cc5163b40c085a327e4b9c6ab1335ffa (patch)
tree0429b1dd4bc8598112090f14110564c33d25ed0e
parent680d1742c462872df7be8acd25f84fa50be1ede1 (diff)
downloadgdb-012b2306cc5163b40c085a327e4b9c6ab1335ffa.zip
gdb-012b2306cc5163b40c085a327e4b9c6ab1335ffa.tar.gz
gdb-012b2306cc5163b40c085a327e4b9c6ab1335ffa.tar.bz2
* elflink.c (elf_link_add_object_symbols): Don't omit reading
of symbols when hashes already exist.
-rw-r--r--bfd/ChangeLog19
-rw-r--r--bfd/elflink.c17
2 files changed, 22 insertions, 14 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a670a24..da19766 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-09 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (elf_link_add_object_symbols): Don't omit reading
+ of symbols when hashes already exist.
+
2013-05-07 Will Newton <will.newton@linaro.org>
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Add a
@@ -10,18 +15,18 @@
2013-05-07 Will Newton <will.newton@linaro.org>
- * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Remove unused
+ * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Remove unused
function.
* elf-bfd.h: Likewise.
2013-05-06 Paul Brook <paul@codesourcery.com>
- * elf64-mips.c (elf_mips_gnu_pcrel32): New.
- (bfd_elf64_bfd_reloc_type_lookup, bfd_elf64_bfd_reloc_name_lookup,
- mips_elf64_rtype_to_howto): Handle R_MIPS_PC32.
- * elfn32-mips.c (elf_mips_gnu_pcrel32): New.
- (bfd_elfn32_bfd_reloc_type_lookup, bfd_elfn32_bfd_reloc_name_lookup,
- mips_elfn32_rtype_to_howto): Handle R_MIPS_PC32.
+ * elf64-mips.c (elf_mips_gnu_pcrel32): New.
+ (bfd_elf64_bfd_reloc_type_lookup, bfd_elf64_bfd_reloc_name_lookup,
+ mips_elf64_rtype_to_howto): Handle R_MIPS_PC32.
+ * elfn32-mips.c (elf_mips_gnu_pcrel32): New.
+ (bfd_elfn32_bfd_reloc_type_lookup, bfd_elfn32_bfd_reloc_name_lookup,
+ mips_elfn32_rtype_to_howto): Handle R_MIPS_PC32.
2013-05-06 Alan Modra <amodra@gmail.com>
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 43c54fc..34bbcd5 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -3699,20 +3699,23 @@ error_free_dyn:
}
sym_hash = elf_sym_hashes (abfd);
- if (sym_hash == NULL && extsymcount != 0)
+ if (extsymcount != 0)
{
isymbuf = bfd_elf_get_elf_syms (abfd, hdr, extsymcount, extsymoff,
NULL, NULL, NULL);
if (isymbuf == NULL)
goto error_return;
- /* We store a pointer to the hash table entry for each external
- symbol. */
- amt = extsymcount * sizeof (struct elf_link_hash_entry *);
- sym_hash = (struct elf_link_hash_entry **) bfd_zalloc (abfd, amt);
if (sym_hash == NULL)
- goto error_free_sym;
- elf_sym_hashes (abfd) = sym_hash;
+ {
+ /* We store a pointer to the hash table entry for each
+ external symbol. */
+ amt = extsymcount * sizeof (struct elf_link_hash_entry *);
+ sym_hash = (struct elf_link_hash_entry **) bfd_zalloc (abfd, amt);
+ if (sym_hash == NULL)
+ goto error_free_sym;
+ elf_sym_hashes (abfd) = sym_hash;
+ }
}
if (dynamic)