<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/60540>60540</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Configuring runtime fails on aarch64
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
oroppas
</td>
</tr>
</table>
<pre>
This issue does not happen to X86.
```
[6802/6945] Performing configure step for 'runtimes'
Not searching for unused variables given on the command line.
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
-- Could NOT find Terminfo (missing: Terminfo_LIBRARIES Terminfo_LINKABLE)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY) (found version "1.2.11")
CMake Error at /home/ryuta/packages/llvm/llvm-project/llvm/cmake/modules/HandleLLVMOptions.cmake:320 (message):
Host compiler does not support '-fuse-ld=lld'
Call Stack (most recent call first):
CMakeLists.txt:157 (include)
-- Configuring incomplete, errors occurred!
See also "/home/ryuta/packages/llvm/build/runtimes/runtimes-bins/CMakeFiles/CMakeOutput.log".
See also "/home/ryuta/packages/llvm/build/runtimes/runtimes-bins/CMakeFiles/CMakeError.log".
FAILED: runtimes/runtimes-stamps/runtimes-configure /home/ryuta/packages/llvm/build/runtimes/runtimes-stamps/runtimes-configure
cd /home/ryuta/packages/llvm/build/runtimes/runtimes-bins && /usr/bin/cmake --no-warn-unused-cli -DCMAKE_C_COMPILER=/home/ryuta/packages/llvm/build/./bin/clang -DCMAKE_CXX_COMPILER=/home/ryuta/packages/llvm/build/./bin/clang++ -DCMAKE_ASM_COMPILER=/home/ryuta/packages/llvm/build/./bin/clang -DCMAKE_LINKER=/home/ryuta/packages/llvm/build/./bin/ld.lld -DCMAKE_AR=/home/ryuta/packages/llvm/build/./bin/llvm-ar -DCMAKE_RANLIB=/home/ryuta/packages/llvm/build/./bin/llvm-ranlib -DCMAKE_NM=/home/ryuta/packages/llvm/build/./bin/llvm-nm -DCMAKE_OBJDUMP=/home/ryuta/packages/llvm/build/./bin/llvm-objdump -DCMAKE_OBJCOPY=/home/ryuta/packages/llvm/build/./bin/llvm-objcopy -DCMAKE_STRIP=/home/ryuta/packages/llvm/build/./bin/llvm-strip -DCMAKE_READELF=/home/ryuta/packages/llvm/build/./bin/llvm-readelf -DCMAKE_C_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_CXX_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_ASM_COMPILER_TARGET=aarch64-linux-gnu -DCMAKE_INSTALL_PREFIX=/home/ryuta/local -DLLVM_BINARY_DIR=/home/ryuta/packages/llvm/build -DLLVM_CONFIG_PATH=/home/ryuta/packages/llvm/build/bin/llvm-config -DLLVM_ENABLE_WERROR=OFF -DLLVM_HOST_TRIPLE=aarch64-linux-gnu -DLLVM_HAVE_LINK_VERSION_SCRIPT=1 -DLLVM_USE_RELATIVE_PATHS_IN_DEBUG_INFO=OFF -DLLVM_USE_RELATIVE_PATHS_IN_FILES=OFF -DLLVM_LIT_ARGS=-sv -DLLVM_SOURCE_PREFIX= -DPACKAGE_VERSION=17.0.0git -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_MAKE_PROGRAM=/usr/bin/ninja -DCMAKE_C_COMPILER_LAUNCHER= -DCMAKE_CXX_COMPILER_LAUNCHER= -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCOMPILER_RT_BUILD_BUILTINS=Off -DLLVM_INCLUDE_TESTS=ON -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-linux-gnu -DLLVM_ENABLE_PROJECTS_USED=ON -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON -DLLVM_BUILD_TOOLS=ON -DCMAKE_C_COMPILER_WORKS=ON -DCMAKE_CXX_COMPILER_WORKS=ON -DCMAKE_ASM_COMPILER_WORKS=ON -DHAVE_LLVM_LIT=ON "-DLLVM_ENABLE_RUNTIMES=libunwind;libcxxabi;libcxx;compiler-rt" -DLLVM_USE_LINKER=lld -GNinja /home/ryuta/packages/llvm/llvm-project/llvm/runtimes/../../runtimes && /usr/bin/cmake -E touch /home/ryuta/packages/llvm/build/runtimes/runtimes-stamps/runtimes-configure
[6933/6936] Creating library symlink lib/libclang-cpp.so
ninja: build stopped: cannot make progress due to previous errors.
```
Looking into `build/runtimes/runtimes-bins/CMakeFiles/CMakeError.log`:
```
$ tail -20 /home/ryuta/packages/llvm/build/runtimes/runtimes-bins/CMakeFiles/CMakeError.log
Source file was:
int main() { return 0; }
Performing C++ SOURCE FILE Test CXX_SUPPORTS_CUSTOM_LINKER failed with the following output:
Change Dir: /home/ryuta/packages/llvm/build/runtimes/runtimes-bins/CMakeFiles/CMakeScratch/TryCompile-L2wGOr
Run Build Command(s):/usr/bin/ninja cmTC_1f183 && [1/2] Building CXX object CMakeFiles/cmTC_1f183.dir/src.cxx.o
[2/2] Linking CXX executable cmTC_1f183
FAILED: cmTC_1f183
: && /home/ryuta/packages/llvm/build/./bin/clang++ --target=aarch64-linux-gnu -fuse-ld=lld CMakeFiles/cmTC_1f183.dir/src.cxx.o -o cmTC_1f183 && :
ld.lld: error: cannot open /home/ryuta/packages/llvm/build/lib/clang/17/lib/linux/libclang_rt.builtins-aarch64.a: No such file or directory
ld.lld: error: cannot open /home/ryuta/packages/llvm/build/lib/clang/17/lib/linux/libclang_rt.builtins-aarch64.a: No such file or directory
clang-17: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
Source file was:
int main() { return 0; }
```
As the error message `ld.lld: error: cannot open /home/ryuta/packages/llvm/build/lib/clang/17/lib/linux/libclang_rt.builtins-aarch64.a: No such file or directory` indicates, `build/lib/clang/17/lib/linux/libclang_rt.builtins-aarch64.a` does not exist.
Instead `build/lib/clang/17/lib/aarch64-linux-gnu/libclang_rt.builtins.a` does:
```
$ ls build/lib/clang/17/lib/aarch64-linux-gnu
libclang_rt.builtins.a
```
Is `libclang_rt.builtins` configured subtly differently for different architecture?
Here's how I configured and build:
```
make -G Ninja \
-B build \
-S llvm-project/llvm \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \
-DCMAKE_INSTALL_PREFIX="$HOME/local" \
-DCMAKE_C_COMPILER=/usr/bin/clang-12 \
-DCMAKE_CXX_COMPILER=/usr/bin/clang++-12 \
-DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \
-DCMAKE_CUDA_HOST_COMPILER=/usr/bin/clang++-12 \
-DLLVM_CCACHE_BUILD=ON \
-DLLVM_ENABLE_LIBCXX=ON \
-DLLVM_ENABLE_LLD=ON \
-DLLVM_ENABLE_LTO="Thin" \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;libclc;lld;lldb;mlir;polly;pstl;flang" \
-DLLVM_ENABLE_RUNTIMES="libunwind;libcxxabi;libcxx;compiler-rt" \
-DLLVM_DEFAULT_TARGET_TRIPLE="aarch64-linux-gnu" \
-DLLVM_HOST_TRIPLE="aarch64-linux-gnu" \
-DLLVM_TARGETS_TO_BUILD="AArch64;NVPTX;WebAssembly" \
-DLLVM_INSTALL_UTILS=ON \
-DCLANG_DEFAULT_CXX_STDLIB="libc++" \
-DCLANG_DEFAULT_LINKER="lld" \
-DCLANG_DEFAULT_RTLIB="compiler-rt" \
-DCLANG_DEFAULT_UNWINDLIB="libunwind" \
-DPython3_EXECUTABLE="$(which python)" \
|| exit 1
LIBRARY_PATH=/usr/lib/llvm-12/lib \
cmake --build build -- -j 4 -k 0 || exit 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWVtzoziw_jXKiwqXLeJLHvLAzQk7xHZhPJM5Ly4MwtZERpQkcvn3pyQuxgmZk1nvnqqdmiJGdH_61OpuukUsBNnnGN-CsQ3G7lVcygPjt4yzoojF1Y6lb7fRgQhIhCgxTBkWMGcSHuKiwDmUDD7OJgMwdMHQqq-TYf2_uh3bk9kQATSf3FyPwdiFK8wzxo8k38OE5RnZlxxDIXEBM8YhQFNe5pIcsQBoWmEsmIQCxzw5KCUlVealwCl8jjmJdxQLuCfPOIcsh_KAYcKOxzhPISU5rrkZBnRYSVO4WEYwI3kKI6w4ZAwCNDsSIUi-B6bVDm8D3w6t0PfW3aHFN8sOPIBu4Gew_xP49jtINVTD_dSqaJaxMk_hM-aCsBwChEYDNBiNAEIA3fxXGTsP8ROGHueMw1hCgOYHdsQAzflbKWOA5kWcPMV7tbFzSp-P9R-j4OwXTuRpNDnGT0rvyNKSavH7OE8pDoLvD8tCEpaLQSVjWiYaavJYiHiPFRezdkQI75mQyhkKQjE_-a4oi4JxRXBqZKXABk2B6VKatg7nxJTCtYyTJ42tYDhOcC5hop5khAt5PpVee0CEFAP5KoFpjcZTpUvyhJYpbm3UveqtqAJA-TXJFVWKJQbIgViZUUCWJCXnOAVoVCmtMYYxFcoJ0FcsvCuJWtj8FFTtT2NHcnWvuc9JZWl9syxlUcoBZXuA0OD_cWLtPOfzzi0_8FzllX1IQsbH4mzklFMuZflbbM0tSS-eRJkCAjQBaKKwSsGVAsmbMICGkTPjJea5USU9I6EEGq7zYH3zts7WWT6s_MALgen-CZXBaRYa5_sT4OPjPwQJkA2Q3QJb64d_mqtKbheA0XRAaXoieAGSymIxb6FCaxH49mVwPM4p2bWQi4fL4PJjC7W0_3I3D6vL8NjuV1oeiy6os1z9vBg0YcVbC7qOQv9CnkJycmIZepbrBfMLdwbHKaZZTwxuIyu88yJgurEqVibXBiV5-Wrs87I3wL4i342br8j7i3VkBcF2FXpz_7F3pZQlMYWGq16nW9tfWOHPrev_kfs32s5yMffvtisruv9Do3YMWmXVBtJbqIJl-8MLw6XitJzPm0f3y3W0VT4ReJ_YoBKzvlfJYfvdC9f-crFdO6G_UnYbNTKbtfKGwIr8756mv976i63r2Zu7rb-YL88n7pee-4G3PhcM_GhrhXdq1BDPzeh6uQkd77Ql0HBXlvPNuvMahoradDAcDPdEtltpb_zA3UY_V2q1IaY_iDy4eOerErCR0ZdVuLwLrTpDdN8gOcl_xX2OGlibhXOvk2e_Z_YJeI-rZRg1Murvg7Vw17VZW9Uwqpmra-QvtImyrDGGv3CCjettI28d6UeL5onrza1NENVe_oWNrl1lFS7_8pxorbbJPUNsBNrQ2YabReQ_eLW_nyRrWy-XQcvpg9F-LMNv7592bdbz_Cx6z55XTlr7TDUIEDrnXZNVOpTsyvyF5CkwbUp2yetrvCPtb2DaTZlrcAkQ6jpu-5rUb7u7hfaJv1-cd4qYwaC5NIO_r2Q8KFmZHP7NwuzUdN6Ypm46zYlqOh2OY6mqbEp2POZvULwdKcmf1L2alOx0bWEkRTEQrELR0aMKzyrlCcmKAqdqIIlz1UjoVRWc7TkWAqYlVv1wwfEzYaWoK_hBf1esrwFjT1XlLxkEk-GFJfNk2DYk_ZOiayhjQqGhe6Z_vYTvMFmzkicYZoRi-BKLlifJlRWVj8x0nzm1Icey5DkcAtOGYOp2UTonB05dXlapFapUDCMsJFQRud6sVKZab53NOlo-1BEAs5hQnMIXIg_6mCBjlLIXhcZ0v9Oycg5xvsfQJVxt9r9mqXXCY5kcAJpH_M2p4tcI0MvdkndXHZY5tLUHOtW5BkAzUXeffek-OUbOdpSNZmYbjWN7BNAcqUDQSNqCj4-Q7VRswzNqJ_VBShS24MkgeX0dsDa2UAMWkPypwcKvOCllvKO4w-B9C9flVqFpAzc549Jew5Ax32PZ_844a_W_umZosC5p2JJtfKXqItQydLx3sgMrcP5Hi6pSUb2g-WjaDulFdLLUlsuBUpIkF0a90oHOVAsGhcqwOtAYhynhOJGMv_0HyVYJeTQ9o6tyNubtCV83pPErkTBhKYYjCNCsFBgazyojC4whyZ9ZEkvC8vYo5vP0Lsrd-QSDj4c3_0xG630tWEKnJ71mWB9sqdfDf2X3JkNI8pQksVRTO90326XzToanYzz8SoQ82xk_FxLH6Zcm_JAgPpn8NOn__XKlAv6NeavI7J_6cyfxhXaJHjXFt62HUuXMkr7BlGQZ5jhXvzO9XfU91OfqEidSlU_m_KOr32OOAZoKeGAv0O9iqwipVvxb21TV3x2sS8-x05yaqn-GXQfg-_E17ClAP0i5VeW-vrdCz90Gvl1X2Ce53nYKIHTeUami-aNOTzeNALq-Xz54TSPdr_j-YO6sGq4SW6_ah-O3D4rVu-4T9Y1r9erXTOdJmcancuE5ST4D0a3232JSnQs4lnNfm_z9ftT71m10At92Hh8_btyZzNeQomW1S9FBEe2h9q5prKSr9Zh2tTWSMSoM_Cp5XLdYNFE_aFpdd8C0j1RVh3bBKH1Tf4WkwLSzyi7o9yQ7fR1A6E9bu37oz5pngFBPquuxy_nhypfVqvnW22jZ7jZAyLK0LjDtxfdV9AhM-wfeWULg446-9eI0kbaJ_OBDCNcLdQJrcdeuVFf6kductCo7JpVL9lrpXLlzdoz0l5934XQmHEbtJJ_uxXudzeKHvzgjV2_yO63Vmzyw3Nx6j56zifS3uibLADR7OZDkAAstowqXjwsDUwdMnar4GZ01l9Xnu87ZXJ0KqvetSq0jVN2fMJtPDlVGro_6DGj8gtfQeILD3umaZH-V3prpjXkTX-Hb0WQ6ngynN8PJ1eH22sxwchPH0-xmOh5doyxLk2yCsuEszWboOr0it2iIzCEajkfX5gxNBqN0NJoMhzfTeJbcmLsEXA_xMSZ0oHgPGN9f6e_Rt5Ph-Hp4ReMdpkJ_wkYoxy_Vx2plxLF7xW_1WnflXoDrIdWf6FoUSSTFt92vcHXbpgs_AVkO6zC4Kjm9PUhZiKrvAmi-J_JQ7gYJO356ZqKJqPpLE_3fAAAA__85TZuy">