phosek added a comment. In D101194#2720761 <https://reviews.llvm.org/D101194#2720761>, @bjope wrote:
> Got some problems with my builds after this commit. > > My cmake commands looks like this (well, this is after having tried to fix > the problem by replacing `x86_64-unknown-linux-gnu` by `x86_64-linux-gnu` as > I figured that might be needed after looking at the changes in this patch): > > cmake /repo/uabbpet/llvm-upstream/llvm --debug-trycompile -G Ninja > -DCMAKE_MAKE_PROGRAM=/app/ninja/1.8.2/SLED11-64/bin/ninja > -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON > -DCMAKE_INSTALL_PREFIX=/compiler-clang -DLLVM_APPEND_VC_REV=OFF > -DLLVM_ENABLE_ASSERTIONS=ON > -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;lld' > -DLLVM_BUILTIN_TARGETS=default -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON > -DLLVM_ENABLE_RUNTIMES='compiler-rt;libcxx;libcxxabi;libunwind' > -DRUNTIMES_x86_64-linux-gnu_SANITIZER_USE_STATIC_LLVM_UNWINDER=ON > -DRUNTIMES_x86_64-linux-gnu_SANITIZER_USE_STATIC_CXX_ABI=ON > -DRUNTIMES_x86_64-linux-gnu_COMPILER_RT_USE_BUILTINS_LIBRARY=ON > -DRUNTIMES_x86_64-linux-gnu_COMPILER_RT_CAN_EXECUTE_TESTS=OFF > -DRUNTIMES_x86_64-linux-gnu_LIBCXX_HAS_ATOMIC_LIB=0 > -DRUNTIMES_x86_64-linux-gnu_COMPILER_RT_BUILD_XRAY=OFF > -DLLVM_RUNTIME_TARGETS='x86_64-linux-gnu' -DLLVM_ENABLE_LIBPFM=OFF > -DCLANG_TOOLING_BUILD_AST_INTROSPECTION=OFF -DCLANG_ROUND_TRIP_CC1_ARGS=OFF > > But my build fails, and it seems to be related to the message `-- Failed to > find compiler-rt builtins library for x86_64-linux-gnu`, and later I get > > -- Compiler-RT supported architectures: x86_64 > CMake Error at > /repo/uabbpet/llvm-upstream/compiler-rt/cmake/Modules/AddCompilerRT.cmake:258 > (message): > Cannot find builtins library for the target architecture > Call Stack (most recent call first): > /repo/uabbpet/llvm-upstream/compiler-rt/lib/stats/CMakeLists.txt:23 > (add_compiler_rt_runtime) > > It tries to find libclang using a path like this > `my_build_dir/lib/clang/13.0.0/lib/linux/libclang_rt.builtins-x86_64.a` > (which is what I get if manually run `my_build_dir/bin/clang > --rtlib=compiler-rt -print-libgcc-file-name` as well). But what I get when > building is > `my_build_dir/lib/clang/13.0.0/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a` > and > `my_build_dir/lib/clang/13.0.0/lib/i386-unknown-linux-gnu/libclang_rt.builtins.a. > > Not sure exactly what I'm doing wrong here. Looks like some kind of mismatch. > I assume the layout with separate dirs for the libs is due to > `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON`, but the just built clang does not > seem to know about that. Should it know about that? Is it no longer allowed > to use `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON` in combination with > `COMPILER_RT_USE_BUILTINS_LIBRARY=ON`? > > Or maybe the problem is that we use `-DLLVM_BUILTIN_TARGETS=default`? The use of `default` is the issue, the problem is that the target triple "guessed" by `config.guess` doesn't necessarily match the multiarch triple used by Clang. I think that ideally we would stop relying on `LLVM_DEFAULT_TARGET_TRIPLE` and instead we would get the path directly from Clang. I can look into it but that might take a while to implement so we should probably revert the change for now? I'm a bit surprised that you're using `-DLLVM_BUILTIN_TARGETS=default` but `-DLLVM_RUNTIME_TARGETS='x86_64-linux-gnu'`, usually I'd expect these to match. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D101194/new/ https://reviews.llvm.org/D101194 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits