summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2022-10-06 16:41:04 +0200
committerTobias Hieta <tobias@hieta.se>2022-10-18 08:28:50 +0200
commite3b0721b5b7371b2f13196997f9aa096d2179369 (patch)
tree4c567be66ca27fc97f45bf604a95e9f37b329844
parentdfef316bb3d60edcb7a9f78abc62be78473458dc (diff)
downloadllvm-e3b0721b5b7371b2f13196997f9aa096d2179369.tar.gz
[llvm] [lit] Fix use_lld() to respect llvm_shlib_dir
Fix the use_lld() to use llvm_shlib_dir similarly to how use_clang() does it. This fixes use_lld() wrongly prepending llvm_libs_dir, i.e. the directory with system-installed LLVM libraries before the build directory of standalone build. As a result, the shared libraries from an earlier version of clang end up being used instead of the newly built version when running the test suite prior to installing. To reproduce the problem, build and install LLVM with dylibs first, e.g.: cmake ../llvm -G Ninja -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_INSTALL_PREFIX="${HOME}"/llvm-test \ -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON \ -DLLVM_INSTALL_UTILS=ON ninja install Then build clang against that installation and run tests: export LD_LIBRARY_PATH=~/llvm-test/lib export PATh=~/llvm-test/bin:"${PATH}" cmake ../clang -G Ninja -DCMAKE_BUILD_TYPE=MinSizeRel \ -DCMAKE_INSTALL_PREFIX="${HOME}"/llvm-test \ -DCLANG_LINK_CLANG_DYLIB=ON -DLLVM_BUILD_TESTS=ON \ -DLLVM_EXTERNAL_LIT="${PWD}"/bin/llvm-lit ninja check-clang The tests will be run with LD_LIBRARY_PATH of: /home/${USER}/llvm-test/lib:/home/${USER}/llvm-project/build-clang/lib As a result, installed libclang-cpp will take precedence over the one from build dir. With the patch, the correct path is used, i.e.: /home/${USER}/llvm-project/build-clang/lib:/home/${USER}/llvm-test/lib Differential Revision: https://reviews.llvm.org/D135368 (cherry picked from commit a64ea173d7b152678780d5443407d1071277642b)
-rw-r--r--llvm/utils/lit/lit/llvm/config.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py
index b65316128146..7dae83733f31 100644
--- a/llvm/utils/lit/lit/llvm/config.py
+++ b/llvm/utils/lit/lit/llvm/config.py
@@ -609,7 +609,7 @@ class LLVMConfig(object):
self.with_environment('PATH', paths, append_path=True)
lib_dir_props = [self.config.name.lower() + '_libs_dir',
- 'lld_libs_dir', 'llvm_libs_dir']
+ 'lld_libs_dir', 'llvm_shlib_dir', 'llvm_libs_dir']
lib_paths = [getattr(self.config, pp) for pp in lib_dir_props
if getattr(self.config, pp, None)]