summaryrefslogtreecommitdiffstats
path: root/lld/lib
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2012-12-09 23:56:37 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2012-12-09 23:56:37 +0000
commit99b99d26bb4f06f3d466e56142963b51ed3ee13f (patch)
treea39eb30e04d017d73450421e6345555a567fb78d /lld/lib
parent382576055010e26a2811cb7748e109b20e8c5456 (diff)
downloadbcm5719-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.cpp3
-rw-r--r--lld/lib/Driver/Targets.cpp6
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;
OpenPOWER on IntegriCloud