Index: tools/CMakeLists.txt =================================================================== --- tools/CMakeLists.txt +++ tools/CMakeLists.txt @@ -1 +1,2 @@ add_subdirectory(lld) +add_subdirectory(lld-darwin) Index: tools/lld-darwin/CMakeLists.txt =================================================================== --- /dev/null +++ tools/lld-darwin/CMakeLists.txt @@ -0,0 +1,8 @@ + +add_lld_executable(lld-darwin + lld-darwin.cpp + ) + +target_link_libraries(lld-darwin + lldDriver + ) Index: tools/lld-darwin/lld-darwin.cpp =================================================================== --- /dev/null +++ tools/lld-darwin/lld-darwin.cpp @@ -0,0 +1,28 @@ +//===- tools/lld/lld-darwin.cpp - Darwin Linker Driver --------------------===// +// +// The LLVM Linker +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "lld/Core/LLVM.h" +#include "lld/Driver/Driver.h" + +#include "llvm/Support/ManagedStatic.h" +#include "llvm/Support/PrettyStackTrace.h" +#include "llvm/Support/Signals.h" + +using namespace lld; + + +/// Darwin linker main(). +int main(int argc, const char *argv[]) { + // Standard set up, so program fails gracefully. + llvm::sys::PrintStackTraceOnErrorSignal(); + llvm::PrettyStackTraceProgram stackPrinter(argc, argv); + llvm::llvm_shutdown_obj shutdown; + + return DarwinLdDriver::linkMachO(argc, argv) ? 0 : 1; +}