<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/127764>127764</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Building runtimes fails for LLVM 20.1.0-rc2
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          BalderOdinson
      </td>
    </tr>
</table>

<pre>
    **Setup**

OS: Ubuntu 18.04 x86_64
Compiler: Clang: 19.1.7
Tool versions:
- CMake 3.20.0
- Python 3.12.8

**CMake configuration**

```sh
cmake -G "Ninja" \
 -DCMAKE_TOOLCHAIN_FILE=../ClangToolChain.cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
 -DLINUX_x86_64-unknown-linux-gnu_SYSROOT="${INSTALL_DIR}/x86_64-linux/sys-root" \
  -C ../clang/cmake/caches/BuildLlvmMultistage-stage2.cmake \
  ../llvm
ninja toolchain-distribution
install-toolchain-distribution-stripped
```

`BuildLlvmMultistage-stage2.cmake` is `clang/cmake/caches/Fuchsia-stage2.cmake` stripped of logic for handling targets other than x86_64-unknown-linux-gnu.

**Error**

During build of runtimes - more specifically rtsan following error is generated:

```
FAILED: compiler-rt/lib/rtsan/CMakeFiles/RTRtsan.x86_64.dir/rtsan_context.cpp.o 
/src/llvm-project/build/./bin/clang++ --target=x86_64-unknown-linux-gnu --sysroot=/var/buildlibs/clang+llvm-20.1.0-rc2-x86_64-linux-gnu/x86_64-linux/sys-root -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/src/llvm-project/compiler-rt/lib/rtsan/.. --target=x86_64-unknown-linux-gnu -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -ffile-prefix-map=/src/llvm-project/build/runtimes/runtimes-x86_64-unknown-linux-gnu-bins=../../../ -ffile-prefix-map=/src/llvm-project/= -no-canonical-prefixes -Wall -Wno-unused-parameter -O3 -DNDEBUG -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -ftrivial-auto-var-init=pattern -nostdinc++ -isystem/src/llvm-project/build/include/x86_64-unknown-linux-gnu/c++/v1 -isystem/src/llvm-project/build/include/c++/v1 -isystem/src/llvm-project/libcxxabi/include -DSANITIZER_COMMON_NO_REDEFINE_BUILTINS -fno-rtti -std=c++17 -MD -MT compiler-rt/lib/rtsan/CMakeFiles/RTRtsan.x86_64.dir/rtsan_context.cpp.o -MF compiler-rt/lib/rtsan/CMakeFiles/RTRtsan.x86_64.dir/rtsan_context.cpp.o.d -o compiler-rt/lib/rtsan/CMakeFiles/RTRtsan.x86_64.dir/rtsan_context.cpp.o -c /src/llvm-project/compiler-rt/lib/rtsan/rtsan_context.cpp
/src/llvm-project/compiler-rt/lib/rtsan/rtsan_context.cpp:16:10: fatal error: 'new' file not found
   16 | #include <new>
      | ^~~~~
1 error generated.
``` 

**Potential fix**

Based on the other [logs](https://github.com/theorian-solutions/cc_toolchain_builds/actions/runs/13379723543/job/37366343527#step:12:6272) seems like target `cxx-headers` is running at the same time as build of rtsan which depends on a header `new` already being copied to build output. Following patch fixed the issue for me:

```patch
---
 compiler-rt/lib/rtsan/CMakeLists.txt | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compiler-rt/lib/rtsan/CMakeLists.txt b/compiler-rt/lib/rtsan/CMakeLists.txt
index a4413d9992b6..40bcf7facad7 100644
--- a/compiler-rt/lib/rtsan/CMakeLists.txt
+++ b/compiler-rt/lib/rtsan/CMakeLists.txt
@@ -37,6 +37,11 @@ set(RTSAN_DYNAMIC_LIBS
   ${SANITIZER_CXX_ABI_LIBRARIES}
 ${SANITIZER_COMMON_LINK_LIBS})
 
+if(TARGET cxx-headers OR HAVE_LIBCXX)
+ # Rtsan uses C++ standard library headers.
+  set(RTSAN_DEPS cxx-headers)
+endif()
+
 append_rtti_flag(OFF RTSAN_CFLAGS)
 
 if(APPLE)
-- 
2.43.0

```

But not sure if it is going breaks building any other platform or use-case.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0WF2T4rbS_jWaG5VcRuZjuJgLg2FDhY8pYDOb94aSrTZWVkh-JXkGcrG__ZRkM0N2srtnUydVFNhS96Pu1tOtFsxacVQAD2gwQYPsjjWu0uZhwiQHs-FCWa3ucs0vD4imiKY7cE3dPqLYfzY7lKT4Y94o1-DefRT38fl-eBj2UZxO9akWEoyXmEqmjv6hN4560QjF6V5riZ_BWKGVRYkHI3i6Yp8BJxGNozgMPF5cpRVOoh6N7tsl2-VbyUKrUhwbw5zQ6tYuNIzbj61QnBYnL0w-YETpWqg_GKIUo8EUxSkm2XSV_jo77Deb5fSXdLE-zBfLGUqyKEJ0Huz2pk4rJlTUAnWar6qTj4tldtj__ujVtiCB2fdCi_Vuny6Xh8ftbL74hJIMUYpoH40m15lssUWj7C-mLRfrj58ObURJoz4r_aKIFKo5k6NqDrvfd9vNZv89sHmnHJQQnduLJUZrd7MMJlMcnC3CJtF58NL_sqICi-h80gjJl_L5tGqkE9axI5DwTb-KSICR8vmE4lT5QGOntSx87AgX1hmRN2Gr4lQo65iU5O8FiH-sa-C3e_m6tT-yBw1jLCxGw_ibLs2borKCvVO7rot1iaU-igKX2uCKKS6FOmLHzBGcxdpVYLCrmMLf2p3olq4zY7S5JWjWGI-Xe0_8WqZRTpzAYoJP2gC2NRSiFAWT8oKNs0zhUkupX7wWeDTv4REUGOaAtwn0VbDm6WI5y3zWFV0qEuP8Bokc0XkA9RT3mTQXMoRlu9_64ah1KuLCXCUPhVYOzi4q6jrSOHg2t6boNpzURv8BhYcPPiE691zIhXoj1gTRCSakjSFKsm9FDhNiLzaw1DN7_szMFVaK3N4AhpVpHPWimJiCkluye6Rv8x-T7HDY7bPpYbrxKbPeH1bpdLvZvU3MN9tV-n54uVgt3kYX34rC90IeRf9dGMrHxRSTUmli4cSUEwURyoGptRU-SzApn4UVuZDCXYhQUiiwpBKcg8LkKdAEJRlnDohn181Yo44NMxw4Yc9MSNZhKHjB5IlJ6UXPzjBMnpQmjWoscFIzw07gwGDy9GKEg5Cm6mgxeSqYdeT_G-Y1T8JaoY6kFCA5EUo4waT4E4wXFKdaikI4UjIpXWV0c6y8vn4GA5zYF-GKinAoWSNdu7zScC6gdsRdaghDijwL4xomCXfam8NBggPyNzO2OR7BOuLxjeBev7WaFFp1B1BrswTG_bhQHJRjbYSfCsc4ObFLDqRRtqlrbRxwTEou2FFp60RhSaGlX6wsG1W09QvCr_VyzLHb91JIILWBUpzJidUtx7-bSdficPNIvsUakgt_nrbH19vXT62LkgwTpUnBlFa-BnVqvjx15PhbUmwSTLJ1Npt8_HBLXu-GE6p9aXeyC4U-eR54fVLrQG1Myka9CMWJY7n0Cwb6O1Z89gY6KMKuhkHmifUnoCSzrIRW6C8pgZLsmgxeQTqNyZOrDDBOvIq7fP1ODJRgQBXwbiYHx1oXjz7POvuIVvLSxiOkrH94ZkYwLgpyYoXRth0sxmMCZwfKdr47I54Fk4Q1LqiEPEFJVjPnwCi_AdZxoYpr4RT2Yh2cfkQWoQrZcHgrfe8o4qtTC-qLa-8fIP-UuhR5cT6zXLxBYJLt0vViv_i_2fYw3axWm_VhvTlsZ9lsvli3HdV-sd61-2acE5hYx1GSdSv3RpisMkxW-3_hbCOr-f8eNeKY6H_D2AL_kyPoHdR3DvSfw0nS3tB_xb7xKJljEneHTooRHSl4QXSEfTHCSjtc6kbx0Dzi3hCj0RQjmlxpgpKpl09mrQDGrcBg9uXLly8oTntdK_TaB0W3LRC-7cAetQPlzyFcivNtJzZh1rd7CrsKur4ODSZSHy0aZIjeV87V4YJC54jOj8JVTR4V2tPdVaCNYIpYLUPbGnqT4vDa0x5C6vhRVlznTRN-ekkyGo9oMugniM7_0D6oySgZDpN-MqAjRBPrIESToiQd0hFFdIwtwMliKT5D14qGJvd8JhUwDsZ2na9plPKNInPBK8tOgEMDwOxNyxm6ypdKFBXmUIPi1oeB4RbLI_vgD2PMpC-EF5yDBy10LYBjp69QjasbF-H5a39aM1dUPs5erAIsrG0gNNIneN-pBml_2yPEb_MPU2QprLORO7tAhgG-1qLrJ05xr-VXUTF1BI6oFxPKguk24T6IjltDuChLTMhROMx-wPav1s9_SjxcejicMev3ewkfj8c0H0ZRP86LclSygvER7sXxsN9vg_GT1gSmdzH4ectQP0b9GJNkhOh06GManno93M1YcIjeb_e7dH3Ifl-nq4VvhSe7NjPby-dNTf_06ZBOFl5im24Xs52_jMbpe7m29i8X619bNH9nHQfJ4I4oEb3fp9sPsz2-oTnebPEv6W8zrzP99KnbSjrxtQOHwokbCxZPu3BYxxRnhmMpcsPMpaO4jTq1v3o3e9zdLvaKDooHe14HvJ2s9plz8GfUoZTsiOj9Zj7HLdR0vkw_7N48wkE_fXxcztpBQvwwjfpJFL-_wPnq1LhQJm1jAIsSCxfufTpcHg2wz11Ch2xXl66A1ZK5UpsT1sYHghTMQnTHHxI-TsbsDh56o2Q8HtD78eCueihhmCcj2oc4ZpTSfpknwzEfsGF_zGifJnfigcZ0ENPeOL7v9QeDaMSS_qikw7ykCS_KBPVjODEhI39yRNoc70LKP_ToaDTs30mWg7ThTyZK_RUjzCJK0SC7Mw_huMmbo0X9WAZOvsI44SQ8TK4evt6SSyakDRVlufxthd-ugHeNkQ_fKdnhz4l3J1ywJ1Tl1uDnB_qfAAAA__8puipC">