From 990ad677590d1950ee1da98714c7fa6b9d0e5578 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Mon, 27 Jan 2025 13:36:46 +0100 Subject: [PATCH] build-llvm: Install and keep llvm-lib It's an equivalent to MSVC lib.exe [^1]. It is used by meson to find the DLL name from a .lib/.dll.a [^2]. The other option is dlltool, which is not the same as llvm-dlltool. [^1] https://llvm.org/docs/CommandGuide/llvm-lib.html [^2] https://github.com/mesonbuild/meson/blob/1e986554ef2071f59fb796cda5e66c448bde6ac9/mesonbuild/scripts/symbolextractor.py#L209 --- build-llvm.sh | 2 +- install-wrappers.sh | 2 +- strip-llvm.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build-llvm.sh b/build-llvm.sh index 600baaa..ab41d7a 100755 --- a/build-llvm.sh +++ b/build-llvm.sh @@ -312,7 +312,7 @@ cmake \ -DLLVM_TARGETS_TO_BUILD="ARM;AArch64;X86;NVPTX" \ -DLLVM_INSTALL_TOOLCHAIN_ONLY=$TOOLCHAIN_ONLY \ -DLLVM_LINK_LLVM_DYLIB=$LINK_DYLIB \ - -DLLVM_TOOLCHAIN_TOOLS="llvm-ar;llvm-ranlib;llvm-objdump;llvm-rc;llvm-cvtres;llvm-nm;llvm-strings;llvm-readobj;llvm-dlltool;llvm-pdbutil;llvm-objcopy;llvm-strip;llvm-cov;llvm-profdata;llvm-addr2line;llvm-symbolizer;llvm-windres;llvm-ml;llvm-readelf;llvm-size;llvm-cxxfilt" \ + -DLLVM_TOOLCHAIN_TOOLS="llvm-ar;llvm-ranlib;llvm-objdump;llvm-rc;llvm-cvtres;llvm-nm;llvm-strings;llvm-readobj;llvm-dlltool;llvm-pdbutil;llvm-objcopy;llvm-strip;llvm-cov;llvm-profdata;llvm-addr2line;llvm-symbolizer;llvm-windres;llvm-ml;llvm-readelf;llvm-size;llvm-cxxfilt;llvm-lib" \ ${HOST+-DLLVM_HOST_TRIPLE=$HOST} \ $CMAKEFLAGS \ .. diff --git a/install-wrappers.sh b/install-wrappers.sh index ce5c2af..5f51734 100755 --- a/install-wrappers.sh +++ b/install-wrappers.sh @@ -97,7 +97,7 @@ if [ -n "${HOST_CLANG}" ]; then llvmexec="$PATH:$llvmdir/bin" for exec in ld.lld llvm-ar llvm-ranlib llvm-nm llvm-objcopy llvm-strip llvm-rc llvm-cvtres \ - llvm-addr2line llvm-dlltool llvm-readelf llvm-size llvm-strings llvm-addr2line llvm-windres llvm-ml; do + llvm-addr2line llvm-dlltool llvm-readelf llvm-size llvm-strings llvm-addr2line llvm-windres llvm-ml llvm-lib; do execpath=$(PATH=$llvmexec command -v $exec) && ln -sf $execpath $PREFIX/bin/$exec done fi diff --git a/strip-llvm.sh b/strip-llvm.sh index d62c740..1a68e6f 100755 --- a/strip-llvm.sh +++ b/strip-llvm.sh @@ -89,7 +89,7 @@ for i in amdgpu-arch bugpoint c-index-test clang-* clangd clangd-* darwin-debug rm -f $i fi ;; - llvm-ar|llvm-cvtres|llvm-dlltool|llvm-nm|llvm-objdump|llvm-ranlib|llvm-rc|llvm-readobj|llvm-strings|llvm-pdbutil|llvm-objcopy|llvm-strip|llvm-cov|llvm-profdata|llvm-addr2line|llvm-symbolizer|llvm-wrapper|llvm-windres|llvm-ml|llvm-readelf|llvm-size|llvm-cxxfilt) + llvm-ar|llvm-cvtres|llvm-dlltool|llvm-nm|llvm-objdump|llvm-ranlib|llvm-rc|llvm-readobj|llvm-strings|llvm-pdbutil|llvm-objcopy|llvm-strip|llvm-cov|llvm-profdata|llvm-addr2line|llvm-symbolizer|llvm-wrapper|llvm-windres|llvm-ml|llvm-readelf|llvm-size|llvm-cxxfilt|llvm-lib) ;; ld64.lld|wasm-ld) if [ -e $i ]; then