[llvm] Set Support system_libs if WIN32, not just MSVC or MINGW (PR #95505)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 13 22:10:24 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-support
Author: Jeremy Day (z2oh)
<details>
<summary>Changes</summary>
The previous check was false when compiling with `clang++`, which prevented `ntdll` from being specified as a link library, causing an undefined symbol error when trying to resolve `RtlGetLastNtStatus`. Since we always want to link these libraries on Windows, the check can be simplified to just `if( WIN32 )`.
I added the reference to `RtlGetLastNtStatus` in https://github.com/llvm/llvm-project/pull/90655.
I tried building with clang++ without this change, saw the undefined symbol error, then tried building again with `if( WIN32 )` here and was able to build successfully.
Thanks @<!-- -->mstorsjo for suggesting this straightforward fix.
---
Full diff: https://github.com/llvm/llvm-project/pull/95505.diff
1 Files Affected:
- (modified) llvm/lib/Support/CMakeLists.txt (+2-2)
``````````diff
diff --git a/llvm/lib/Support/CMakeLists.txt b/llvm/lib/Support/CMakeLists.txt
index c7f8ac325a97a..4d8ce329029d0 100644
--- a/llvm/lib/Support/CMakeLists.txt
+++ b/llvm/lib/Support/CMakeLists.txt
@@ -37,7 +37,7 @@ if(LLVM_ENABLE_ZSTD)
list(APPEND imported_libs ${zstd_target})
endif()
-if( MSVC OR MINGW )
+if( WIN32 )
# libuuid required for FOLDERID_Profile usage in lib/Support/Windows/Path.inc.
# advapi32 required for CryptAcquireContextW in lib/Support/Windows/Path.inc.
# ntdll required for RtlGetLastNtStatus in lib/Support/ErrorHandling.cpp.
@@ -72,7 +72,7 @@ elseif( CMAKE_HOST_UNIX )
add_compile_definitions(_BSD_SOURCE)
set(system_libs ${system_libs} bsd network)
endif()
-endif( MSVC OR MINGW )
+endif( WIN32 )
# Delay load shell32.dll if possible to speed up process startup.
set (delayload_flags)
``````````
</details>
https://github.com/llvm/llvm-project/pull/95505
More information about the llvm-commits
mailing list