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