diff --git a/lld/lib/Driver/Drivers.cpp b/lld/lib/Driver/Drivers.cpp index 8ff4abedebf2..5b3478c5f6b2 100644 --- a/lld/lib/Driver/Drivers.cpp +++ b/lld/lib/Driver/Drivers.cpp @@ -118,7 +118,8 @@ public: if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_entry)) newArgs->AddJoinedArg(A, _core.getOption(core::OPT_entry), A->getValue()); else - newArgs->AddJoinedArg(nullptr, _core.getOption(core::OPT_entry), "start"); + newArgs->AddJoinedArg(nullptr, _core.getOption(core::OPT_entry), + "_start"); if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_output)) newArgs->AddJoinedArg(A, _core.getOption(core::OPT_output), diff --git a/lld/lib/Driver/Targets.cpp b/lld/lib/Driver/Targets.cpp index 92300738605f..496e020064b7 100644 --- a/lld/lib/Driver/Targets.cpp +++ b/lld/lib/Driver/Targets.cpp @@ -26,7 +26,7 @@ using namespace lld; class X86LinuxTarget final : public Target { public: - X86LinuxTarget(const LinkerOptions &lo) : Target(lo), _woe() { + X86LinuxTarget(const LinkerOptions &lo) : Target(lo), _woe(lo._entrySymbol) { _readerELF.reset(createReaderELF(_roe, _roa)); _readerYAML.reset(createReaderYAML(_roy)); _writer.reset(createWriterELF(_woe)); @@ -63,12 +63,12 @@ private: } _roy; struct WOpts : lld::WriterOptionsELF { - WOpts() { + WOpts(StringRef entry) { _endianness = llvm::support::little; _is64Bit = false; _type = llvm::ELF::ET_EXEC; _machine = llvm::ELF::EM_386; - _entryPoint = "_start"; + _entryPoint = entry; } } _woe;