Fix handling of _start being undefined.

We were crashing before.

llvm-svn: 247481
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 85b6016..ef7199c 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -476,8 +476,6 @@
       Out = &W.getBSS();
       break;
     case SymbolBody::UndefinedKind:
-      if (!Body->isWeak())
-        error(Twine("undefined symbol: ") + Name);
     case SymbolBody::DefinedAbsoluteKind:
     case SymbolBody::SharedKind:
       break;
@@ -614,6 +612,9 @@
   for (auto &P : Symtab.getSymbols()) {
     StringRef Name = P.first;
     SymbolBody *Body = P.second->Body;
+    if (Body->isStrongUndefined())
+      error(Twine("undefined symbol: ") + Name);
+
     if (auto *C = dyn_cast<DefinedCommon<ELFT>>(Body))
       CommonSymbols.push_back(C);
     if (!includeInSymtab(*Body))