<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/100888>100888</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
"LLVMLibgcc.rst" Build Sample Fails Relating To "LIBCXXABI_USE_LLVM_UNWINDER"
</td>
</tr>
<tr>
<th>Labels</th>
<td>
libc++,
libc++abi
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
vindicatorr
</td>
</tr>
</table>
<pre>
llvm-libgcc/docs/LLVMLibgcc.rst:
```
$ mkdir build-primary
$ cmake -S <pathToLlvmProject> -B build-primary \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CROSSCOMPILING=On \
-DCMAKE_INSTALL_PREFIX=/tmp/aarch64-unknown-linux-gnu \
-DLLVM_ENABLE_PROJECTS='clang' \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;llvm-libgcc" \
-DLLVM_TARGETS_TO_BUILD=AArch64 \
-DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-unknown-linux-gnu \
-DLLVM_LIBGCC_EXPLICIT_OPT_IN=Yes
$ make
```
results in:
```
CMake Error at /<pathToLlvmProject>/libcxxabi/CMakeLists.txt:52 (message):
LIBCXXABI_USE_LLVM_UNWINDER is set to ON, but libunwind is not specified in
LLVM_ENABLE_RUNTIMES.
```
which sounds similar to: https://github.com/llvm/llvm-project/issues/84053#issuecomment-1979386498
Yet the rst also states:
```
It's very important to notice that neither ``compiler-rt``, nor ``libunwind``,
are listed in ``LLVM_ENABLE_RUNTIMES``. llvm-libgcc makes these subprojects, and
adding them to this list will cause you problems due to there being duplicate
targets. As such, configuring the runtimes build will reject explicitly mentioning
either project with ``llvm-libgcc``.
```
And for thoroughness, going ahead and adding libunwind results in:
```
CMake Error at /<pathToLlvmProject>/llvm-libgcc/CMakeLists.txt:55 (message):
Attempting to build both libunwind and llvm-libgcc will cause
irreconcilable target clashes. Please choose one or the other, but not
both
```
So it sounds very contradictory.
The goal/intent is to bootstrap a complete LLVM-based toolchain, much like GCC can by using itself (eg early steps in LFS).
My finding is that while GCC can be cross-built using glibc and libstdcxx, LLVM does not seem to have parity in this regard.
I even thought I might be able to fudge it by using llvm/clang to build musl, but from I'm gathering, a pre-existing libc needs to exist already (chicken<->egg) in order to build `compiler-rt`, while GCC has no such issues.
When I was directed to `llvm-libgcc`, I thought it truly had potential, but it's clearly not in a good state when the example in the document fails.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVt9v6joS_mvMywhEHSjwwAMEOMoubRHQvec8IcceEm8dG9lOKf_9yk5oubft1dHqIlTS2P5m5vvmh5lzstCIUzKck-Giw2pfGjt9lVpIzryxtpMbcZkq9Vp1lcwLzgldCcMdoav1-j8P6_iuZ50nyYz0F6Q_I_f99tv8SwdQvQhpIa-lEt2TlRWzl49FXrEXhO4OSJKemC_3Zq1eq401_0XuSbKE7vzPR4EM0-Y4xE93kT7M_r08zJ-z9eKw_7VZkmSxRYXM4Xd70-3Tbpc-PWyydfb4gySLJw1___kAumJkj7v9bL0-bLbLVfaTJAtCV746EbpizPLyftCt9Ys2Z91VUtdv3ULXf8EJDB6Wj7P5ennYbJ_-tUz3u4gz4orpgtDR7_lzi7N9ftxnD8sGhyqZ87c3ksybB5bL8HyrJv0Kaz_b_ljud4f9U8MqSRazWYzp9_1ZLFez5_W-xTrst9lmHZT5G3I-Yayz-Y80PSx_btZZmu0PT5v9IXskyeIXupv0Yi_4Ze5ZdLXyDqT-LjvTh5B8S2uNBeaB0NU3WUjo6oNCuorn1tJ51_NvIfeHFAgdV-gcK5DQybtBgHU2T3_-nM2zw_NueYhxPT_-kT0ulluQDhx68AaeHglNIa89KJnX-iy1CKvaeHAn5PIoUYRArqBfSN77MsRzKXkJztRaOHCykopZ8IYkMyi9P7ngKV0RuiqkL-u8x00VglWv15_uqWWBrqRzNYbaHw_6w4TQJL7gpqpQ--7dZDRJxveDybix_CtEViJY54EpZ8B55tF9p0XmCR05eEV7AVmdjPVMR2q08ZIj-JJ50Ch9iRaag9xUJ6nQdq1vkWgK2lyX35l8X2wsMYugpPOR0XbvlzUUV3pwUzAx2VwIyyG4Om-5ccEw06LFF0LqImyqgv--lC7ag7NUCjirHcLF1HCyJldYORA1NhvRIuQYDov6pEIPbjPbM1ugdz2YOXA1L4M9bvRRFrVtbYGttZcVuqZdNsYsBvcA3wKa9OoCQSpptNRFg9wS2gYCZ-nLK303faJh4kvdZlrA0VgIo8PURanRRToKExxjJTIRqIGWlY_0_ofL808z6nOBDr8t0Jn3WJ18pNG05OXGlzeuBv9vs-BDyCuItBa50VwqliuERi_girkSXQ9g08wjXhrjEIxGiJQhmED_tfa18VfA4MGXpOwMSH8t6Fgt3GhvmZDcG3u5ihT_7kuEwjAVald71D70lBCkMd55y07AIBSRQo-xp3Rz5lCAN0bxkkkdHKtqHrh4QfiRpsCZhvwCtQt8Se9QHQOzWAAyqy7gPJ6CprBe7QidtO48XOAYbhXhjGtK-VxKdQOJwK1xrhv49y18EXpuQ77MnRdhltE0OgrCYNsesSmzkr0inJiV_hLMx6qzWDArWh8ywFcMCyFLPWRQyfCbIzSSGTjWosDA7nuAbR-M8_gjO6raqatkR2sqyAgdVVCwoGWorNAN4GSxi2_S-TbtOWhEEfmPr4Epi0xcAn28lPwFNUnSLkmWWBSETkIUxgq0H4Y_9zya3hBZskBJbBDQ9Oo29D9K1JDBmTkQ0iL3UWP4XOQ0heydIenB21pdoGQCTibkj2TvgcumX3PV6B6kkBoYFMaIptXDuYx8I-AbC0nW6IIgDK9DH4Ijk8r1OmKaiEkyYR2c3o0oveuPkrtJp5yyRAzuBY6G98fhkY3u6YAxIUaj8eR4z3B435FT2qeD_oiO7ib9cTLpMaT9vI_94XBAx8lIkEEfKyZVL8TZM7boRF6md_3-eDzuKJajcvH621yWCJ3HLw3D4vZVnPs0XJJtcx3O68KRQV_FHvOO7qVXOCWU_uV2TCnMo4K7hohVCBy2qFjMjr2BcOb7mwKhtFNbNf3_R3Yb8euU_i8AAP__pSW9_A">