[lld] r239436 - COFF: Implement /lib using LibDriver.
Peter Collingbourne
peter at pcc.me.uk
Tue Jun 9 14:52:48 PDT 2015
Author: pcc
Date: Tue Jun 9 16:52:48 2015
New Revision: 239436
URL: http://llvm.org/viewvc/llvm-project?rev=239436&view=rev
Log:
COFF: Implement /lib using LibDriver.
Differential Revision: http://reviews.llvm.org/D10347
Modified:
lld/trunk/COFF/CMakeLists.txt
lld/trunk/COFF/Driver.cpp
Modified: lld/trunk/COFF/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/CMakeLists.txt?rev=239436&r1=239435&r2=239436&view=diff
==============================================================================
--- lld/trunk/COFF/CMakeLists.txt (original)
+++ lld/trunk/COFF/CMakeLists.txt Tue Jun 9 16:52:48 2015
@@ -16,6 +16,7 @@ add_llvm_library(lldCOFF
${LLVM_TARGETS_TO_BUILD}
Core
LTO
+ LibDriver
MC
MCDisassembler
Support
Modified: lld/trunk/COFF/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=239436&r1=239435&r2=239436&view=diff
==============================================================================
--- lld/trunk/COFF/Driver.cpp (original)
+++ lld/trunk/COFF/Driver.cpp Tue Jun 9 16:52:48 2015
@@ -16,6 +16,7 @@
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/StringSwitch.h"
+#include "llvm/LibDriver/LibDriver.h"
#include "llvm/Option/Arg.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Option/Option.h"
@@ -185,6 +186,11 @@ bool LinkerDriver::link(int Argc, const
llvm::InitializeAllAsmPrinters();
llvm::InitializeAllDisassemblers();
+ // If the first command line argument is "/lib", link.exe acts like lib.exe.
+ // We call our own implementation of lib.exe that understands bitcode files.
+ if (Argc > 1 && StringRef(Argv[1]).equals_lower("/lib"))
+ return llvm::libDriverMain(Argc - 1, Argv + 1) == 0;
+
// Parse command line options.
auto ArgsOrErr = Parser.parse(Argc, Argv);
if (auto EC = ArgsOrErr.getError()) {
More information about the llvm-commits
mailing list