summaryrefslogtreecommitdiffstats
path: root/lld/tools/lld-core/lld-core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/tools/lld-core/lld-core.cpp')
-rw-r--r--lld/tools/lld-core/lld-core.cpp35
1 files changed, 15 insertions, 20 deletions
diff --git a/lld/tools/lld-core/lld-core.cpp b/lld/tools/lld-core/lld-core.cpp
index ddc8ec11471..22388ef36bd 100644
--- a/lld/tools/lld-core/lld-core.cpp
+++ b/lld/tools/lld-core/lld-core.cpp
@@ -8,7 +8,6 @@
//===----------------------------------------------------------------------===//
#include "lld/Core/Atom.h"
-#include "lld/Core/LinkerOptions.h"
#include "lld/Core/LLVM.h"
#include "lld/Core/Pass.h"
#include "lld/Core/PassManager.h"
@@ -101,7 +100,7 @@ cmdLineEntryPoint("entry",
enum WriteChoice {
- writeYAML, writeMachO, writePECOFF, writeELF
+ writeYAML, writePECOFF, writeELF
};
llvm::cl::opt<WriteChoice>
@@ -109,7 +108,6 @@ writeSelected("writer",
llvm::cl::desc("Select writer"),
llvm::cl::values(
clEnumValN(writeYAML, "YAML", "link assuming YAML format"),
- clEnumValN(writeMachO, "mach-o", "link as darwin would"),
clEnumValN(writePECOFF, "PECOFF", "link as windows would"),
clEnumValN(writeELF, "ELF", "link as linux would"),
clEnumValEnd),
@@ -162,10 +160,12 @@ llvm::cl::opt<endianChoice> endianSelected(
class TestingTargetInfo : public TargetInfo {
public:
- TestingTargetInfo(const LinkerOptions &lo, bool stubs, bool got, bool layout)
- : TargetInfo(lo), _doStubs(stubs), _doGOT(got), _doLayout(layout) {
+ TestingTargetInfo(bool stubs, bool got, bool layout)
+ : _doStubs(stubs), _doGOT(got), _doLayout(layout) {
}
+ llvm::Triple getTriple() const { return llvm::Triple("x86_64"); }
+
virtual uint64_t getPageSize() const { return 0x1000; }
virtual void addPasses(PassManager &pm) const {
@@ -225,38 +225,37 @@ int main(int argc, char *argv[]) {
// if no output path specified, write to stdout
if (cmdLineOutputFilePath.empty())
cmdLineOutputFilePath.assign("-");
-
- LinkerOptions lo;
+#if 0
+ ELFLinkerOptions lo;
lo._noInhibitExec = !cmdLineUndefinesIsError;
lo._searchArchivesToOverrideTentativeDefinitions =
cmdLineCommonsSearchArchives;
lo._deadStrip = cmdLineDeadStrip;
lo._globalsAreDeadStripRoots = cmdLineGlobalsNotDeadStrip;
lo._forceLoadArchives = cmdLineForceLoad;
- lo._outputKind = OutputKind::StaticExecutable;
lo._entrySymbol = cmdLineEntryPoint;
lo._mergeCommonStrings = cmdLineDoMergeStrings;
+#endif
+ llvm::Triple targetTriple;
switch (archSelected) {
case i386:
- lo._target = "i386";
+ targetTriple = llvm::Triple("i386");
break;
case x86_64:
- lo._target = "x86_64";
+ targetTriple = llvm::Triple("x86_64");
break;
case hexagon:
- lo._target = "hexagon";
+ targetTriple = llvm::Triple("hexagon");
break;
case ppc:
- lo._target = "powerpc";
+ targetTriple = llvm::Triple("powerpc");
break;
}
-
- TestingTargetInfo tti(lo, cmdLineDoStubsPass, cmdLineDoGotPass,
+ TestingTargetInfo tti(cmdLineDoStubsPass, cmdLineDoGotPass,
cmdLineDoLayoutPass);
- std::unique_ptr<ELFTargetInfo> eti = ELFTargetInfo::create(lo);
- std::unique_ptr<MachOTargetInfo> mti = MachOTargetInfo::create(lo);
+ std::unique_ptr<ELFTargetInfo> eti = ELFTargetInfo::create(targetTriple.getArch());
std::unique_ptr<Writer> writer;
const TargetInfo *ti = 0;
switch ( writeSelected ) {
@@ -264,10 +263,6 @@ int main(int argc, char *argv[]) {
writer = createWriterYAML(tti);
ti = &tti;
break;
- case writeMachO:
- writer = createWriterMachO(*mti);
- ti = mti.get();
- break;
case writePECOFF:
writer = createWriterPECOFF(tti);
ti = &tti;
OpenPOWER on IntegriCloud