summaryrefslogtreecommitdiff
path: root/ld/ldexp.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2002-09-02 17:03:30 +0000
committerNick Clifton <nickc@redhat.com>2002-09-02 17:03:30 +0000
commit67010b4679cde27a16ba60f1ff8ec1d502a6d681 (patch)
treeb5115745ec78ebf91c1abf2bc9ae42e56028d2e4 /ld/ldexp.c
parentd66198e1a79726cf2c4eac8cb9e9b25b40a928e6 (diff)
downloadbinutils-gdb-67010b4679cde27a16ba60f1ff8ec1d502a6d681.tar.gz
Add EXTERN references to __ctbpm __gp and __ep.
Define TEMPLATE_NAME. Revert bogus change to ldexp.c
Diffstat (limited to 'ld/ldexp.c')
-rw-r--r--ld/ldexp.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/ld/ldexp.c b/ld/ldexp.c
index 6c4937ddaef..8e3ea6308e8 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -726,20 +726,22 @@ exp_fold_tree (tree, current_section, allocation_done, dot, dotp)
if (tree->type.node_class == etree_assign)
create = true;
else
- create = false;
+ create = false;
h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
create, false, false);
-
- if (tree->type.node_class == etree_provide
- && (h == NULL
- || h->type == bfd_link_hash_undefined
- || h->type == bfd_link_hash_common))
- h = bfd_link_hash_lookup (link_info.hash, tree->assign.dst,
- true, false, false);
-
if (h == (struct bfd_link_hash_entry *) NULL)
- einfo (_("%P%F:%s: hash creation failed\n"),
- tree->assign.dst);
+ {
+ if (tree->type.node_class == etree_assign)
+ einfo (_("%P%F:%s: hash creation failed\n"),
+ tree->assign.dst);
+ }
+ else if (tree->type.node_class == etree_provide
+ && h->type != bfd_link_hash_undefined
+ && h->type != bfd_link_hash_common)
+ {
+ /* Do nothing. The symbol was defined by some
+ object. */
+ }
else
{
/* FIXME: Should we worry if the symbol is already