[Driver] Properly handle -entry for X86 Linux.

llvm-svn: 169718
This commit is contained in:
Michael J. Spencer 2012-12-09 23:56:37 +00:00
parent 3825760550
commit 99b99d26bb
2 changed files with 5 additions and 4 deletions

View File

@ -118,7 +118,8 @@ public:
if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_entry)) if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_entry))
newArgs->AddJoinedArg(A, _core.getOption(core::OPT_entry), A->getValue()); newArgs->AddJoinedArg(A, _core.getOption(core::OPT_entry), A->getValue());
else 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)) if (llvm::opt::Arg *A = _inputArgs->getLastArg(ld::OPT_output))
newArgs->AddJoinedArg(A, _core.getOption(core::OPT_output), newArgs->AddJoinedArg(A, _core.getOption(core::OPT_output),

View File

@ -26,7 +26,7 @@ using namespace lld;
class X86LinuxTarget final : public Target { class X86LinuxTarget final : public Target {
public: public:
X86LinuxTarget(const LinkerOptions &lo) : Target(lo), _woe() { X86LinuxTarget(const LinkerOptions &lo) : Target(lo), _woe(lo._entrySymbol) {
_readerELF.reset(createReaderELF(_roe, _roa)); _readerELF.reset(createReaderELF(_roe, _roa));
_readerYAML.reset(createReaderYAML(_roy)); _readerYAML.reset(createReaderYAML(_roy));
_writer.reset(createWriterELF(_woe)); _writer.reset(createWriterELF(_woe));
@ -63,12 +63,12 @@ private:
} _roy; } _roy;
struct WOpts : lld::WriterOptionsELF { struct WOpts : lld::WriterOptionsELF {
WOpts() { WOpts(StringRef entry) {
_endianness = llvm::support::little; _endianness = llvm::support::little;
_is64Bit = false; _is64Bit = false;
_type = llvm::ELF::ET_EXEC; _type = llvm::ELF::ET_EXEC;
_machine = llvm::ELF::EM_386; _machine = llvm::ELF::EM_386;
_entryPoint = "_start"; _entryPoint = entry;
} }
} _woe; } _woe;