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))