llvm-tblgen and clang-tblgen: error while loading shared libraries: libc++.so.1 #53561
Description
I have a custom two-stage build.
Stage 1 build LLVM 13.0.1 toolchain via GCC on Fedora 35 x86.
Stage 2 build LLVM 13.0.1 toolchain using Stage 1 relying completely on LLVM (libc++, compiler-rt, libunwind everywhere).
Stage 1 builds and functions fine.
Stage 2 fails to build while invoking any target with llvm-tblgen in its path, because it's built before libc++ it requires.
If llvm-tblgen is specified to be remote via "-DLLVM_TABLEGEN" then the identical thing happens to clang-tblgen.
IMPORTANT: The CMAKE_INSTALL_PREFIX of Stage 1 is on PATH when building Stage 2 but is in a user home directory
Stage 1 CMAKE cache:
set(LLVM_ENABLE_PROJECTS "clang;lld;compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")
set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "")
set(LLVM_BUILD_TOOLS OFF CACHE BOOL "")
set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
set(LLVM_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
set(LLVM_INSTALL_BINUTILS_SYMLINKS ON CACHE BOOL "")
set(LLVM_INSTALL_CCTOOLS_SYMLINKS ON CACHE BOOL "")
set(LLVM_PARALLEL_LINK_JOBS 1 CACHE STRING "")
set(LLVM_BUILD_LLVM_DYLIB ON CACHE BOOL "")
set(LLVM_LINK_LLVM_DYLIB ON CACHE BOOL "")
set(CLANG_LINK_CLANG_DYLIB ON CACHE BOOL "")
set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")
set(CMAKE_BUILD_TYPE Release CACHE STRING "")
set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "")
set(CMAKE_CXX_FLAGS_RELEASE "-O2" CACHE STRING "")
set(CMAKE_ASM_FLAGS_RELEASE "-O2" CACHE STRING "")Stage 2 CMAKE cache:
set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;lld;lldb" CACHE STRING "")
set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")
set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "")
set(LLVM_BUILD_TOOLS ON CACHE BOOL "")
set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
set(LLVM_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
set(LLVM_ENABLE_DUMP ON CACHE BOOL "")
set(LLVM_BUILD_LLVM_DYLIB ON CACHE BOOL "")
set(LLVM_LINK_LLVM_DYLIB ON CACHE BOOL "")
set(CLANG_LINK_CLANG_DYLIB ON CACHE BOOL "")
set(LLVM_ENABLE_LTO Thin CACHE BOOL "")
set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "")
set(LLVM_ENABLE_LIBEDIT OFF CACHE BOOL "")
set(LLVM_ENABLE_LLD ON CACHE BOOL "")
set(LLVM_ENABLE_LIBCXX ON CACHE BOOL "")
set(CLANG_DEFAULT_CXX_STDLIB libc++ CACHE STRING "")
set(CLANG_DEFAULT_LINKER lld CACHE STRING "")
set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "")
set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "")
set(COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "")
set(SANITIZER_CXX_ABI libc++ CACHE STRING "")
set(SANITIZER_TEST_CXX libc++ CACHE STRING "")
set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
set(LIBCXX_USE_COMPILER_RT YES CACHE BOOL "")
set(LIBCXXABI_USE_COMPILER_RT YES CACHE BOOL "")
set(LIBCXXABI_USE_LLVM_UNWINDER YES CACHE BOOL "")
set(LLVM_INSTALL_BINUTILS_SYMLINKS ON CACHE BOOL "")
set(LLVM_INSTALL_CCTOOLS_SYMLINKS ON CACHE BOOL "")
set(LLVM_PARALLEL_LINK_JOBS 1 CACHE STRING "")
set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")
set(CMAKE_C_COMPILER clang CACHE STRING "")
set(CMAKE_CXX_COMPILER clang++ CACHE STRING "")
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "")
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -glldb -DNDEBUG" CACHE STRING "")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O3 -glldb -DNDEBUG" CACHE STRING "")
set(CMAKE_ASM_FLAGS_RELWITHDEBINFO "-O3 -glldb -DNDEBUG" CACHE STRING "")Stage 1 and Stage 2 are built virtually identically.
Stage 2 is built as follows, where LLVM_DISTRO_CONF is the CMAKE cache file above:
cmake3 -G Ninja \
-Wno-dev \
-DCMAKE_INSTALL_PREFIX="$TARGET_DIR" \
-DPYTHON_HOME="$(python -c 'import sys; print(sys.exec_prefix)')" \
-DPYTHON_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
-DPython3_EXECUTABLE="$(python -c 'import sys; print(sys.executable)')" \
-C "$LLVM_DISTRO_CONF" \
-S "$SOURCE_DIR" -B "$BUILD_DIR"
pushd "$BUILD_DIR"
ninja-build install-runtimesThe build fails with the above llvm-tblgen or clang-tblgen error.
Example:
[423/2897] Building Attributes.inc...
FAILED: include/llvm/IR/Attributes.inc /home/user/Documents/src/llvm/llvm.stage2.build/include/llvm/IR/Attributes.inc
cd /home/user/Documents/src/llvm/llvm.stage2.build && /home/user/Documents/src/llvm/llvm.stage2.build/bin/llvm-tblgen -gen-attrs -I /home/user/Documents/src/llvm/llvm-project/llvm/include/llvm/IR -I/home/user/Documents/src/llvm/llvm.stage2.build/include -I/home/user/Documents/src/llvm/llvm-project/llvm/include /home/user/Documents/src/llvm/llvm-project/llvm/include/llvm/IR/Attributes.td --write-if-changed -o include/llvm/IR/Attributes.inc -d include/llvm/IR/Attributes.inc.d
/home/user/Documents/src/llvm/llvm.stage2.build/bin/llvm-tblgen: error while loading shared libraries: libc++.so.1: cannot open shared object file: No such file or directory
Activity