<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/106838>106838</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang and clang++ can't build static linked binary,but dynamic linked binary 's compilation is ok
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
paleknight894
</td>
</tr>
</table>
<pre>
my env is ubuntu 24.04
the llvm source code is git clone from the last(20.0)
Configured by:
cmake -G Ninja -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind;compiler-rt" -DLLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" -DCMAKE_BUILD_TYPE="Release" -DBUILD_SHARED_LIBS=on -DLLVM_TARGETS_TO_BUILD="X86" -DCMAKE_INSTALL_PREFIX="/usr/local/llvm" -DCMAKE_C_COMPILER_LAUNCHER="ccache" -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" -DLLVM_USE_LINKER="lld" -DLIBCXXABI_USE_LLVM_UNWIND=ON -DLIBUNWIND_ENABLE_SHARED=1 -DCLANG_DEFAULT_CXX_STDLIB="libc++" -DCLANG_DEFAULT_RTLIB="compiler-rt" -D_CMAKE_TOOLCHAIN_PREFIX=llvm- -DCMAKE_C_COMPILER="clang" -DCMAKE_CXX_COMPILER="clang++" -DCMAKE_ASM_COMPILER="clang" -DLIBCXXABI_USE_COMPILER_RT=YES -DLIBCXX_USE_COMPILER_RT=YES -DLIBCXX_HAS_GCC_LIB=OFF -DLIBCXX_HAS_ATOMIC_LIB=OFF -DCLANG_DEFAULT_LINKER ../llvm/
when i compile by "clang hello.c" ,it works as i expected.(hello.c is just a printf hello world test)
but if i compile by "clang -static hello.c"
ld.lld: error: undefined symbol: _Unwind_Resume
>>> referenced by pthread_once.o:(__pthread_once_slow.cold) in archive /lib/x86_64-linux-gnu/libc.a
>>> referenced by iofclose.o:(_IO_new_fclose.cold) in archive /lib/x86_64-linux-gnu/libc.a
>>> referenced by iogetdelim.o:(__getdelim.cold) in archive /lib/x86_64-linux-gnu/libc.a
>>> referenced 4 more times
ld.lld: error: undefined symbol: _Unwind_GetLanguageSpecificData
>>> referenced by gcc_personality_v0.c
>>> gcc_personality_v0.c.o:(__gcc_personality_v0) in archive /usr/local/llvm/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
ld.lld: error: undefined symbol: _Unwind_GetIP
>>> referenced by gcc_personality_v0.c
>>> gcc_personality_v0.c.o:(__gcc_personality_v0) in archive /usr/local/llvm/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
ld.lld: error: undefined symbol: _Unwind_GetRegionStart
>>> referenced by gcc_personality_v0.c
>>> gcc_personality_v0.c.o:(__gcc_personality_v0) in archive /usr/local/llvm/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
ld.lld: error: undefined symbol: _Unwind_SetGR
>>> referenced by gcc_personality_v0.c
>>> gcc_personality_v0.c.o:(__gcc_personality_v0) in archive /usr/local/llvm/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
>>> referenced by gcc_personality_v0.c
>>> gcc_personality_v0.c.o:(__gcc_personality_v0) in archive /usr/local/llvm/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
ld.lld: error: undefined symbol: _Unwind_SetIP
>>> referenced by gcc_personality_v0.c
>>> gcc_personality_v0.c.o:(__gcc_personality_v0) in archive /usr/local/llvm/lib/clang/20/lib/x86_64-unknown-linux-gnu/libclang_rt.builtins.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)
looks like something missing about libunwind,so I compile by "clang -static -lunwind hello.c ",
It works just fine.
Is there something wrong about my configuration,I want build a llvm toolchain replace gcc
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsV1tv4r4S_zThZUQUTGjDAw_h1uYshQroOd2nyHEG8OLYyHagfPsjJyml7V6OVuf_tCshxXh-c_uNbc1QY_hWIg683tDrjVu0tDulBwcqcC_5dmejftjKVH4eFGdAeQRuoMxKaUsgoR-EXjD2gtjuEIQ4FmBUqRkCUzk65JZbYEJJhI1WBVQwaqxHIhL4gUf6tfpIyQ3flhpzyM5eN653WUH3CO07mHP5jUJ7PJv9-yGdzOPhbJIun-br5GGy8rpjjxDBM_by4nWH9YJmvF6X8sRl7nWHTBUHLlC3tfUI-WDrcbn412S0bmwxQeXWqYtK0f1rW6WEaeOL1bRWHz3EXybp8CmZjdP118dJrbpEgdRgDamFq_t4ORmns2TozCv56nodL-8m61W6XtRWagPP0c21_WS-WsezWfq4nEyT5xrikWlptEemQjEq3Fcci2ulUTpaPDwms8kyncVP89H9ZNkkxijb4Tvo8_P_Aq4CflpN0lky__IKcPTU0mQ4en6Oh0kNqbDz_yRzl9JiDjWi3nklvCbF6447LpRZPL9Lx5Np_DRbVyGt1k7lrbIeGVY_8gm9XF-Anyqc1jmuF4vZ6D5O5m8sOsba3-Hruv4_YOkd5CqqChivHn5s6z1NF9aXa687_jpZXRC_Et_Hq_RuNErrxBfT6XtRvF48JNfST5zVRQTfv5ydaX3fTjuUwKEhErIzvGYAOxRC-cxl4pERt3BSem-AGuCALwdkFnPfI1GDc1f_W2ksUDhoLu2mNuC0RA4W3QvQXP2stMA3P3DbNpZazq7c10oi96vbGQNqrbRblDLHDZeYgzkXmRJuL32qrn-6RFMWWKt63Un9A40b1ChZ9ejAwe400jxVkqGv3BtEojS93k2NUCefKXfu-8AlUM12_IjgeOSZR6Yv0U16E7YFl-VLeyvLWsB8-nPXXG2YUObNbbJIJZ7SZvcf8bhFm6PgxVuql53_t78QCqURLC_QNLDfKeId2hmV25JucXVAxjecjan9RaJbxtIDaqMkFdye02Pgs48a38Nc0fJJ-pmb773HDWHNAzAlwUcOS7mX6iQ_cekUUm39rOTCcmku3P4macnjX4p-QdESt1zJlaXa_uXqZ1yt0N4t_xyK_oAUf_MU_EGPSjMOXHEjuNyjdg1LQWUOG8oF5nDidgf44gYeN_x0wCNRaRDaR7AKDCJweVSMWq7kpfsRSu0NCL5HMKpAu-NyCwU3xn1ppkoLb1MMGRkFyU8bpbaosa8dE1QDw6h2lry2bVVr5qrrNwLjJjN9HcNJq0sExRlYM6A10Y8SOFFpwXGVA61HPzcjsR3lEjQeBGXoKtzKB9283-3TFg46t6QX9MNeGLV2gyiPwiiknU2ehX3cIEb9MOpnnZtNkPVvu6TFByQgYRB1O0HU64WRn90GmJNO3uvd5LQX9r0wwIJy4TvvvtLbFjemxEEnuIm6UUvQDIWpxtq3PtxNuHpQ9f9ZuTVeGAhurHkzYbkVOKhJdcW96vSBUemR29esG8arw5BDxiXVZ4-MXD-bnyUtPsrAI7emKV5Fo2uS1b5VajHYWXsw1cmfemS65XZXZj5TxdWpdiEftPqGzHpkWmVqPDJtkj0OyH8DAAD__7dOCw0">