diff options
Diffstat (limited to 'lld/tools/lld-core/lld-core.cpp')
| -rw-r--r-- | lld/tools/lld-core/lld-core.cpp | 35 |
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; |

