<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/125152>125152</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] llvm 20 branch build broken on Windows
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
songdongsheng
</td>
</tr>
</table>
<pre>
It can be confirmed that there is no problem in version https://github.com/llvm/llvm-project/commit/6087c3049656bbaef51fffb48e2404e86f7e0d3f . However, I don't have time to run 'git blame' to confirm that the problem occurred in that version.
First build clang and lld using MSVC:
```bash
-DLLVM_ENABLE_PROJECTS="clang;lld" ^
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx" ^
```
Use the built clang and lld to build more projects:
```bash
-DLLVM_ENABLE_PROJECTS="llvm;clang;clang-tools-extra;openmp;lld;lldb;polly;mlir;flang" ^
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx" ^
```
Then there is an error when building flang runtime:
```bash
E:\var\vcs\llvm-project-build_20.0.0-20250129\build64>ninja -j 1
[0/20] Performing build step for 'builtins'ninja: no work to do.
[1/20] No install step for 'builtins'
[4/20] Building CXX object tools\flang\runtime\CMakeFiles\FortranRuntime.static.dir\exceptions.cpp.obj
FAILED: tools/flang/runtime/CMakeFiles/FortranRuntime.static.dir/exceptions.cpp.obj
E:\var\vcs\llvm-project-build_20.0.0-20250129\build64_stage0\bin\clang-cl.exe /nologo -TP -DFLANG_INCLUDE_TESTS=1 -DFLANG_LITTLE_ENDIAN=1 -DGTEST_HAS_RTTI=0 -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0 -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IE:\var\vcs\llvm-project-build_20.0.0-20250129\build64\tools\flang\runtime -IE:\var\vcs\llvm-project\flang\runtime -IE:\var\vcs\llvm-project\flang\include -IE:\var\vcs\llvm-project-build_20.0.0-20250129\build64\tools\flang\include -IE:\var\vcs\llvm-project-build_20.0.0-20250129\build64\include -IE:\var\vcs\llvm-project\llvm\include -imsvcE:\var\vcs\llvm-project\llvm\..\mlir\include -imsvcE:\var\vcs\llvm-project-build_20.0.0-20250129\build64\tools\mlir\include -imsvcE:\var\vcs\llvm-project-build_20.0.0-20250129\build64\tools\clang\include -imsvcE:\var\vcs\llvm-project\llvm\..\clang\include /DWIN32 /D_WINDOWS /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4 -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 /Gw -Wno-deprecated-copy -Wno-string-conversion -Wno-ctad-maybe-unsupported -fno-lto /O2 /Ob2 /DNDEBUG -std:c++17 -MT -U_GLIBCXX_ASSERTIONS -U_LIBCPP_ENABLE_ASSERTIONS /EHs-c- /GR- /EHs-c- /GR- /EHs-c- /GR- /EHs-c- /GR- /EHs-c- /GR- /showIncludes /Fotools\flang\runtime\CMakeFiles\FortranRuntime.static.dir\exceptions.cpp.obj /Fdtools\flang\runtime\CMakeFiles\FortranRuntime.static.dir\FortranRuntime.static.pdb -c -- E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(48,31): error: use of undeclared identifier '__FE_DENORM'
48 | static constexpr uint32_t s{__FE_DENORM}; // nonstandard, not a #define
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(64,29): error: constexpr variable 'map' must be initialized by a constant expression
64 | static constexpr uint32_t map[]{xm};
| ^ ~~~~
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(64,35): note: initializer of 's' is unknown
64 | static constexpr uint32_t map[]{xm};
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(62,12): note: expanded from macro 'xm'
62 | #define xm um(0), um(x)
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(61,15): note: expanded from macro 'um'
61 | #define um(p) om(p), om(p | u)
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(60,15): note: expanded from macro 'om'
60 | #define om(p) zm(p), zm(p | o)
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(59,15): note: expanded from macro 'zm'
59 | #define zm(p) sm(p), sm(p | z)
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(58,29): note: expanded from macro 'sm'
58 | #define sm(p) vm(p), vm(p | s)
| ^
E:\var\vcs\llvm-project\flang\runtime\exceptions.cpp(48,29): note: declared here
48 | static constexpr uint32_t s{__FE_DENORM}; // nonstandard, not a #define
| ^
2 errors generated.
ninja: build stopped: subcommand failed.
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8WF9z2roS_zTKy44YI2P-POQBjEm5k0AGyKFzXzyyLYNaWfKVZJL0oZ_9jmz-HZqcNm1yOo2xd7Wr3293ba1EjeEbydg1CkYoGF_Rym6VvjZKbjIlN2bL5OYqUdnz9dRCSiUkDFIlc64LloHdUgt2yzQDbkAqKLVKBCuAS9gxbbiSsLW2NMgfIjJBZLLhdlslrVQViEyE2B1-cKnVF5ZaRCapKgrubrpev5f6XmfQDbpJQlketPM8Tzp9Rjpeh_W7eY95mZ9DCz6pR7ZjGpEQppApiUjPwpbuGFheMLAKdCUBkd6GW0gELRgiPSfeczkyOTJQaVppzTJHpVbu-bSQN0TecMK1sZBUXGSQCio3QGUGQmRQGS43cLf8K3Sk68Go6zX_E2q2yBsCAODx7e1fd3E0G45uo_h-Mf9PFK6WyB8jQmqHyB8JkSFCAAWRM_q7xeJhtpreRQcLVZRcMI21dXY8SZ-eTqbH-Rs4D4bVVB16e4Heqj2pQuk6GC4p5nUm_0SjTq8_OrCpf7FVShjMnqymyB-pksmi3FOtrwnyR6US4hn5o0JwjfxRXjs4BeKH6P1uLFZbJk_lSyUwrZWGRyeuo-AyWc_uysdV0quBiJwmCHdUu2tqUBCelzWu3cXEa3ktDxOPBF6bDFAQ1vJuB_mR5PILBfwF2s59MPIQmRAPBWO4ZzpXunBgmtwYy0rIlXYFXSeRS4NIr_aA_KF7ER-V_uqSmal9waJg1D56nCng0lgqxGu-GovO0WJ0CEf4-TOoxHGCOpUoCJv8BOEhRkEY3tGvbMIFc-qJ0lZTuWi0LWOp5Wkr4y5S7CllpeVKmlZali2VfHHv1nB6G40dkWYGMtlXwOQwA5mczUAmr89AJi_O8IfZio2lG-Y5AZcoCJvKTkWLPTFAZCKVUBsFeHUPeDy5Hc5u4uksvH0YR_EqWtavR_uouZ2uVrdRHM3G0-Fsr7lxw-JPw2W8WK2myB97gMcPs2k4H0eAx3G4WMWz-Wy5GofxbB6Po_tFFA5XL-nWw8VsOrtZHlTLKHxYRC9anVTnRg5F9DmM7lfT-Wy5xxIvw9vXXP1dde7qjEFc4wsdzuFsFd8Nw8V8eVJM5ou74Y_i2-nd9CSd_ulLF4SvlPDPff-hDZepqLJfsPkNDu_p-5d97R_PTXhhdukvm7VaKAjrD_4bXbwhQh_sPr1MwG9E4NIHIpPxejrzSX0Xr6ez8Xy9dA__TZE_5FJwyY6PcZyWojLuz8nm3F1HmpVaubuEb1Tyxd2VTBfcGL5jGPC6XvaQP67kpqI6YxmmO8oFTbjg9hlL9uhs1h1wY93KDXgtFa5kZViGS6ppwSzTgNePmluGjdVcbgzgdUqNxf-rqAC8rieUG5xzJjLMJbecCv6NaTeQF6XgKbc4p0LYrVbVZuvs1Y5plmHzyG26xRnLaSVsM71Uzbcd2-eS1SKJd1zbigqcWeXgZEwwy_ALGlNtNsxY7Pxr7pK1blDjVMlD61pjFoy6hQ9zmTHpVpZakVqa4YI-JwxX0lRlqbRlmQvTzWMDL2OlZim1LMOpKp8b4UtzSIVf8YZzqbCwde7mdQXMk6YQZuNo9HAD2NgM-cMUkREio3YP8N3KdUcP8c3tdBR-_hwPl8toUX-5ndQJ7-8PbdOZzjmNPhmc4prCAr-XwGzV47Sp5bokJ-pDuobadfYOrl_WlVkCOAWM4c3Lwg9wf95-_IoT0u_0EQn9NiID1yntX-EhVIaByqGSGUsFrTcwrm55zlnd48XxJIrH0Wy-uGvaPADo9AH1QgBo6LpNkbHsqdRQcWl9ElswqDc6N-2NkT-CZk8H0o2nMqM6czswqSxQQMTPWM4l27fsUM_RNOHvEoBuB5GQDC4DcAK_o5rTRLjPY6-gpdvxFZXbtTE4fX0ySJ6BNlZUWnCWzLhXs8Hd7fw0Ns53vXtGvdFT0YTmkrS7_f79-_d3Je8He_JSWbc1OaOlXREg0nO9vNvcVPKrVI_vy-nduBBEwja54MKeSiozlkGuVQEFTes1rPdUHMu2Sxokh0KDpwKqApG-51yRsHl4cg8fhbztkF9m4RXk1Rny9gXyGmmJyADU4c4RaB7qsdVH0vDeQEOd0fAuaBzBw7dzGt9ONNQH0ggGb6Dx7UQjGFzQOIIHc07DnGh8-0ga_fPv2k9omDMa_QsaR_CwO6exO9EwH0ij8yKN46q0ZZr966vPP_1rqJNmITGwYZJp1721kDc8nqwczl9UWTLXeYGpklQVBZUZ5JSLZvjFedtVdu1nA39Ar9h1u-f3ycDrtNtX22vWywd5mveTdpZ3mZ90WTft-Ckl7YDkXS-_4tfNhsNve4R0g3YrT_udxB_4fso6uTfIUMdjBeWi5fLTUnpzxY2p2HWbBO2AXAmaMGHqs11CDsdoKBhf6es6oUm1MajjCW6sObmw3Ir6QHif5TE4FRAPEk1lut1HIdHqK5OgJKy5zNSjuaq0uH7zcW8N2CAy2WPeXZP_BwAA___CxQRz">