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

    <tr>
        <th>Summary</th>
        <td>
            `check-compiler-rt` fails with various errors when using the runtimes build on windows
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            cmake,
            compiler-rt,
            runtime libraries,
            compiler-rt:asan,
            compiler-rt:fuzzer
      </td>
    </tr>

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

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

<pre>
    At llvm HEAD from this morning (69090143f5022da526c0a3b81ced530fce832769) in a Visual Studio 2019 x86 development shell:

(The same commands fail in an x64 shell, but in slightly different ways.)

Configuring:

```
C:\src\llvm-project\build.runtimes>cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang -DLLVM_ENABLE_RUNTIMES=compiler-rt ../llvm
-- The C compiler identification is MSVC 19.29.30145.0
-- The CXX compiler identification is MSVC 19.29.30145.0
[...]
-- Build files have been written to: C:/src/llvm-project/build.runtimes
```

Let's test it:

```
C:\src\llvm-project\build.runtimes>ninja check-compiler-rt
[...]
[3728/3739] Performing configure step for 'builtins'
-- The C compiler identification is Clang 16.0.0 with MSVC-like command-line
[...]
-- Build files have been written to: C:/src/llvm-project/build.runtimes/runtimes/builtins-bins
[3729/3739] Performing build step for 'builtins'
[128/128] Linking C static library C:\src\llvm-project\bui...lang\16.0.0\lib\i386-pc-windows-msvc\clang_rt.builtins.lib
[3730/3739] No install step for 'builtins'
[3737/3739] Performing configure step for 'runtimes'
-- The C compiler identification is Clang 16.0.0 with MSVC-like command-line
[...]
[...]
-- Build files have been written to: C:/src/llvm-project/build.runtimes/runtimes/runtimes-bins
[3738/3739] cmd.exe /C "cd /D C:\src\llvm-project\build.ru...untimes-bins/ --target check-compiler-rt --config Release"
[32/279] Building CXX object compiler-rt\lib\interception\...keFiles\RTInterception.i386.dir\interception_linux.cpp.obj
clang-cl: warning: argument unused during compilation: '/experimental:external /external:W0 /external:anglebrackets' [-Wunused-command-line-argument]
```

(That looks like it's baked three command-line arguments into one which seems like a bug.)

```
[...]
[101/279] Generating FuzzedDataProviderTestObjects.FuzzedDataProviderUnittest.cpp.i386.o
FAILED: compiler-rt/lib/fuzzer/tests/FuzzedDataProviderTestObjects.FuzzedDataProviderUnittest.cpp.i386.o
cmd.exe /C "cd /D C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\fuzzer\tests && C:\src\llvm-project\build.runtimes\.\bin\clang.exe -DWIN32 -D_WINDOWS -Wno-unknown-warning-option -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -Wno-covered-switch-default -Wno-suggest-override -DGTEST_NO_LLVM_SUPPORT=1 -DGTEST_HAS_RTTI=0 -IC:/src/llvm-project/llvm/utils/unittest/googletest/include -IC:/src/llvm-project/llvm/utils/unittest/googletest -Wno-deprecated-declarations -IC:/src/llvm-project/compiler-rt/lib/fuzzer -fno-rtti -O2 -c -o FuzzedDataProviderTestObjects.FuzzedDataProviderUnittest.cpp.i386.o C:/src/llvm-project/compiler-rt/lib/fuzzer/tests/FuzzedDataProviderUnittest.cpp"
C:/src/llvm-project/compiler-rt/lib/fuzzer/tests/FuzzedDataProviderUnittest.cpp:9:10: fatal error: 'fuzzer/FuzzedDataProvider.h' file not found
#include <fuzzer/FuzzedDataProvider.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[...]
ninja: build stopped: subcommand failed.
FAILED: runtimes/CMakeFiles/check-compiler-rt
cmd.exe /C "cd /D C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build C:/src/llvm-project/build.runtimes/runtimes/runtimes-bins/ --target check-compiler-rt --config Release"
ninja: build stopped: subcommand failed.
```

That's not good.
Maybe it's a missing build dependency. Let's try building "all" before running the tests.

```
C:\src\llvm-project\build.runtimes>ninja
[890/1018] Performing build step for 'builtins'
ninja: no work to do.
[898/1018] No install step for 'builtins'
[908/1018] Performing configure step for 'runtimes'
[...]
-- Build files have been written to: C:/src/llvm-project/build.runtimes/runtimes/runtimes-bins
[992/1018] Performing build step for 'runtimes'
[...]
[210/210] Linking CXX shared library C:\src\llvm-project\b...\16.0.0\lib\i386-pc-windows-msvc\clang_rt.asan_dynamic.dll
[1012/1018] No install step for 'runtimes'
[1018/1018] Linking CXX executable bin\opt.exe
```

Running the tests again:


```
C:\src\llvm-project\build.runtimes>ninja check-compiler-rt
[0/5] Performing build step for 'builtins'
ninja: no work to do.
[1/5] No install step for 'builtins'
[3/5] Performing configure step for 'runtimes'
[...]
-- Build files have been written to: C:/src/llvm-project/build.runtimes/runtimes/runtimes-bins
[4/5] cmd.exe /C "cd /D C:\src\llvm-project\build.runtimes...untimes-bins/ --target check-compiler-rt --config Release"
[66/103] Generating SANITIZER_TEST_OBJECTS.sanitizer_bitvector_test.cpp.i386.o
C:/src/llvm-project/compiler-rt/lib/sanitizer_common/tests/sanitizer_bitvector_test.cpp:74:29: warning: format specifies type 'size_t' (aka 'unsigned int') but the argument has type 'value_type' (aka 'unsigned long') [-Wformat]
    fprintf(stderr, "%zu ", *it);
                     ~~~    ^~~
                     %lu
1 warning generated.
[85/103] Generating Fuzzer-i386-Test.exe
   Creating library C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\fuzzer\tests\.\Fuzzer-i386-Test.lib and object C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\fuzzer\tests\.\Fuzzer-i386-Test.exp
[88/103] Generating Sanitizer-i386-Test.exe
   Creating library C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\sanitizer_common\tests\.\Sanitizer-i386-Test.lib and object C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\sanitizer_common\tests\.\Sanitizer-i386-Test.exp
[90/103] Generating I386WindowsConfig/Asan-i386-inline-Noinst-Test.exe
   Creating library C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\asan\tests\I386WindowsConfig\.\Asan-i386-inline-Noinst-Test.lib and object C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\asan\tests\I386WindowsConfig\.\Asan-i386-inline-Noinst-Test.exp
[94/103] Generating I386WindowsConfig/Asan-i386-calls-Noinst-Test.exe
   Creating library C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\asan\tests\I386WindowsConfig\.\Asan-i386-calls-Noinst-Test.lib and object C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\asan\tests\I386WindowsConfig\.\Asan-i386-calls-Noinst-Test.exp
[96/103] Generating I386WindowsConfig/Asan-i386-calls-Test.exe
FAILED: compiler-rt/lib/asan/tests/I386WindowsConfig/Asan-i386-calls-Test.exe
cmd.exe /C "cd /D C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins\compiler-rt\lib\asan\tests && C:\src\llvm-project\build.runtimes\.\bin\clang++.exe ASAN_INST_TEST_OBJECTS.gtest-all.cc.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_globals_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_interface_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_internal_interface_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_oob_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_mem_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_str_test.cpp.i386-calls.o ASAN_INST_TEST_OBJECTS.asan_test_main.cpp.i386-calls.o -o C:/src/llvm-project/build.runtimes/runtimes/runtimes-bins/compiler-rt/lib/asan/tests/I386WindowsConfig/./Asan-i386-calls-Test.exe -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -g -fsanitize=address"
LINK : fatal error LNK1181: cannot open input file 'C:\src\llvm-project\build.runtimes\lib\clang\16.0.0\lib\windows\clang_rt.asan-i386.lib'
clang++: error: linker command failed with exit code 1181 (use -v to see invocation)
[99/103] Generating ASAN_DYNAMIC_TEST_OBJECTS.gtest-all.cc.i386-calls.o
ninja: build stopped: subcommand failed.
FAILED: runtimes/CMakeFiles/check-compiler-rt
cmd.exe /C "cd /D C:\src\llvm-project\build.runtimes\runtimes\runtimes-bins && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" --build C:/src/llvm-project/build.runtimes/runtimes/runtimes-bins/ --target check-compiler-rt --config Release"
ninja: build stopped: subcommand failed.
```

It doesn't seem to be anywhere:

```
C:\src\llvm-project\build.runtimes>dir clang_rt.asan-i386.lib /s /b
File Not Found
```

The build files doesn't seem to know about it either:

```
C:\src\llvm-project\build.runtimes>ninja lib\clang\16.0.0\lib\windows\clang_rt.asan-i386.lib
ninja: error: unknown target 'lib\clang\16.0.0\lib\windows\clang_rt.asan-i386.lib'

C:\src\llvm-project\build.runtimes>ninja clang_rt.asan-i386.lib
ninja: error: unknown target 'clang_rt.asan-i386.lib'
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztGtly4rj2a8iLyi5jsz7wQFh6uJ2QVEJ3Zu4LJdsyaGIsSpKz9NfPObINBtxJSOhlqiZFjG1JR2ffhC_C515fkzh-WJE_Rv0hiaRYEb3kiqyETHiyIDW30-o6Xafe8KKm47ohbbqtwKGe36kHLGx6ThSwjue2W92a2yU8IZR85SqlMbnVacgFcZ16lzx1WiRkDywW6xVLNFFLFsc1r19zhjWnuLqd2ZIRRVeMBGK1okmoSER5bKAm5KnVyNe5A-KnGl-rmC-WOn4mIY8iJhH0I31WNuBSBj0QScQXqQSK9jdtOfknm4jDzYGSAVyRL9Zair9ZoOHRT3kc2jJNNF8xVfNGwYreM2J9mvLkb0qs4eCy_3k0P_8yuRjOZ39dj2re8IbFjCqYNLy4-Ho5H0375xej-fXN1f9Gg9ktTAhiClzeHb75Mp1NLkdmWKzWPGbSkprYQNUYccpQtSyC7BqQYg7hIdDPIx5QzUVCQIqXt18HpN613a7tgQibtrO79s8_37O61jy3AZnmcAPsHFlDIoCjyJI-MOIzlpBHybWGby2Aq8Sw1h0jazMyNqx1x3usrZJMdr1gML2tiGYK5K9PKMzECDFYsuDeKnG9kmJ49NpuBxD32l4XXpNrJiMhV2gxQa5roMmarQm8BiNq436aJwpu3y6-gVGOest2bIc8cr00IrFifr-xEHhI2E8Sizsu3RYEWT5SVWJLt5otBtbLLIH1dcNVvMLqC57c49IBLAOeBCTmvqTymbwiWOACMg4eMtbhJO7DlXudlrUOrEeehOJRWSv1gBCMDc6ltguMbJy-JclzSiRNBfgdwCeOXyUGlrSP0ZEtd3-WjvxclSlu91XGK1tSsApt9sSAH-MBXNwgxNvhazI3mwItO1u4Y2JZmsoF04eWDUOZGEjupGGzLVIuLHbbBiPDEqOH4C6Fj3uSsofYaFeimQzYGiUDj4DMPRsjI-HhZjYpjdqoiHbI5d6qOQgqfbKD9dqGfTJkjHJaAQZLCG0mKOMtEJWaSJomqWIhCU1wy_EyyoGzUJPcMXtaM8lxNkUw7Al2TCBAm6HsHl7fOXsvYN-YgcEF90yjThLgi3WX7WeVVcsqkNnqVZXvNvGdQrohxL0iRkF55s19iKMh5B2S7ershkoFNqcFEfDqccmDJVGMrXIYFFzLYj_g7yNwoPZ1p76V8CeWMAlMAwaO02_fWDikml5L8QDmJmcQaq6M1JV9OPolQctQ2gjNiFVke4z7k4vREIVQ1hWwF9AVdxwhIAk3uBYV9WT7fsR-ckttDipuM4sCZ1mh-Tk1zYGhBvZrwee4HW18yZPCGxsSrOHdZOq58D2Hm-HV3S2x7hJhpcl9Ih4TKzcHSxjjgTHUIBpaikZMP-8_W5KZDDFgByM-0zQDHYgHmAMD4EmDpRWyiKaxzsZUulgAfRZOkSADwOvTbHQ7m0-v5iZ9u_1yfX11M4O0rb4Z-6N_O7-ZzSbw0iHW5CXXaVI7d5xqHqNGpLmE4XYhBJhi_sCTIE5x9w8Dy8gK2VoyiCdAdciA-dJ4D_UK_O8rNbEigCq15sS6AuEFxBKnMKsXw847bay8zcb9_-h9vH4X_usO-oYIJsUE9EnI3F9voB1CsZfohTE2k0RoyBrSJCxcq1eoRc0bvAzCG2VrSPFXa45q7R_wMbvUM-LIInOxLLQrPbLJvpEDRZoo1msW4guV-nlIMLXgBsDWv5YyjMElLWIuyKo6l_-hDrLwfQA3hwecX0i6IgYrLKehFMZg1Rxc8kAKJSK9WzDDCJbM2dKIKQXWCPG4ORgAG0TShrvJcLR5HkHATnCOKoPEYeRF6Tv3rlizIv2AIWRAGbtPk9C9M9s6XvSV2QWmFiaZQNMAH1dMvqTP_ibRoGTFgaGbcgR8H0sgpQ6ebbIpLaHA8IuUD7Ck2HBwIQ-GLJ2hspm-iIa83Ni7_ULacXwBujGOTheLDshSOsfXURuOJoI8CnkPaTsJhV2C3SnBPqKg6TqdaqTeWM_8DuVGt-u-lbGv4Q-Pbh3FhNdyvQp1glpSyCPeVrEamMfWqlTRZB4-J3TFAzsEHS1ltu7r4q2izSzZriyTAw4jSDX1IfRkfgRyLuNFvm-QN_uWQuiC8mS_ZfPDGzcooObpjahegD2mIVCByr_IdBoF-h8Poaer1Fsto7LeXh13259OZpP_j27mJg2_OjcNVxuMhmsO2dHc5_oBMBNyXllGHZsEbgEHJiyX0sGX9oRd2g24uN29-h7VA2pltWYBjziIWD-vkeFtBZDm2pTjbofeU3yXQgKwSMDdQJVsSv6u6Y-j5W36BEu6hfFA4xSAwNN34MQCsMgAmaI_w2ajfZg1RmsJu0WwWGlILCU25VEubvNbmt3gcx8DL9B2vpdzlv82GeNuMvrCArcZp0V6mfOsKsHsNCtVw2TF0jIOFquQrR8D2AOoC82sN_YaT1g351XwAXowl2AOlLeefj1C7Gm95XGn2vwKnf8d2Hxgm7v0VeH6E3n-DuzKAsjzxH0BTGDyXZY6ZIdfMKsPW2VQeGL6dlOBkesXSwcTmRLNh4hnfHgR-Z8orlOguyO_xjvkF0C2of6l4jvE_XeWXhWnS8KrTj7eIrxdqb3cLTZYbxOK48H_iqZwmdWnaAnX3HP4GDL6kN3NJ1PI63aSuwXuZQH5dhDYW17Y4nsLTA21iIVPY7WbBr5ppTm6iWjA3rs2ofGHgBy_Qgj_HatWbPWOVUrLd9I0X0GheLjMerkHfEyn6p1WZr9gaR8-f1gQKyqSgZo3pGEomVKbWudiMv1M9nrG5GL6uV7v1I3joAm2vsQaqj-erCH_N51iSOOPsrrMeIPqA_S8GbHfhzDsMIfmRblasljEbdPghlB4zyTZbetlx9bsieO5asgIUoRVSYo_nHnAwlsxBjQ9iOzYe3vWh-2cSg9sNGz417R_ORm80Un814j-rxF9ikb0RJNQMAVa2tbmnBoV2IdKPHl-XIIDOOFvlkIOplRpiKhJKORx_jsWFDqZgnsYlw6NqtvoLKc_6ywdkoJnr4T6An-ApwkD02Xy5L_D-pgX2hXnxvnk58YkVw2g6jTO7v1Nyw-i_xpeu2I4Y716C_7Au3acs7DnhV2vS8801zHrwaxDN9VyjL6rzEE_UMlFqjKE4N0SAk2qihZvQVyuPSIhOf_OUhn3llqvVWbceAQN4FLfhq22J9V71s6VSo1pNzvNVuds2aPtdrfdDcIoZA1A3HV92qVBvVlveTSgtHEWU5_FqgcxAX0pepdNF8rdCffFyxzjvEriTFXP9_pZYlA9Vpy1uhCAznjPdVy37riNuud2G47ttsOg0QiB7QGNWq1mreEwyG1iG6m1hVycyZ4h3E8XCgZjjidKm0GqTD-OGaIAPk31UsjetxVEydWZYVHP8OcfvgIFOA">