diff options
| author | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-12-09 23:56:37 +0000 |
|---|---|---|
| committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2012-12-09 23:56:37 +0000 |
| commit | 99b99d26bb4f06f3d466e56142963b51ed3ee13f (patch) | |
| tree | a39eb30e04d017d73450421e6345555a567fb78d /lld/lib | |
| parent | 382576055010e26a2811cb7748e109b20e8c5456 (diff) | |
| download | bcm5719-llvm-99b99d26bb4f06f3d466e56142963b51ed3ee13f.tar.gz bcm5719-llvm-99b99d26bb4f06f3d466e56142963b51ed3ee13f.zip | |
[Driver] Properly handle -entry for X86 Linux.
llvm-svn: 169718
Diffstat (limited to 'lld/lib')
| -rw-r--r-- | lld/lib/Driver/Drivers.cpp | 3 | ||||
| -rw-r--r-- | lld/lib/Driver/Targets.cpp | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lld/lib/Driver/Drivers.cpp b/lld/lib/Driver/Drivers.cpp index 8ff4abedebf..5b3478c5f6b 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 92300738605..496e020064b 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; |

