Skip to content

Commit e34ca44

Browse files
Update llvm-project and toolset: MSVC Compiler 19.50.35719 (#5888)
1 parent 5459853 commit e34ca44

21 files changed

+203
-73
lines changed

CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ cmake_minimum_required(VERSION 4.1.1)
66
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
77
project(msvc_standard_libraries LANGUAGES CXX)
88

9-
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.50.35717")
10-
message(FATAL_ERROR "The STL must be built with MSVC Compiler 19.50.35717 or later.")
9+
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "19.50.35719")
10+
message(FATAL_ERROR "The STL must be built with MSVC Compiler 19.50.35719 or later.")
1111
endif()
1212

1313
include(CheckCXXSourceCompiles)
@@ -46,7 +46,7 @@ if(TARGET run-validate)
4646
add_dependencies(validate run-validate)
4747
endif()
4848

49-
option(BUILD_TESTING "Enable testing" ON)
49+
option(CONFIGURE_TESTING "Enable testing" ON)
5050
set(VCLIBS_SUFFIX "_oss" CACHE STRING "suffix for built DLL names to avoid conflicts with distributed DLLs")
5151

5252
option(STL_USE_ANALYZE "Pass the /analyze flag to MSVC" OFF)
@@ -115,7 +115,7 @@ set(VCLIBS_DEBUG_OPTIONS "$<$<COMPILE_LANGUAGE:CXX>:/Od>")
115115
# TRANSITION, GH-2108: Investigate building the STL with only /O2, not /Os.
116116
set(VCLIBS_RELEASE_OPTIONS "$<$<COMPILE_LANGUAGE:CXX>:/O2;/Os>")
117117

118-
if(BUILD_TESTING)
118+
if(CONFIGURE_TESTING)
119119
add_subdirectory(tests)
120120
endif()
121121

azure-devops/build-and-test.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,15 @@ parameters:
2323
- name: numShards
2424
type: number
2525
default: 8
26-
- name: skipTesting
26+
- name: configureTesting
2727
type: boolean
28-
default: false
28+
default: true
29+
- name: buildStl
30+
type: boolean
31+
default: true
32+
- name: runTesting
33+
type: boolean
34+
default: true
2935
- name: testsBuildOnly
3036
type: boolean
3137
default: false
@@ -38,7 +44,7 @@ jobs:
3844
- template: checkout-self.yml
3945
- template: checkout-submodule.yml
4046
parameters:
41-
enabled: ${{ not(parameters.skipTesting) }}
47+
enabled: ${{ parameters.configureTesting }}
4248
path: 'llvm-project'
4349
url: 'https://github.com/llvm/llvm-project.git'
4450
- template: checkout-submodule.yml
@@ -58,6 +64,8 @@ jobs:
5864
targetPlatform: ${{ parameters.targetPlatform }}
5965
analyzeBuild: ${{ parameters.analyzeBuild }}
6066
asanBuild: ${{ parameters.asanBuild }}
67+
configureTesting: ${{ parameters.configureTesting }}
68+
buildStl: ${{ parameters.buildStl }}
6169
testsBuildOnly: ${{ parameters.testsBuildOnly }}
6270
- template: build-benchmarks.yml
6371
parameters:
@@ -79,4 +87,4 @@ jobs:
7987
targetArch: ${{ parameters.targetArch }}
8088
targetPlatform: ${{ parameters.targetPlatform }}
8189
testTargets: ${{ parameters.testTargets }}
82-
skipTesting: ${{ parameters.skipTesting }}
90+
runTesting: ${{ parameters.runTesting }}

azure-devops/build-benchmarks.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ steps:
2525
-DSTL_BINARY_DIR="$(buildOutputLocation)" ^
2626
-DVCLIBS_TARGET_ARCHITECTURE=${{ parameters.targetPlatform }} ^
2727
-S $(Build.SourcesDirectory)/benchmarks -B "$(benchmarkBuildOutputLocation)\${{ parameters.compiler }}"
28-
displayName: 'Configure the benchmarks for ${{ parameters.compiler }}'
28+
displayName: 'Configure Benchmarks for ${{ parameters.compiler }}'
2929
timeoutInMinutes: 2
3030
env: { TMP: $(tmpDir), TEMP: $(tmpDir) }
3131
# TRANSITION, we currently only build the benchmarks with Clang for x64
@@ -36,7 +36,7 @@ steps:
3636
- script: |
3737
call "$(vsDevCmdBat)" -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo
3838
cmake --build "$(benchmarkBuildOutputLocation)\${{ parameters.compiler }}"
39-
displayName: 'Build the benchmarks for ${{ parameters.compiler }}'
39+
displayName: 'Build Benchmarks for ${{ parameters.compiler }}'
4040
timeoutInMinutes: 2
4141
env: { TMP: $(tmpDir), TEMP: $(tmpDir) }
4242
# TRANSITION, we currently only build the benchmarks with Clang for x64

azure-devops/checkout-self.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ steps:
1414
retryCountOnTaskFailure: 4
1515
- script: |
1616
git clean --quiet -x -d -f -f
17-
displayName: 'Clean after checkout'
17+
displayName: 'Clean After Checkout'

azure-devops/cmake-configure-build.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ parameters:
1212
type: boolean
1313
- name: asanBuild
1414
type: boolean
15+
- name: configureTesting
16+
type: boolean
17+
- name: buildStl
18+
type: boolean
1519
- name: testsBuildOnly
1620
type: boolean
1721
- name: litFlags
@@ -34,15 +38,17 @@ steps:
3438
-DLIT_FLAGS=${{ join(';', parameters.litFlags) }} ^
3539
-DSTL_USE_ANALYZE=${{ parameters.analyzeBuild }} ^
3640
-DSTL_ASAN_BUILD=${{ parameters.asanBuild }} ^
41+
-DCONFIGURE_TESTING=${{ parameters.configureTesting }} ^
3742
-DTESTS_BUILD_ONLY=${{ parameters.testsBuildOnly }} ^
3843
-DVCLIBS_TARGET_ARCHITECTURE=${{ parameters.targetPlatform }} ^
3944
-S $(Build.SourcesDirectory) -B "$(buildOutputLocation)"
40-
displayName: 'Configure the STL'
45+
displayName: 'Configure STL'
4146
timeoutInMinutes: 2
4247
env: { TMP: $(tmpDir), TEMP: $(tmpDir) }
4348
- script: |
4449
call "$(vsDevCmdBat)" -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo
4550
cmake --build "$(buildOutputLocation)"
46-
displayName: 'Build the STL'
51+
displayName: 'Build STL'
4752
timeoutInMinutes: 5
53+
condition: and(succeeded(), ${{ parameters.buildStl }})
4854
env: { TMP: $(tmpDir), TEMP: $(tmpDir) }

azure-devops/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55

66
variables:
77
- name: poolName
8-
value: 'Stl-2025-11-17T2154-x64-Pool'
8+
value: 'Stl-2025-11-24T1624-x64-Pool'
99
readonly: true
1010
- name: arm64PoolName
11-
value: 'Stl-2025-11-17T2237-arm64-Pool'
11+
value: 'Stl-2025-11-24T1624-arm64-Pool'
1212
readonly: true
1313
- name: poolDemands
1414
value: 'EnableSpotVM -equals false'

azure-devops/create-1es-hosted-pool.ps1

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@ if ($Arch -ieq 'x64') {
2929
$ImageOffer = 'WindowsServer'
3030
$ImageSku = '2025-datacenter-azure-edition'
3131
} else {
32-
$AvailableLocations = @('eastus2', 'northeurope') # Locations where CPP_STL_GitHub has obtained sufficient quota.
33-
$AvailableLocationIdx = 1 # Increment for each new pool, to cycle through the available locations.
32+
# CPP_STL_GitHub has quota for 672 cores (21 VMs) in westcentralus, not currently used.
33+
$AvailableLocations = @('eastus2', 'northeurope') # Locations where CPP_STL_GitHub has quota for 1024 cores (32 VMs).
34+
$AvailableLocationIdx = 2 # Increment for each new pool, to cycle through the available locations.
3435
$Location = $AvailableLocations[$AvailableLocationIdx % $AvailableLocations.Length]
3536
$VMSize = 'Standard_D32ps_v6'
3637
$PoolSize = 32

azure-devops/format-validation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
call "$(vsDevCmdBat)" -host_arch=x64 -arch=x64 -no_logo
1717
cmake -G Ninja -S $(Build.SourcesDirectory)/tools -B "$(validationBuildOutputLocation)"
1818
cmake --build "$(validationBuildOutputLocation)"
19-
displayName: 'Build format and validation'
19+
displayName: 'Build Validation Tools'
2020
timeoutInMinutes: 5
2121
env: { TMP: $(tmpDir), TEMP: $(tmpDir) }
2222
- script: |

azure-devops/run-tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,27 @@ parameters:
1010
type: string
1111
- name: testTargets
1212
type: string
13-
- name: skipTesting
13+
- name: runTesting
1414
type: boolean
1515
steps:
1616
- script: |
1717
call "$(vsDevCmdBat)" -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo
1818
ninja --verbose -k 0 ${{ parameters.testTargets }}
19-
displayName: 'Build and Run Tests'
19+
displayName: 'Run Tests'
2020
timeoutInMinutes: 30
21-
condition: and(succeeded(), not(${{ parameters.skipTesting }}))
21+
condition: and(succeeded(), ${{ parameters.runTesting }})
2222
workingDirectory: $(buildOutputLocation)
2323
env: { TMP: $(tmpDir), TEMP: $(tmpDir) }
2424
- task: PublishTestResults@2
2525
displayName: 'Publish Tests'
2626
timeoutInMinutes: 5
27-
condition: and(succeededOrFailed(), not(${{ parameters.skipTesting }}))
27+
condition: and(succeededOrFailed(), ${{ parameters.runTesting }})
2828
inputs:
2929
searchFolder: $(buildOutputLocation)
3030
testResultsFormat: JUnit
3131
testResultsFiles: '**/test-results.xml'
3232
testRunTitle: 'test-${{ parameters.targetPlatform }}-$(System.JobPositionInPhase)'
3333
- publish: $(buildOutputLocation)/test-results.xml
3434
artifact: '${{ parameters.targetPlatform }}-$(System.JobPositionInPhase)-xml-$(System.JobId)'
35-
condition: and(failed(), not(${{ parameters.skipTesting }}))
35+
condition: and(failed(), ${{ parameters.runTesting }})
3636
displayName: 'Publish XML Artifact'

azure-pipelines.yml

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ stages:
3434
analyzeBuild: true
3535
buildBenchmarks: true
3636
numShards: 1
37-
skipTesting: true
37+
configureTesting: false
38+
runTesting: false
3839

3940
- stage: Build_x86
4041
dependsOn: []
@@ -51,7 +52,8 @@ stages:
5152
analyzeBuild: true
5253
buildBenchmarks: true
5354
numShards: 1
54-
skipTesting: true
55+
configureTesting: false
56+
runTesting: false
5557

5658
- stage: Build_ARM64_Cross
5759
dependsOn: []
@@ -68,7 +70,8 @@ stages:
6870
analyzeBuild: true
6971
buildBenchmarks: true
7072
numShards: 1
71-
skipTesting: true
73+
configureTesting: false
74+
runTesting: false
7275

7376
- stage: Build_ARM64EC_Cross
7477
dependsOn: []
@@ -85,7 +88,8 @@ stages:
8588
analyzeBuild: true
8689
buildBenchmarks: true
8790
numShards: 1
88-
skipTesting: true
91+
configureTesting: false
92+
runTesting: false
8993

9094
# This ARM64-native build will detect problems with the ARM64 pool as early as possible.
9195
# The stage dependencies are structured to optimize the critical path.
@@ -104,7 +108,24 @@ stages:
104108
analyzeBuild: true
105109
buildBenchmarks: true
106110
numShards: 1
107-
skipTesting: true
111+
configureTesting: false
112+
runTesting: false
113+
114+
- stage: Configure_Tests
115+
dependsOn: []
116+
displayName: 'Configure Tests'
117+
pool:
118+
name: ${{ variables.poolName }}
119+
demands: ${{ variables.poolDemands }}
120+
jobs:
121+
- template: azure-devops/build-and-test.yml
122+
parameters:
123+
hostArch: x64
124+
targetArch: x64
125+
targetPlatform: x64
126+
numShards: 1
127+
buildStl: false
128+
runTesting: false
108129

109130
- stage: Test_x64
110131
dependsOn:
@@ -113,6 +134,7 @@ stages:
113134
- Build_x86
114135
- Build_ARM64_Cross
115136
- Build_ARM64EC_Cross
137+
- Configure_Tests
116138
displayName: 'Test x64'
117139
pool:
118140
name: ${{ variables.poolName }}

0 commit comments

Comments
 (0)