| author | |
| committer | |
| log | 15ab61b2a00b56c5b15a2d5a4efbf6b7bde7a868 |
| tree | 5f428ae890f41eed431234d3007ed44a56fc080c |
| parent | afa24ccd993e38b56407c83160da567bc2b0ae8a |
| signature |
* don't unconditionally pass -lz3 for mingw builds. If mingw builds
require this then the llvm-config executable should put it as part of
--system-libs. If there is a bug and it does not do that, and we need
a workaround, then the workaround should be an explicit cmake option.
* don't link libstage2.a against -lntdll. This causes zig to set
`builtin.link_mode == .Dynamic` and include the TLS definitions,
which then collide with the mingw-w64 symbols. This should probably
be addressed separately, but for now this solves the problem and
there is no reason to link a static library against a DLL.
* Findllvm.cmake no longer treats the libraries as "optional" and will
emit a cmake error if one is not found. Additionally, the
not-required LLVM library LLVMTableGen is omitted.2 files changed, 2 insertions(+), 11 deletions(-)
CMakeLists.txt+1-7| ... | ... | @@ -365,7 +365,7 @@ if(ZIG_STATIC) |
| 365 | 365 | endif() |
| 366 | 366 | else() |
| 367 | 367 | if(MINGW) |
| 368 | set(EXE_LDFLAGS "${EXE_LDFLAGS} -lz3") | |
| 368 | set(EXE_LDFLAGS "${EXE_LDFLAGS}") | |
| 369 | 369 | endif() |
| 370 | 370 | endif() |
| 371 | 371 | |
| ... | ... | @@ -429,11 +429,6 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") |
| 429 | 429 | else() |
| 430 | 430 | set(LIBSTAGE2_RELEASE_ARG --release-fast --strip) |
| 431 | 431 | endif() |
| 432 | if(WIN32) | |
| 433 | set(LIBSTAGE2_WINDOWS_ARGS "-lntdll") | |
| 434 | else() | |
| 435 | set(LIBSTAGE2_WINDOWS_ARGS "") | |
| 436 | endif() | |
| 437 | 432 | |
| 438 | 433 | set(BUILD_LIBSTAGE2_ARGS "build-lib" |
| 439 | 434 | "src-self-hosted/stage2.zig" |
| ... | ... | @@ -447,7 +442,6 @@ set(BUILD_LIBSTAGE2_ARGS "build-lib" |
| 447 | 442 | --bundle-compiler-rt |
| 448 | 443 | -fPIC |
| 449 | 444 | -lc |
| 450 | ${LIBSTAGE2_WINDOWS_ARGS} | |
| 451 | 445 | ) |
| 452 | 446 | |
| 453 | 447 | if("${ZIG_TARGET_TRIPLE}" STREQUAL "native") |
cmake/Findllvm.cmake+1-4| ... | ... | @@ -144,9 +144,7 @@ else() |
| 144 | 144 | /mingw64/lib |
| 145 | 145 | /c/msys64/mingw64/lib |
| 146 | 146 | c:\\msys64\\mingw64\\lib) |
| 147 | if(LLVM_${_prettylibname_}_LIB) | |
| 148 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB}) | |
| 149 | endif() | |
| 147 | set(LLVM_LIBRARIES ${LLVM_LIBRARIES} ${LLVM_${_prettylibname_}_LIB}) | |
| 150 | 148 | endmacro(FIND_AND_ADD_LLVM_LIB) |
| 151 | 149 | |
| 152 | 150 | # This list can be re-generated with `llvm-config --libfiles` and then |
| ... | ... | @@ -154,7 +152,6 @@ else() |
| 154 | 152 | # `llvm-config` here because we are cross compiling. |
| 155 | 153 | FIND_AND_ADD_LLVM_LIB(LLVMXRay) |
| 156 | 154 | FIND_AND_ADD_LLVM_LIB(LLVMWindowsManifest) |
| 157 | FIND_AND_ADD_LLVM_LIB(LLVMTableGen) | |
| 158 | 155 | FIND_AND_ADD_LLVM_LIB(LLVMSymbolize) |
| 159 | 156 | FIND_AND_ADD_LLVM_LIB(LLVMDebugInfoPDB) |
| 160 | 157 | FIND_AND_ADD_LLVM_LIB(LLVMOrcJIT) |