diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-02 14:04:38 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-10-02 14:04:38 +0000 |
| commit | d38f9af2136f74054feef7eea5f2a24164dfab2d (patch) | |
| tree | dcb32180efe17ed2dc323db70d9976bcb83ceb1f | |
| parent | 945397157ba04d023591c8e648c88cb390475e93 (diff) | |
| download | bcm5719-llvm-d38f9af2136f74054feef7eea5f2a24164dfab2d.tar.gz bcm5719-llvm-d38f9af2136f74054feef7eea5f2a24164dfab2d.zip | |
Enable building LTO on WIN32.
Enable building the LTO library (.lib and.dll) and llvm-lto.exe on Windows with
MSVC and Mingw as well as re-enabling the associated test.
Patch by Greg Bedwell!
llvm-svn: 191823
| -rw-r--r-- | llvm/test/LTO/cfi_endproc.ll | 1 | ||||
| -rw-r--r-- | llvm/test/LTO/lit.local.cfg | 2 | ||||
| -rw-r--r-- | llvm/tools/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | llvm/tools/lto/CMakeLists.txt | 20 |
4 files changed, 19 insertions, 6 deletions
diff --git a/llvm/test/LTO/cfi_endproc.ll b/llvm/test/LTO/cfi_endproc.ll index 0a47b0225ee..ecb0ed506e6 100644 --- a/llvm/test/LTO/cfi_endproc.ll +++ b/llvm/test/LTO/cfi_endproc.ll @@ -17,4 +17,3 @@ define i32 @main(i32 %argc, i8** %argv) { call void @PR14512() ret i32 0 } -; XFAIL: win32 diff --git a/llvm/test/LTO/lit.local.cfg b/llvm/test/LTO/lit.local.cfg index f61943a77af..7a70736aeac 100644 --- a/llvm/test/LTO/lit.local.cfg +++ b/llvm/test/LTO/lit.local.cfg @@ -2,5 +2,5 @@ targets = set(config.root.targets_to_build.split()) if not 'X86' in targets: config.unsupported = True -if config.root.host_os in ['Cygwin', 'MingW', 'Windows']: +if config.root.host_os in ['Cygwin']: config.unsupported = True diff --git a/llvm/tools/CMakeLists.txt b/llvm/tools/CMakeLists.txt index 468d396b59a..d8001e75a70 100644 --- a/llvm/tools/CMakeLists.txt +++ b/llvm/tools/CMakeLists.txt @@ -43,7 +43,7 @@ add_llvm_tool_subdirectory(llvm-symbolizer) add_llvm_tool_subdirectory(obj2yaml) add_llvm_tool_subdirectory(yaml2obj) -if( NOT WIN32 ) +if( NOT CYGWIN ) add_llvm_tool_subdirectory(lto) add_llvm_tool_subdirectory(llvm-lto) else() diff --git a/llvm/tools/lto/CMakeLists.txt b/llvm/tools/lto/CMakeLists.txt index 8b26ddd57e8..89160ee0239 100644 --- a/llvm/tools/lto/CMakeLists.txt +++ b/llvm/tools/lto/CMakeLists.txt @@ -9,10 +9,24 @@ set(SOURCES lto.cpp ) -if( NOT WIN32 AND LLVM_ENABLE_PIC ) +if( NOT CYGWIN AND LLVM_ENABLE_PIC ) + if ( WIN32 ) + # Create .def file containing a list of exports preceeded by + # 'EXPORTS'. The file "lto.exports" already contains the list, so we + # massage it into the correct format here to create "lto.exports.def". + set(LTO_EXPORTS_DEF ${CMAKE_CURRENT_BINARY_DIR}/lto.exports.def) + file(READ "lto.exports" exports_list) + file(WRITE ${LTO_EXPORTS_DEF} "LIBRARY LTO\n") + file(APPEND ${LTO_EXPORTS_DEF} "EXPORTS\n") + file(APPEND ${LTO_EXPORTS_DEF} ${exports_list}) + set(SHARED_LIB_SOURCES ${SOURCES} ${LTO_EXPORTS_DEF}) + else() + set(SHARED_LIB_SOURCES ${SOURCES}) + endif() + set(bsl ${BUILD_SHARED_LIBS}) set(BUILD_SHARED_LIBS ON) - add_llvm_library(LTO ${SOURCES}) + add_llvm_library(LTO ${SHARED_LIB_SOURCES}) set_property(TARGET LTO PROPERTY OUTPUT_NAME "LTO") set(BUILD_SHARED_LIBS ${bsl}) set(LTO_STATIC_TARGET_NAME LTO_static) @@ -25,7 +39,7 @@ if( NOT BUILD_SHARED_LIBS ) set_property(TARGET ${LTO_STATIC_TARGET_NAME} PROPERTY OUTPUT_NAME "LTO") endif() -if( NOT WIN32 ) +if( NOT CYGWIN ) install(FILES ${LLVM_MAIN_INCLUDE_DIR}/llvm-c/lto.h DESTINATION include/llvm-c) endif() |

