diff options
| author | Martell Malone <martellmalone@gmail.com> | 2017-07-18 17:39:11 +0000 |
|---|---|---|
| committer | Martell Malone <martellmalone@gmail.com> | 2017-07-18 17:39:11 +0000 |
| commit | afe8549269fc9957daea2dea697fbe41ba5bbbc4 (patch) | |
| tree | cb9fbc1dbfd00dbded2fc2fd7557359b99d36a06 /llvm/tools/llvm-ar | |
| parent | aa619221577f57c554c6d0d6523bdf73f38d4200 (diff) | |
| download | bcm5719-llvm-afe8549269fc9957daea2dea697fbe41ba5bbbc4.tar.gz bcm5719-llvm-afe8549269fc9957daea2dea697fbe41ba5bbbc4.zip | |
llvm: add llvm-dlltool support to the archiver
A PE COFF spec compliant import library generator.
Intended to be used with mingw-w64.
Supports:
PE COFF spec (section 8, Import Library Format)
PE COFF spec (Aux Format 3: Weak Externals)
Reviewed By: ruiu
Differential Revision: https://reviews.llvm.org/D29892
llvm-svn: 308329
Diffstat (limited to 'llvm/tools/llvm-ar')
| -rw-r--r-- | llvm/tools/llvm-ar/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | llvm/tools/llvm-ar/llvm-ar.cpp | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/llvm/tools/llvm-ar/CMakeLists.txt b/llvm/tools/llvm-ar/CMakeLists.txt index 3bb0c8f7b7c..731bcbd8ac9 100644 --- a/llvm/tools/llvm-ar/CMakeLists.txt +++ b/llvm/tools/llvm-ar/CMakeLists.txt @@ -1,6 +1,7 @@ set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} Core + DlltoolDriver LibDriver Object Support @@ -15,3 +16,4 @@ add_llvm_tool(llvm-ar add_llvm_tool_symlink(llvm-ranlib llvm-ar) add_llvm_tool_symlink(llvm-lib llvm-ar) +add_llvm_tool_symlink(llvm-dlltool llvm-ar) diff --git a/llvm/tools/llvm-ar/llvm-ar.cpp b/llvm/tools/llvm-ar/llvm-ar.cpp index 500507fd496..af4d3efa52f 100644 --- a/llvm/tools/llvm-ar/llvm-ar.cpp +++ b/llvm/tools/llvm-ar/llvm-ar.cpp @@ -16,6 +16,7 @@ #include "llvm/ADT/Triple.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Module.h" +#include "llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h" #include "llvm/ToolDrivers/llvm-lib/LibDriver.h" #include "llvm/Object/Archive.h" #include "llvm/Object/ArchiveWriter.h" @@ -863,6 +864,9 @@ int main(int argc, char **argv) { llvm::InitializeAllAsmParsers(); StringRef Stem = sys::path::stem(ToolName); + if (Stem.find("dlltool") != StringRef::npos) + return dlltoolDriverMain(makeArrayRef(argv, argc)); + if (Stem.find("ranlib") == StringRef::npos && Stem.find("lib") != StringRef::npos) return libDriverMain(makeArrayRef(argv, argc)); @@ -878,5 +882,5 @@ int main(int argc, char **argv) { return ranlib_main(); if (Stem.find("ar") != StringRef::npos) return ar_main(); - fail("Not ranlib, ar or lib!"); + fail("Not ranlib, ar, lib or dlltool!"); } |

