aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldlang.c15
2 files changed, 14 insertions, 6 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index e762a90..48ffb22 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -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
diff --git a/ld/ldlang.c b/ld/ldlang.c
index f2c1379..eab4b5f 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -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);