* ldlang.c (lang_gc_sections): Only handle the start symbol
authorDoug Evans <dje@google.com>
Tue, 20 Jul 1999 22:27:31 +0000 (22:27 +0000)
committerDoug Evans <dje@google.com>
Tue, 20 Jul 1999 22:27:31 +0000 (22:27 +0000)
specially if there is one.

ld/ChangeLog
ld/ldlang.c

index e762a905c408592c1639dd0e922f8b9c89d72c43..48ffb22dd4864a0f4acb09cae362a267ee01fe3f 100644 (file)
@@ -1,3 +1,8 @@
+Tue Jul 20 15:18:46 1999  Bob Manson  <manson@charmed.cygnus.com>
+
+       * ldlang.c (lang_gc_sections): Only handle the start symbol
+       specially if there is one.
+
 Mon Jul 19 14:19:14 1999  Mark P. Mitchell  <mark@codesourcery.com>
 
        * emulparams/elf32bmipn32.sh (OTHER_RELOCATING_SECTIONS): Add
index f2c137978e65d69b6b3fafcb0ac23dfb7127c826..eab4b5f6394f6fcb88fcc190c11cd4506b75891d 100644 (file)
@@ -3786,14 +3786,17 @@ lang_gc_sections ()
 
   /* Keep all sections containing symbols undefined on the command-line.
      Handle the entry symbol at the same time.  */
-
-  fake_list_start.next = ldlang_undef_chain_list_head;
-  if (entry_symbol == NULL)
-    fake_list_start.name = "start";
+  
+  if (entry_symbol != NULL)
+    {
+      fake_list_start.next = ldlang_undef_chain_list_head;
+      fake_list_start.name = (char *) entry_symbol;
+      ulist = &fake_list_start;
+    }
   else
-    fake_list_start.name = (char *) entry_symbol;
+    ulist = ldlang_undef_chain_list_head;
 
-  for (ulist = &fake_list_start; ulist; ulist = ulist->next)
+  for (; ulist; ulist = ulist->next)
     {
       h = bfd_link_hash_lookup (link_info.hash, ulist->name, 
                                false, false, false);