<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/149324>149324</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Building liboffload fails for pure libc++ build (missing build dependency)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
build-problem,
openmp:libomptarget
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
jprotze
</td>
</tr>
</table>
<pre>
Building with `-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld" -DLLVM_ENABLE_RUNTIMES="libcxxabi;libcxx;libunwind;openmp;offload;compiler-rt"` fails, when configuring clang to always use the LLVM C++ lib: `-DCLANG_DEFAULT_CXX_STDLIB=libc++`:
```
[105/2895] Building CXX object offload/tools/offload-tblgen/CMakeFiles/offload-tblgen.dir/APIGen.cpp.o
FAILED: offload/tools/offload-tblgen/CMakeFiles/offload-tblgen.dir/APIGen.cpp.o
BUILD/bin/clang++ --target=x86_64-unknown-linux-gnu -DGTEST_HAS_RTTI=0 -DLLVM_BUILD_STATIC -DOMPTARGET_DEBUG -DOMPT_SUPPORT=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -ISOURCE/llvm/include -IBUILD/include -IBUILD/runtimes/runtimes-bins/openmp/runtime/src -Wno-unused-command-line-argument -Wno-gnu-line-marker -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -w -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fno-exceptions -funwind-tables -fno-rtti -MD -MT offload/tools/offload-tblgen/CMakeFiles/offload-tblgen.dir/APIGen.cpp.o -MF offload/tools/offload-tblgen/CMakeFiles/offload-tblgen.dir/APIGen.cpp.o.d -o offload/tools/offload-tblgen/CMakeFiles/offload-tblgen.dir/APIGen.cpp.o -c SOURCE/offload/tools/offload-tblgen/APIGen.cpp
In file included from SOURCE/offload/tools/offload-tblgen/APIGen.cpp:14:
In file included from SOURCE/llvm/include/llvm/ADT/StringExtras.h:17:
In file included from SOURCE/llvm/include/llvm/ADT/APSInt.h:18:
In file included from SOURCE/llvm/include/llvm/ADT/APInt.h:19:
In file included from SOURCE/llvm/include/llvm/Support/MathExtras.h:16:
SOURCE/llvm/include/llvm/ADT/bit.h:18:10: fatal error: 'cstddef' file not found
18 | #include <cstddef> // for std::size_t
| ^~~~~~~~~
1 error generated.
```
With more errors about missing `type_traits` includes.
When building without `offload` runtime first, adding `offload` to the runtimes in a second configure+build sequence, the build succeeds. So, there is clearly some dependency missing between generating C++ header files in the outer build directory and building the runtimes.
In a successful build, the header can be found in:
```
BUILD/include/c++/v1/type_traits
BUILD/include/c++/v1/experimental/type_traits
BUILD/include/c++/v1/__cxx03/type_traits
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0VkuT46oV_jV4Q-GSkZ8LL2TL6jhld3e11ZnZqZA4srmDQAHUdt9FfnsKSX7MnUUmyYyrq0QfOB_nyfmYteKoAJZoskKTeMAad9Jm-UdttPsTBrnmn8tVIyQX6ojPwp0wmgYk3u3-sc82z9Fqt8le317-vlmnBxTGiNJCMnVE4ar9Eqe1tAQuzjAUrqTkiFL8vfrb-3O63W96dSny4nJhufDH23W3aNRZKI7Cla5BVbVflKXUzIsKXdVCgiHGIUrRNMAlE9IiusbnEyhcaFWKY2O8C61Z2GnM5Jl9WtxYwO4E2FuE14iuEF1hKXIURp2n6130_JTFmyR636XZ-uvX7JDGu-0KhbG3r9NA0wCFEQoiv-j-gghNVqNggmhC54sJmsT4Fsf1169Y539A4fDVC5q0oUI06SXE5fIICtFkvWffIBESftwdcmEQTaLX7ROoYVHXQ42CKIm2u03sPfjl6BgF0ep9u4sRTXLh9bt8d3EjxDFzBIfC-DKfZtMxadQ3pc-KSKGaCzmqBpP4Kd0c0uxv0SF7S9MtCuPgWhEtcnZIo3S7xiR-2b-m0dvTJs3izer9qZdkh_fX15e3FIXxCJM48_lYZ-uX50MaPafZPlq_vRzuG8nL2z76Ubzb7rd36fbw8v623iCaSPlRIZoIVciGAybbq7c_SkyjnKjauF2XJBeqjWNXpLcNRBNrCky-KE0a1VjgpNBVxRT3kQHCzLGpQLnuxFE1nbhi5hsYTMpXH49SaWKhYsqJggjlwNTaCie0wqT8EFbkQgr3SYTyypacBOegMPkCxmiDwpgzB8Sb8yBr1LFhhgMn7IMJyXoMBWdMzpiUXLCj0taJwpJCS-2tKRtV-GuJhfZr_Tnm2MP_LyEm8XOfNus4CuO-VUYz3LkClwLqq3rX3sSxXILt9o1zApN9jMk-_Q2FTPbJr0cdckz07zC2wLcK_Qn0uy4Koq3CpZCA-wLmuDS6-l_hwmg07l66_wD7fR_dBVGcIpocnH-MN34s2OHJo85-AWr0etgq1-HNfwneDW7xf8EdmrrWfjgle-ZOj25PO9yfNCgXD96N_MjBJXNM4r6bI4zorLCOcygRnXW2Ku1wqRvFURBhjEdzjGZrjGh4fdFQuL7qhBuMaIJogkttcNu3EQojK_6EzHX6GLf6tx-abP7V_1AQjTpT8BEUGOaAD_8yFL94ClFpA91Bi1muG4crYa2fjGgauM8aMmeYcNaP8t5K2wIF0Rc_0PNHQuLV0TS41vE0wP2ji0thrPMsgHHegz-ccrod_NenGwuFGbZQaMVvjAEQXbWXYQv_bEAV4OG8Wi9tigKA2yE-6H7HABYWFxKYkZ_Y6gowhxoUB1V83vzMwZ0B1DVOLSnoh-gJGAfT5q41yt-mGwemv5MLA4XT5hMzxe-hePSlj9W29cibaG3ZyO7s1YH-moIpnENXIFionsV8n7O_jEA_9HvaQ5OPkX85HlL2E8fhUoMRft4x-d9rZ1lxuQThD4qPFg_4MuSLcMEGsBzNJnQ2DcPJYnBa5iNWMM4X43kZhjPIpywo6GQ2Bs7pCBgdiCUN6CSYjWaj8ZiGi2Ewmi8gyClbTOZ0vsjROICKCTn0nTnU5jgQ1jawHI0XIR0PJMtB2pZNU9oGnNRG5xIqT03pGlF6ZbCRFLmu6p4yUerpt1l6WJI3R4vGgRTW2ftFTjgJdzbu1bty7vhu27N1YwDfiWlfM4jOb5XXFdGtJBFdDBojlyfnauvT3_b_UbhTkw8LXd3foNay2mjPW32CvNt-XvSefyzpvwMAAP__GKr-KA">