Skip to content

Commit 4cb52e9

Browse files
committed
Temporarily specify the Windows SDK version
This is necessary to work around an issue with the latest version (26100) of the Windows SDK where changes in headers result in circular module dependencies. See #909 for details.
1 parent 409d1d9 commit 4cb52e9

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

.github/workflows/swift-toolchain.yml

+34-3
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,10 @@ env:
276276
WORKAROUND_WINDOWS_PINNED_BOOTSTRAP_TOOLCHAIN_REPO: thebrowsercompany/swift-build
277277
WORKAROUND_WINDOWS_PINNED_BOOTSTRAP_TOOLCHAIN_RELEASE: swift-6.0.0-20241216.0
278278

279+
# Workaround for issues with building with SDK version 26100.
280+
# See https://github.com/compnerd/swift-build/issues/909 for details.
281+
WORKAROUND_WINDOWS_SDK_VERSION: 10.0.22621.0
282+
279283
defaults:
280284
run:
281285
shell: pwsh
@@ -308,6 +312,7 @@ jobs:
308312
host_arch: ${{ inputs.build_arch }}
309313
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
310314
arch: ${{ matrix.arch }}
315+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
311316

312317
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
313318
if: inputs.build_os == 'Darwin'
@@ -378,6 +383,7 @@ jobs:
378383
host_arch: ${{ inputs.build_arch }}
379384
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
380385
arch: amd64
386+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
381387

382388
# TODO(issues/205): Preload Chocolatey package manager on Azure images so we can remove this step.
383389
- uses: andrurogerz/ensure-chocolatey@v1
@@ -470,6 +476,7 @@ jobs:
470476
host_arch: ${{ inputs.build_arch }}
471477
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
472478
arch: ${{ matrix.arch }}
479+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
473480

474481
# TODO(issues/205): Preload Chocolatey package manager on Azure images so we can remove this step.
475482
- uses: andrurogerz/ensure-chocolatey@v1
@@ -546,6 +553,7 @@ jobs:
546553
host_arch: ${{ inputs.build_arch }}
547554
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
548555
arch: ${{ matrix.arch }}
556+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
549557

550558
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
551559
if: inputs.build_os == 'Darwin'
@@ -629,6 +637,7 @@ jobs:
629637
host_arch: ${{ inputs.build_arch }}
630638
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
631639
arch: ${{ matrix.arch }}
640+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
632641

633642
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
634643
if: inputs.build_os == 'Darwin'
@@ -793,8 +802,17 @@ jobs:
793802
- name: Build early swift-driver
794803
run: |
795804
$env:SWIFTCI_USE_LOCAL_DEPS=1
796-
$LinkerFlags = if ("${{ matrix.os }}" -eq "Windows") {
797-
@("-Xlinker", "${env:SDKROOT}/usr/lib/swift/windows/${{ matrix.cpu }}/swiftCore.lib")
805+
$ExtraFlags = if ("${{ matrix.os }}" -eq "Windows") {
806+
$Win10SdkRoot = Get-ItemPropertyValue `
807+
-Path "Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Roots" `
808+
-Name "KitsRoot10"
809+
@("-Xlinker", "${env:SDKROOT}/usr/lib/swift/windows/${{ matrix.cpu }}/swiftCore.lib",
810+
"-Xswiftc", "-windows-sdk-version", "-Xswiftc", "${env:WORKAROUND_WINDOWS_SDK_VERSION}",
811+
"-Xswiftc", "-windows-sdk-root", "-Xswiftc", "${Win10SdkRoot}",
812+
"-Xbuild-tools-swiftc", "-windows-sdk-version", "-Xbuild-tools-swiftc", "${env:WORKAROUND_WINDOWS_SDK_VERSION}",
813+
"-Xbuild-tools-swiftc", "-windows-sdk-root", "-Xbuild-tools-swiftc", "${Win10SdkRoot}",
814+
"-Xswiftc", "-Xcc", "-Xswiftc", "-D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH",
815+
"-Xcc", "-D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH")
798816
} else {
799817
@()
800818
}
@@ -804,7 +822,7 @@ jobs:
804822
--package-path ${{ github.workspace }}/SourceCache/swift-driver `
805823
--build-path ${{ github.workspace }}/BinaryCache/swift-driver `
806824
--triple ${{ matrix.compiler_target }} `
807-
@LinkerFlags
825+
@ExtraFlags
808826
809827
- name: Copy binaries
810828
run: |
@@ -939,6 +957,7 @@ jobs:
939957
host_arch: ${{ inputs.build_arch }}
940958
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
941959
arch: ${{ matrix.arch }}
960+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
942961

943962
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
944963
if: inputs.build_os == 'Darwin'
@@ -1235,6 +1254,7 @@ jobs:
12351254
host_arch: ${{ inputs.build_arch }}
12361255
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
12371256
arch: ${{ matrix.arch }}
1257+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
12381258

12391259
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
12401260
if: inputs.build_os == 'Darwin'
@@ -1329,6 +1349,7 @@ jobs:
13291349
host_arch: ${{ inputs.build_arch }}
13301350
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
13311351
arch: ${{ matrix.arch }}
1352+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
13321353

13331354
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
13341355
if: inputs.build_os == 'Darwin'
@@ -1494,6 +1515,7 @@ jobs:
14941515
host_arch: ${{ inputs.build_arch }}
14951516
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
14961517
arch: ${{ matrix.arch }}
1518+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
14971519

14981520
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
14991521
if: inputs.build_os == 'Darwin'
@@ -1635,6 +1657,7 @@ jobs:
16351657
host_arch: ${{ inputs.build_arch }}
16361658
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
16371659
arch: ${{ matrix.arch }}
1660+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
16381661

16391662
- uses: seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
16401663
if: inputs.build_os == 'Darwin'
@@ -1835,6 +1858,7 @@ jobs:
18351858
host_arch: ${{ inputs.build_arch }}
18361859
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
18371860
arch: ${{ matrix.arch }}
1861+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
18381862

18391863
- run: |
18401864
$RTLPath = cygpath -w ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/Windows.platform/Developer/SDKs/Windows.sdk/usr/bin
@@ -2126,6 +2150,7 @@ jobs:
21262150
host_arch: ${{ inputs.build_arch }}
21272151
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
21282152
arch: ${{ matrix.arch }}
2153+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
21292154

21302155
# FIXME(compnerd): workaround CMake 3.29-3.30 issue
21312156
- uses: lukka/get-cmake@aa1df13cce8c30d2cb58efa871271c5a764623f8 # main
@@ -2647,6 +2672,7 @@ jobs:
26472672
host_arch: ${{ inputs.build_arch }}
26482673
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
26492674
arch: ${{ matrix.arch }}
2675+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
26502676

26512677
- run: |
26522678
Move-Item ${env:SDKROOT}/usr/lib/swift/dispatch ${env:SDKROOT}/usr/include/
@@ -3253,6 +3279,7 @@ jobs:
32533279
host_arch: amd64
32543280
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
32553281
arch: ${{ matrix.arch }}
3282+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
32563283

32573284
- run: |
32583285
Move-Item ${env:SDKROOT}/usr/lib/swift/dispatch ${env:SDKROOT}/usr/include/
@@ -3358,6 +3385,7 @@ jobs:
33583385
host_arch: ${{ inputs.build_arch }}
33593386
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
33603387
arch: ${{ matrix.arch }}
3388+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
33613389

33623390
- run: |
33633391
$CertificatePath = Join-Path -Path ${env:RUNNER_TEMP} -ChildPath CodeSign.b64
@@ -3540,6 +3568,7 @@ jobs:
35403568
host_arch: ${{ inputs.build_arch }}
35413569
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
35423570
arch: ${{ matrix.arch }}
3571+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
35433572

35443573
- run: |
35453574
$CertificatePath = Join-Path -Path ${env:RUNNER_TEMP} -ChildPath CodeSign.b64
@@ -3658,6 +3687,7 @@ jobs:
36583687
host_arch: ${{ inputs.build_arch }}
36593688
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
36603689
arch: ${{ matrix.arch }}
3690+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
36613691

36623692
- run: |
36633693
$CertificatePath = Join-Path -Path ${env:RUNNER_TEMP} -ChildPath CodeSign.b64
@@ -3795,6 +3825,7 @@ jobs:
37953825
host_arch: ${{ inputs.build_arch }}
37963826
components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64'
37973827
arch: ${{ matrix.arch }}
3828+
winsdk: ${{ env.WORKAROUND_WINDOWS_SDK_VERSION }}
37983829

37993830
- run: |
38003831
$CertificatePath = Join-Path -Path ${env:RUNNER_TEMP} -ChildPath CodeSign.b64

0 commit comments

Comments
 (0)