Skip to content

Commit c40708a

Browse files
erikarvstedtandrewrk
authored andcommitted
cmake/findllvm: fix incorrect lib dir setup for zig2
Line `link_directories("${CMAKE_PREFIX_PATH}/lib")` was evaluated as `link_directories("/lib")` in the default case of `CMAKE_PREFIX_PATH` being empty. This caused cmake to add `-L/lib -Wl,-rpath,/lib` to the zig2 build flags. This could result in errors on systems where libraries set via `CMAKE_LIBRARY_PATH` had conflicting versions in `/lib`: - `-L/lib` could cause linking zig2 to fail - `-Wl,-rpath,/lib` adds `/lib` as the first entry of the zig2 `RPATH`. This could cause running zig2 (to build zig3) to fail. In case of conflicting lib dirs, cmake emitted this warning, which is now fixed: ``` Cannot generate a safe runtime search path for target zig2 because files in some directories may conflict with libraries in implicit directories: runtime library [libclang-cpp.so.18.1] in /nix/store/...-clang-18.1.5-lib/lib may be hidden by files in: /lib ```
1 parent bf588f6 commit c40708a

File tree

1 file changed

+0
-1
lines changed

1 file changed

+0
-1
lines changed

cmake/Findllvm.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ if(ZIG_USE_LLVM_CONFIG)
176176
OUTPUT_STRIP_TRAILING_WHITESPACE)
177177
string(REPLACE " " ";" LLVM_INCLUDE_DIRS "${LLVM_INCLUDE_DIRS_SPACES}")
178178

179-
link_directories("${CMAKE_PREFIX_PATH}/lib")
180179
link_directories("${LLVM_LIBDIRS}")
181180
else()
182181
# Here we assume that we're cross compiling with Zig, of course. No reason

0 commit comments

Comments
 (0)