[llvm-dev] build llvm fails under win7 x64/VS2017

Dennis Luehring via llvm-dev llvm-dev at lists.llvm.org
Mon Sep 17 07:04:43 PDT 2018


i've read the following on https://llvm.org/docs/CMake.html
....
BUILD_SHARED_LIBS is only recommended for use by LLVM developers.
If you want to build LLVM as a shared library, you should use the 
LLVM_BUILD_LLVM_DYLIB option.
....

replacing BUILD_SHARED_LIBS with LLVM_LINK_LLVM_DYLIB fixed my build 
problems

my new build-config:

cmake -Thost=x64 -G "Visual Studio 15 2017 Win64" 
-DLLVM_TARGETS_TO_BUILD=host -DLLVM_INCLUDE_EXAMPLES=OFF 
-DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_DOCS=OFF 
-DLLVM_INCLUDE_TOOLS=OFF -DLLVM_BUILD_LLVM_DYLIB=ON ../llvm

using BUILD_SHARED_LIBS with this config fails very early - is that 
intended behavior or a config bug?

the next thing i try is to use Ninja on my Win7x64/VS2017 - hope that 
reduces the build-times (currently 1.5h for an full static build - but 
im using an old pc)



Am 17.09.2018 um 10:30 schrieb Dennis Luehring via llvm-dev:
> my build environment:
>
> Win7 x64
> VStudio 2017 Community Edition 15.8.4 (latest)
> CMake 3.12.1 (x86)
> git 2.19.0 (latest, x64)
> Python 2.7.2 (x86)
>
> my build steps:
>
> open VS2017 x64 developer command prompt
> cd D:\projects\fun\jit_tests
> mkdir llvm
> cd llvm
> git clone https://github.com/llvm-mirror/llvm
> mkdir llvm-build
> cd llvm-build
> cmake -G "Visual Studio 15 2017 Win64" -DBUILD_SHARED_LIBS=ON
> -DLLVM_TARGETS_TO_BUILD=host -DLLVM_ENABLE_WARNINGS=OFF
> -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_TESTS=OFF
> -DLLVM_INCLUDE_DOCS=OFF ../llvm
> cmake --build .
>
> produces these errors and warnings while building
>
> CMake Warning at CMakeLists.txt:29 (message):
>     Visual Studio generators use the x86 host compiler by default, even for
>     64-bit targets.  This can result in linker instability and out of memory
>     errors.  To use the 64-bit host compiler, pass -Thost=x64 on the CMake
>     command line.
> ...
> CMake Warning (dev) at utils/benchmark/CMakeLists.txt:3 (project):
>     Policy CMP0048 is not set: project() command manages VERSION variables.
>     Run "cmake --help-policy CMP0048" for policy details.  Use the
> cmake_policy
>     command to set the policy and suppress this warning.
> -----> seems related to https://bugs.llvm.org/show_bug.cgi?id=38874
> ...
> CMake Warning at utils/benchmark/CMakeLists.txt:234 (message):
>     Using std::regex with exceptions disabled is not fully supported
>
> and later some linker errors
>
> LINK : fatal error LNK1104: cannot open file
> '..\..\Debug\lib\LLVMDemangle.lib'
> [D:\projects\fun\jit_tests\llvm40\llvm40-build\lib\Support\LLVMSupport.vcxproj]
> ...
> LINK : fatal error LNK1104: cannot open file
> '..\..\..\lib\Debug\benchmark.lib'
> [D:\projects\fun\jit_tests\llvm40\llvm40-build\utils\benchmark\src\benchmark_main.vcxproj]
> ...
> LINK : fatal error LNK1104: cannot open file
> '..\..\Debug\lib\LLVMDemangle.lib'
> [D:\projects\fun\jit_tests\llvm40\llvm40-build\lib\Support\LLVMSupport.vcxproj]
> ...
> LINK : fatal error LNK1104: cannot open file
> '..\..\..\lib\Debug\benchmark.lib'
> [D:\projects\fun\jit_tests\llvm40\llvm40-build\utils\benchmark\src\benchmark_main.vcxproj]
>
> i also tried to build LLVM 4 and 6 on a clean cloned version
> git checkout -b release_40
> git checkout -b release_60
>
> producing the very same warnings/errors and the build breaks
>
> in the end i've got 1 lib and 2 dlls - not what i've expected :)
>
>
> any ideas?
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev




More information about the llvm-dev mailing list