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

    <tr>
        <th>Summary</th>
        <td>
            Usage of cross compiled libc++ for windows
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          4e4o
      </td>
    </tr>
</table>

<pre>
    I am trying to build simple 'hello world' example with libc++ for windows on linux host. At first i successfully cross-compile latest clang,lld from master branch. `Used sdk: msvc 2017 14.16.27023 sdk and win kit 10.0.17763.0.` Then i successfully compile libcxx with new clang, compilation flags: 
```
-DLLVM_ENABLE_RUNTIMES=libcxx \
-DLIBCXX_ENABLE_SHARED=OFF \
-DLIBCXX_ENABLE_STATIC=ON \
-DLIBCXX_INCLUDE_BENCHMARKS=OFF \
-DLIBCXX_ENABLE_RTTI=OFF \
-G Ninja
```
Cross-compilation of trivial 'hello world' with clang + msvc sdk + win kit works fine. I am using this compiler flags to append system headers:
```
    -imsvc "\"${MSVC_INCLUDE}\""
    -imsvc "\"${WINSDK_INCLUDE}/ucrt\""
    -imsvc "\"${WINSDK_INCLUDE}/shared\""
    -imsvc "\"${WINSDK_INCLUDE}/um\""
    -imsvc "\"${WINSDK_INCLUDE}/winrt\""
```

And now i want to replace usage of msvc c++ library by libc++. MSVC_INCLUDE directory contains c++ headers and also vcruntime.h header. If i replace it with libc++ header directory then compilation fails with error:

```
In file included from ../src/hello-world.cpp:1:
In file included from /home/computer/workspace/libc++_win_install/include/c++/v1/cstdio:101:
In file included from /home/computer/workspace/libc++_win_install/include/c++/v1/stdio.h:107:
In file included from /mnt/disk2/workspace/coding/example/clang-win-toolchain/../win_libs/win/program files/windows kits/10/include/10.0.17763.0/ucrt/stdio.h:12:
/mnt/disk2/workspace/coding/example/clang-win-toolchain/../win_libs/win/program files/windows kits/10/include/10.0.17763.0/ucrt/corecrt.h(10,10): fatal error: 'vcruntime.h' file not found
#include <vcruntime.h>
         ^~~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.
```

It seems that libc++ depends on ucrt, it is ok, but, ucrt depends on vcruntime.h header which located inside msvc c++ directory headers. Maybe i am doing something wrong, how to correctly replace msvc c++ with libc++ ?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVktz4jgQ_jXmosJlyxCTAwfCY4eahK1KyMzcUrIssCayRUlyCP9-u2UbSMJutiqHXcplLKkfn7pbXyvT-WG8JKwkzhxktSVOk6yWKidWljslSEDTQiilyV4blcOIiFfmV_bSFUTJjAf0Bh6y0QbmqlzvLdEVrFT1Kym0dSGZOLKRxjoiia05F9ZuaqUOhBttbZ_rcifBoGJOgAxXrNoGdKoAxMbokpTMOmFIZljFi5AEV9GjFQAwfw6SCSntCyc0ilMSD8L4KqRpRBNcJKzKERB5lo7EURiFcZpeJfAPFsi6ENUHOB0Q2NTra7PBSuyPiFoB5iTsb6PY1iKAIJoF0QRsto8f9me3tz_unuaryc3t_On-cbVe3s0fgmTW2g6G06Pg8mb661cn-vBtcj-fgeCfi8U_SK0n6-UUpVYXhJar6e3jbP50M19Nv91N7r8_fGbvfr1efpD5g6xk9Ztd3N_0LHNNPPQGSki-SKYu1IwPpQ8jwVLxOcMU4aBLEQg_W6iTSoTEV2RtfUEW0naZMU3UsUjZbicgv_YAtVGSQrBcGEzHRbQEfn3pvQaU4g7hTQdBenP38GPaxStIZ90S_Uzv53L1MPt-rkkXNTfuSwZswYzIv4ah_JI65OLDHt7FsnlPIPaV3sMJ2rPKYUKM2CnGBWSNbQVWg_fZkQOUvWHmQLLDGWWE5Dz8JJdGcKcNHsTKMVnZo3qbX3-kmbKavHBTV06WIizaRSiaDcDpYGBBvSOoRu7MjUMOeHOmmVS20RPGaHOqp0uRWIIC0oWsuKpz0bJVGGImDThd-EPQ94cg5LsdWIuPFi8ro5IuBfwhrBpoD5OCB2MHm4Lv03aeIFdPECPHlIKF1g5qNuvw9RLj0LpcavQd_QfevfOw8O7Tz92XlYN3Lu0zfeea61wiCS_a9oNTyCd9ANJ3WiteQMXArI8_ogOwtvmE987orQFOQbftrG9UQDw4jKM3mzjvFt3BfrMXeqqM_zlorqHajQPYdIQKU3xdY9_aMEjesc6RtM8OFZK2T1GloXfrusq77SatRxIk03OFZH4iHP8LhkAq_-LxWnEDhGxFJQzcA_Kwma98BwJ47aXEaeD9HCdsnUGVlsgIeGyPGhfpaumIFaKEzlEwd84JucA24i8sTcCmyBzQcfQzfme1n8Klc9GP7EP2heTANpojeChsKyFEbyjwxDstmwH9sUMGpwCbXa6x2Vk4ftDw4GtvdHPnKIBlgV4hj6gOt5SO4d4Yf891QbLoiXF8dTUcjii9or18nOTXyTXrOemUGD92LO2vYF1_zf_mPterjRoXzu18h6ULeLbgsM5CUEReUC_dXx-K9jcAxdK0tvZ1Oxwl8ahXjJM4pckm4oN0Ew2yYcpiWBmK62zIkxEdDXuKZULZcTAEABRvXt6E71uznhzTiFJgMRongwGloeARmBnRmMMw5SwYRKKEUggRR6jNtmfGHlJWw01tEClpnT0tMmvlthLCuwP7rHaFNuOBGOie9zv2uP8Cyjhq7A">