@@ -126,23 +126,24 @@ auto_platforms_prod = [
126
126
127
127
"linux-64-x-android-t" ,
128
128
129
- "win-32-opt" ,
130
- #"win-32-nopt-c",
131
- "win-32-nopt-t" ,
132
- "win-64-opt" ,
133
- #"win-64-nopt-c",
134
- "win-64-nopt-t" ,
129
+ "win-gnu-32-opt" ,
130
+ #"win-gnu-32-nopt-c",
131
+ "win-gnu-32-nopt-t" ,
132
+ "win-gnu-64-opt" ,
133
+ #"win-gnu-64-nopt-c",
134
+ "win-gnu-64-nopt-t" ,
135
+ "win-msvc-64-opt" ,
135
136
136
137
# Tier 2 platforms, also modify nogate_builders
137
138
"bsd-64-opt" ,
138
139
"bitrig-64-opt" ,
139
140
"linux-musl-64-opt" ,
140
141
]
141
142
142
- try_platforms_prod = ["linux" , "win-32" , "win-64" , "bsd" , "mac" ]
143
- snap_platforms_prod = ["linux" , "win-32" , "win-64" , "bsd" , "mac" , "bitrig-64" ]
144
- dist_platforms_prod = ["linux" , "win-32" , "win-64" , "mac" ]
145
- cargo_platforms_prod = ["linux-32" , "linux-64" , "mac-32" , "mac-64" , "win-32" , "win-64" ]
143
+ try_platforms_prod = ["linux" , "win-gnu- 32" , "win-gnu -64" , "bsd" , "mac" ]
144
+ snap_platforms_prod = ["linux" , "win-gnu- 32" , "win-gnu -64" , "bsd" , "mac" , "bitrig-64" ]
145
+ dist_platforms_prod = ["linux" , "win-gnu- 32" , "win-gnu -64" , "mac" ]
146
+ cargo_platforms_prod = ["linux-32" , "linux-64" , "mac-32" , "mac-64" , "win-gnu- 32" , "win-gnu -64" ]
146
147
147
148
# Development configuration
148
149
auto_platforms_dev = [
@@ -153,20 +154,21 @@ auto_platforms_dev = [
153
154
154
155
"linux-64-x-android-t" ,
155
156
156
- "win-32-opt" ,
157
- "win-32-nopt-t" ,
158
- "win-64-opt" ,
159
- "win-64-nopt-t" ,
157
+ "win-gnu-32-opt" ,
158
+ "win-gnu-32-nopt-t" ,
159
+ "win-gnu-64-opt" ,
160
+ "win-gnu-64-nopt-t" ,
161
+ "win-msvc-64-opt" ,
160
162
161
163
"bsd-64-opt" ,
162
164
"bitrig-64-opt" ,
163
165
"linux-musl-64-opt" ,
164
166
]
165
167
166
- try_platforms_dev = ["linux" , "win-32" , "win-64" , "bsd" ]
167
- snap_platforms_dev = ["linux" , "win-32" , "win-64" , "bsd" , "bitrig-64" ]
168
- dist_platforms_dev = ["linux" , "win-32" , "win-64" ]
169
- cargo_platforms_dev = ["linux-32" , "linux-64" , "win-32" , "win-64" ]
168
+ try_platforms_dev = ["linux" , "win-gnu- 32" , "win-gnu -64" , "bsd" ]
169
+ snap_platforms_dev = ["linux" , "win-gnu- 32" , "win-gnu -64" , "bsd" , "bitrig-64" ]
170
+ dist_platforms_dev = ["linux" , "win-gnu- 32" , "win-gnu -64" ]
171
+ cargo_platforms_dev = ["linux-32" , "linux-64" , "win-gnu- 32" , "win-gnu -64" ]
170
172
171
173
if env == "prod" :
172
174
auto_platforms = auto_platforms_prod
@@ -184,7 +186,12 @@ else:
184
186
185
187
186
188
# auto-platforms that won't cause other's to fail (these don't gate bors)
187
- nogate_builders = ["auto-bsd-64-opt" , "auto-bitrig-64-opt" , "auto-linux-musl-64-opt" ]
189
+ nogate_builders = [
190
+ "auto-bsd-64-opt" ,
191
+ "auto-bitrig-64-opt" ,
192
+ "auto-linux-musl-64-opt" ,
193
+ "auto-win-msvc-64-opt" ,
194
+ ]
188
195
189
196
190
197
####### BUILDSLAVES
@@ -200,10 +207,14 @@ def all_platform_hosts(platform):
200
207
return ["i686-unknown-linux-gnu" , "x86_64-unknown-linux-gnu" ]
201
208
elif "bsd" in platform :
202
209
return ["x86_64-unknown-freebsd" ]
203
- elif "win-32" in platform :
210
+ elif "win-gnu- 32" in platform :
204
211
return ["i686-pc-windows-gnu" ]
205
- elif "win-64" in platform :
212
+ elif "win-gnu- 64" in platform :
206
213
return ["x86_64-pc-windows-gnu" ]
214
+ elif "win-msvc-32" in platform :
215
+ return ["i686-pc-windows-msvc" ]
216
+ elif "win-msvc-64" in platform :
217
+ return ["x86_64-pc-windows-msvc" ]
207
218
elif "bitrig-64" in platform :
208
219
return ["x86_64-unknown-bitrig" ]
209
220
else :
@@ -212,6 +223,10 @@ def all_platform_hosts(platform):
212
223
def auto_platform_host (p ):
213
224
if "-all" in p :
214
225
return "all"
226
+ # We are temporarily bootstrapping the MSVC build off a GNU build
227
+ elif "msvc" in p :
228
+ gnu = p .replace ("msvc" , "gnu" )
229
+ return [auto_platform_triple (p ), auto_platform_triple (gnu )]
215
230
else :
216
231
return [auto_platform_triple (p )]
217
232
@@ -238,17 +253,21 @@ def auto_platform_triple(p):
238
253
return "x86_64-unknown-linux-gnu"
239
254
240
255
if "win" in p :
256
+ env = "gnu" if "gnu" in p else "msvc"
241
257
if "-32" in p :
242
- return "i686-pc-windows-gnu"
258
+ return "i686-pc-windows-" + env
243
259
else :
244
- return "x86_64-pc-windows-gnu"
260
+ return "x86_64-pc-windows-" + env
245
261
246
262
if "bsd" in p :
247
263
return "x86_64-unknown-freebsd"
248
264
249
265
if "bitrig-64" in p :
250
266
return "x86_64-unknown-bitrig"
251
267
268
+ def auto_platform_build (p ):
269
+ return auto_platform_triple (p .replace ("msvc" , "gnu" ))
270
+
252
271
253
272
####### BUILDSLAVES
254
273
@@ -635,15 +654,20 @@ class CommandEnv(object):
635
654
# This is required to trigger certain workarounds done
636
655
# slave-side by buildbot. In particular omitting the PWD
637
656
# variable with an unmangled pathname.
638
- if "win-32" in props ["buildername" ]:
657
+ if "win-gnu- 32" in props ["buildername" ]:
639
658
env ["MACHTYPE" ] = "i686-pc-msys"
640
659
env ["MSYSTEM" ] = "MINGW32"
641
660
env ["PATH" ] = win32toolchain + ";c:\\ msys64\\ usr\\ bin;${PATH};c:\\ msys64\\ mingw32\\ bin"
642
- if "win-64" in props ["buildername" ]:
661
+ if "win-gnu- 64" in props ["buildername" ]:
643
662
env ["MACHTYPE" ] = "x86_64-pc-msys"
644
663
env ["MSYSTEM" ] = "MINGW64"
645
664
env ["PATH" ] = win64toolchain + ";c:\\ msys64\\ usr\\ bin;${PATH};c:\\ msys64\\ mingw64\\ bin"
646
665
666
+ if "win-msvc-64" in props ["buildername" ]:
667
+ env ["MACHTYPE" ] = "x86_64-pc-win32"
668
+ env ["MSYSTEM" ] = "MINGW64"
669
+ env ["PATH" ] = win64toolchain + ";c:\\ msys64\\ mingw64\\ bin;c:\\ msys64\\ usr\\ bin;${PATH}"
670
+
647
671
if "valgrind" in props and props ["valgrind" ] == True :
648
672
env ["RUST_THREADS" ]= "1"
649
673
env ["RUST_RT_TEST_THREADS" ]= "1"
@@ -1436,6 +1460,8 @@ for p in auto_platforms:
1436
1460
if "musl" in p :
1437
1461
chk = "check-stage2-T-x86_64-unknown-linux-musl-H-x86_64-unknown-linux-gnu"
1438
1462
musl = True
1463
+ if "msvc" in p :
1464
+ chk = False
1439
1465
if not opt_compiler :
1440
1466
chk = False
1441
1467
@@ -1461,7 +1487,7 @@ for p in auto_platforms:
1461
1487
"optimize-tests" : opt_tests ,
1462
1488
"android" : android ,
1463
1489
"musl" : musl ,
1464
- "build" : auto_platform_triple (p ),
1490
+ "build" : auto_platform_build (p ),
1465
1491
"hosts" : auto_platform_host (p ),
1466
1492
"targets" : auto_platform_target (p ),
1467
1493
"check" : chk },
0 commit comments