aboutsummaryrefslogtreecommitdiff
path: root/bfd/elflink.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1995-12-04 16:23:36 +0000
committerIan Lance Taylor <ian@airs.com>1995-12-04 16:23:36 +0000
commit1f4ae0d6b1ac132d4fedac5f9852e3e17eb51b37 (patch)
treefcb396e85a39b98f82ffd80e0290953023478be8 /bfd/elflink.h
parent53d45489e3872acadd98a01b94e707d59b162bc7 (diff)
downloadgdb-1f4ae0d6b1ac132d4fedac5f9852e3e17eb51b37.zip
gdb-1f4ae0d6b1ac132d4fedac5f9852e3e17eb51b37.tar.gz
gdb-1f4ae0d6b1ac132d4fedac5f9852e3e17eb51b37.tar.bz2
* elflink.h (elf_link_output_extsym): Just ignore warning and
indirect references to symbols which don't really exist.
Diffstat (limited to 'bfd/elflink.h')
-rw-r--r--bfd/elflink.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/bfd/elflink.h b/bfd/elflink.h
index 3e18295..e0d01ea 100644
--- a/bfd/elflink.h
+++ b/bfd/elflink.h
@@ -2508,6 +2508,12 @@ elf_link_output_extsym (h, data)
case bfd_link_hash_indirect:
case bfd_link_hash_warning:
+ /* We can't represent these symbols in ELF. A warning symbol
+ may have come from a .gnu.warning.SYMBOL section anyhow. We
+ just put the target symbol in the hash table. If the target
+ symbol does not really exist, don't do anything. */
+ if (h->root.u.i.link->type == bfd_link_hash_new)
+ return true;
return (elf_link_output_extsym
((struct elf_link_hash_entry *) h->root.u.i.link, data));
}