OSDN Git Service

Add EXTERN references to __ctbpm __gp and __ep.
authorNick Clifton <nickc@redhat.com>
Mon, 2 Sep 2002 17:03:30 +0000 (17:03 +0000)
committerNick Clifton <nickc@redhat.com>
Mon, 2 Sep 2002 17:03:30 +0000 (17:03 +0000)
Define TEMPLATE_NAME.
Revert bogus change to ldexp.c

ld/ChangeLog
ld/emulparams/v850.sh
ld/ldexp.c
ld/scripttempl/v850.sc

index f097310..4a3abd9 100644 (file)
@@ -1,8 +1,8 @@
 2002-09-02  Nick Clifton  <nickc@redhat.com>
 
-       * ldexp.c (exp_fold_tree): If the first attempt to lookup a
-       PROVIDEd symbol fails, look it up again, but this time with
-       the 'create' flag set.
+       * scripttempl/v850.sc: Add EXTERN references to __ctbpm __gp and
+       __ep.
+       * emulparams/v850.sh (TEMPLATE_NAME): Define.
 
 2002-08-30  Nick Clifton  <nickc@redhat.com>
 
index 78bfbd3..96cdc68 100644 (file)
@@ -12,3 +12,4 @@ ARCH=v850
 MAXPAGESIZE=256
 ENTRY=_start
 EMBEDDED=yes
+TEMPLATE_NAME=elf32
index 6c4937d..8e3ea63 100644 (file)
@@ -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
index 8958321..18ba03a 100644 (file)
@@ -4,6 +4,7 @@ OUTPUT_FORMAT("elf32-v850", "elf32-v850",
 OUTPUT_ARCH(v850)
 ENTRY(_start)
 SEARCH_DIR(.);
+EXTERN(__ctbp __ep __gp);
 SECTIONS
 {
   /* This saves a little space in the ELF file, since the zda starts