@@ -1226,6 +1226,93 @@ jobs:
1226
1226
symbolsFolder : ${{ github.workspace }}/BinaryCache/1
1227
1227
searchPattern : ' **/*.exe'
1228
1228
1229
+ sanitizers :
1230
+ # TODO: Build this on macOS or make an equivalent Mac-only job
1231
+ if : inputs.build_os == 'Windows'
1232
+ runs-on : ${{ inputs.default_build_runner }}
1233
+ needs : [compilers]
1234
+
1235
+ strategy :
1236
+ fail-fast : false
1237
+ matrix : ${{ fromJSON(inputs.target_matrix) }}
1238
+
1239
+ name : ${{ matrix.os }} ${{ matrix.arch }} Sanitizers
1240
+
1241
+ steps :
1242
+ - name : Download Compilers
1243
+ uses : thebrowsercompany/gha-download-tar-artifact@59992d91335d4ecba543c8535f7d07238e42125d # main
1244
+ with :
1245
+ name : compilers-Windows-${{ inputs.build_arch }}
1246
+ path : ${{ github.workspace }}/BinaryCache/Library
1247
+
1248
+ - uses : actions/checkout@v4
1249
+ with :
1250
+ repository : swiftlang/llvm-project
1251
+ ref : ${{ inputs.llvm_project_revision }}
1252
+ path : ${{ github.workspace }}/SourceCache/llvm-project
1253
+ show-progress : false
1254
+
1255
+ - uses : nttld/setup-ndk@v1
1256
+ if : matrix.os == 'Android' && inputs.build_android
1257
+ id : setup-ndk
1258
+ with :
1259
+ ndk-version : ${{ inputs.ANDROID_NDK_VERSION }}
1260
+
1261
+ - name : Compute workspace hash
1262
+ id : workspace_hash
1263
+ shell : pwsh
1264
+ run : |
1265
+ $stringAsStream = [System.IO.MemoryStream]::new()
1266
+ $writer = [System.IO.StreamWriter]::new($stringAsStream)
1267
+ $writer.write("${{ github.workspace }}")
1268
+ $writer.Flush()
1269
+ $stringAsStream.Position = 0
1270
+ $hash = (Get-FileHash -Algorithm SHA256 -InputStream $stringAsStream).Hash
1271
+ echo "hash=$hash" >> $env:GITHUB_OUTPUT
1272
+
1273
+ - name : Setup sccache
1274
+ uses : hendrikmuhs/ccache-action@2e0e89e8d74340a03f75d58d02aae4c5ee1b15c6
1275
+ with :
1276
+ max-size : 500M
1277
+ key : ${{ steps.workspace_hash.outputs.hash }}-${{ matrix.os }}-${{ matrix.arch }}-sanitizers
1278
+ variant : sccache
1279
+
1280
+ - uses : seanmiddleditch/gha-setup-ninja@96bed6edff20d1dd61ecff9b75cc519d516e6401 # master
1281
+
1282
+ - name : Configure Sanitizers
1283
+ run : |
1284
+ cmake -B "${{ github.workspace }}/BinaryCache/${{ matrix.os }}-${{ matrix.arch }}-sanitzers" `
1285
+ -D CMAKE_BUILD_TYPE=Release `
1286
+ -D CMAKE_ASM_COMPILER="${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang${{ matrix.exe_suffix }}" `
1287
+ -D CMAKE_ASM_COMPILER_LAUNCHER=sccache `
1288
+ -D CMAKE_C_COMPILER="${{ matrix.cc }}" `
1289
+ -D CMAKE_C_COMPILER_LAUNCHER=sccache `
1290
+ -D CMAKE_C_FLAGS="${{ matrix.cflags }}" `
1291
+ -D CMAKE_CXX_COMPILER="${{ matrix.cxx }}" `
1292
+ -D CMAKE_CXX_COMPILER_LAUNCHER=sccache `
1293
+ -D CMAKE_CXX_FLAGS="${{ matrix.cxxflags }}" `
1294
+ -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr `
1295
+ -D CMAKE_SYSTEM_NAME=${{ matrix.os }} `
1296
+ -G Ninja `
1297
+ -S ${{ github.workspace }}/SourceCache/llvm-project/compiler-rt `
1298
+ -D COMPILER_RT_DEFAULT_TARGET_ONLY=YES `
1299
+ -D COMPILER_RT_BUILD_BUILTINS=NO `
1300
+ -D COMPILER_RT_BUILD_CRT=NO `
1301
+ -D COMPILER_RT_BUILD_LIBFUZZER=NO `
1302
+ -D COMPILER_RT_BUILD_ORC=NO `
1303
+ -D COMPILER_RT_BUILD_PROFILE=YES `
1304
+ -D COMPILER_RT_BUILD_SANITIZERS=YES `
1305
+ -D COMPILER_RT_BUILD_XRAY=NO
1306
+ - name : Build Sanitizers
1307
+ run : cmake --build ${{ github.workspace }}/BinaryCache/${{ matrix.os }}-${{ matrix.arch }}-sanitzers
1308
+ - name : Install Sanitizers
1309
+ run : cmake --build ${{ github.workspace }}/BinaryCache/${{ matrix.os }}-${{ matrix.arch }}-sanitzers --target install-compiler-rt-stripped
1310
+
1311
+ - uses : thebrowsercompany/gha-upload-tar-artifact@e18c33b1cd416d0d96a91dc6dce06219f98e4e27 # main
1312
+ with :
1313
+ name : sanitizers-${{ matrix.os }}-${{ matrix.arch }}
1314
+ path : ${{ github.workspace }}/BuildRoot/Library
1315
+
1229
1316
zlib :
1230
1317
runs-on : ${{ inputs.default_build_runner }}
1231
1318
@@ -1630,7 +1717,7 @@ jobs:
1630
1717
os : Windows
1631
1718
llvm_flags :
1632
1719
linker_flags : ' -D CMAKE_EXE_LINKER_FLAGS="${{ inputs.WINDOWS_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ inputs.WINDOWS_CMAKE_SHARED_LINKER_FLAGS }}"'
1633
- extra_flags :
1720
+ extra_flags :
1634
1721
1635
1722
- arch : arm64
1636
1723
cpu : ' aarch64'
@@ -1696,6 +1783,7 @@ jobs:
1696
1783
with :
1697
1784
name : compilers-Windows-${{ inputs.build_arch }}
1698
1785
path : ${{ github.workspace }}/BinaryCache/Library
1786
+
1699
1787
- uses : actions/checkout@v4
1700
1788
with :
1701
1789
repository : swiftlang/llvm-project
0 commit comments