diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/ldlang.c | 15 |
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); |