Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation error when trying to compile a simple plugin with Windows SDK 10.0.26100.0 #79745

Closed
yuyoyuppe opened this issue Mar 3, 2025 · 0 comments · Fixed by #79751
Closed
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. triage needed This issue needs more specific labels

Comments

@yuyoyuppe
Copy link

Description

Compiling a simple plugin from my MRE repo produces the following error:

$ swift package plugin tmp_plugin_verb
error: plugin compilation failed: <PluginCompilationResult(
    succeeded: false,
    commandLine: %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\bin\swiftc.exe -L %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\pm\PluginAPI -lPackagePlugin -sdk %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\SDKs\Windows.sdk\ -libc MD -I %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows -I %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -L %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -I %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows -L %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows\x86_64 -use-ld=lld -g -swift-version 6 -package-description-version 6.0.0 -I %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\pm\PluginAPI -parse-as-library -Xfrontend -serialize-diagnostics-path -Xfrontend P:\projects\tmp\.build\plugins\tmp_plugin\cache\tmp_plugin.dia P:\projects\tmp\plugin\plugin.swift -o P:\projects\tmp\.build\plugins\tmp_plugin\cache\tmp_plugin.exe,
    executable: P:\projects\tmp\.build\plugins\tmp_plugin\cache\tmp_plugin.exe
    diagnostics: P:\projects\tmp\.build\plugins\tmp_plugin\cache\tmp_plugin.dia
    compilerOutput: "error: emit-module command failed with exit code 1 (use -v to see invocation)
%localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\intrin.h:20:10: note: while building module '_Builtin_intrinsics' imported from %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\intrin.h:20:
 18 | /* First include the standard intrinsics. */
 19 | #if defined(__i386__) || defined(__x86_64__)
 20 | #include <x86intrin.h>
    |          `- note: while building module '_Builtin_intrinsics' imported from %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\intrin.h:20:
 21 | #endif
 22 |

<module-includes>:1:10: note: in file included from <module-includes>:1:
 1 | #include ""immintrin.h""
   |          `- note: in file included from <module-includes>:1:
 2 | #include ""x86intrin.h""
 3 | #include ""mm_malloc.h""

%localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include/immintrin.h:26:10: note: in file included from %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include/immintrin.h:26:
 24 | #if !(defined(_MSC_VER) || defined(__SCE__)) || __has_feature(modules) ||      \
 25 |     defined(__SSE__)
 26 | #include <xmmintrin.h>
    |          `- note: in file included from %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include/immintrin.h:26:
 27 | #endif
 28 |

%localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\xmmintrin.h:31:10: note: in file included from %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\xmmintrin.h:31:
  29 |  * a standard library to provide allocation routines. */
  30 | #if __STDC_HOSTED__
  31 | #include <mm_malloc.h>
     |          `- note: in file included from %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\xmmintrin.h:31:
  32 | #endif
  33 |

%localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\mm_malloc.h:13:10: error: cyclic dependency in module 'ucrt': ucrt -> _Builtin_intrinsics -> ucrt
11 | #define __MM_MALLOC_H
12 |
13 | #include <stdlib.h>
   |          `- error: cyclic dependency in module 'ucrt': ucrt -> _Builtin_intrinsics -> ucrt
14 |
15 | #ifdef _WIN32

<module-includes>:27:10: note: in file included from <module-includes>:27:
25 | #include ""mbstring.h""
26 | #include ""process.h""
27 | #include ""wchar.h""
   |          `- note: in file included from <module-includes>:27:
28 |

C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt/wchar.h:29:10: note: in file included from C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt/wchar.h:29:
 27 | #include <vcruntime_string.h>

 28 | #if !defined(_M_CEE)

 29 | #include <intrin.h>

    |          `- note: in file included from C:\Program Files (x86)\Windows Kits\10\include\10.0.26100.0\ucrt/wchar.h:29:
 30 | #if defined(__clang__) && (defined(_M_ARM64) || defined(_M_ARM64EC))

 31 | #include <arm_neon.h>


<unknown>:0: error: could not build C module 'ucrt'
%localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\clang\include\intrin.h:20:10: error: could not build module '_Builtin_intrinsics'
 18 | /* First include the standard intrinsics. */
 19 | #if defined(__i386__) || defined(__x86_64__)
 20 | #include <x86intrin.h>
    |          `- error: could not build module '_Builtin_intrinsics'
 21 | #endif
 22 |
"
)>

What's weird is that picking that swiftc invocation line and appending the Windows sdk version produces another error:

$ %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\bin\swiftc.exe  -L %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\pm\PluginAPI -lPackagePlugin -sdk %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\SDKs\Windows.sdk\ -libc MD -I %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows -I %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -L %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\XCTest-development\usr\lib\swift\windows\x86_64 -I %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows -L %localappdata%\Programs\Swift\Platforms\6.0.3\Windows.platform\Developer\Library\Testing-development\usr\lib\swift\windows\x86_64 -use-ld=lld -g -swift-version 6 -package-description-version 6.0.0 -I %localappdata%\Programs\Swift\Toolchains\6.0.3+Asserts\usr\lib\swift\pm\PluginAPI -parse-as-library -Xfrontend -serialize-diagnostics-path -Xfrontend P:\projects\tmp\.build\plugins\tmp_plugin\cache\tmp_plugin.dia P:\projects\tmp\plugin\plugin.swift -o P:\projects\tmp\.build\plugins\tmp_plugin\cache\tmp_plugin.exe -windows-sdk-version 10.0.20348.0
error: emit-module command failed with exit code 1 (use -v to see invocation)
<unknown>:0: error: missing required module 'ucrt

The only way to reliably make Swift to not pick the latest SDK is to uninstall it system-wide:

"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --remove Microsoft.VisualStudio.Component.Windows11SDK.26100 --installPath "C:\Program Files\Microsoft Visual Studio\2022\Community" --quiet --norestart

Reproduction

  • Make sure Windows SDK 10.0.26100.0 is installed
  • git clone https://github.com/yuyoyuppe/swift_plugin_error_repro.git
  • cd swift_plugin_error_repro
  • swift package plugin tmp_plugin_verb

Expected behavior

Compilation without failure

Environment

swiftc -version

Swift version 6.0.3 (swift-6.0.3-RELEASE)
Target: x86_64-unknown-windows-msv

Additional information

No response

@yuyoyuppe yuyoyuppe added bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. triage needed This issue needs more specific labels labels Mar 3, 2025
nil4 added a commit to royalapplications/royalvnc that referenced this issue Mar 15, 2025
Workarounds for swiftlang/swift#79745 were unsuccessful.
Hold off until a Swift release fixes the incompatibility with latest WinSDK.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. triage needed This issue needs more specific labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant