@@ -77,81 +77,90 @@ def run_on(self) -> Os:
7777
7878FREEBSD_VERSIONS = [11 , 12 , 13 , 14 , 15 ]
7979
80+ # FIXME(ohos): CI fails with warnings
8081TARGETS = [
81- # linux
82- Target ("aarch64-linux-android" ),
82+ # Tier 1
83+ Target ("aarch64-apple-darwin" ),
84+ Target ("aarch64-pc-windows-msvc" ),
8385 Target ("aarch64-unknown-linux-gnu" ),
86+ Target ("i686-pc-windows-msvc" ),
87+ Target ("i686-unknown-linux-gnu" ),
88+ Target ("x86_64-pc-windows-gnu" ),
89+ Target ("x86_64-pc-windows-msvc" ),
90+ Target ("x86_64-unknown-linux-gnu" ),
91+ #
92+ # Tier 2 with host tools
93+ Target ("aarch64-pc-windows-gnullvm" , min_toolchain = Toolchain .STABLE ),
8494 Target ("aarch64-unknown-linux-musl" ),
85- Target ("arm- linux-androideabi " ),
95+ # Target("aarch64-unknown- linux-ohos "),
8696 Target ("arm-unknown-linux-gnueabi" ),
8797 Target ("arm-unknown-linux-gnueabihf" ),
98+ Target ("armv7-unknown-linux-gnueabihf" ),
99+ # Target("armv7-unknown-linux-ohos"),
100+ Target ("i686-pc-windows-gnu" ),
101+ Target ("loongarch64-unknown-linux-gnu" , min_toolchain = Toolchain .STABLE ),
102+ Target ("loongarch64-unknown-linux-musl" , min_toolchain = Toolchain .STABLE ),
103+ Target ("powerpc-unknown-linux-gnu" ),
104+ Target ("powerpc64-unknown-linux-gnu" ),
105+ Target ("powerpc64le-unknown-linux-gnu" ),
106+ Target ("powerpc64le-unknown-linux-musl" , min_toolchain = Toolchain .STABLE ),
107+ Target ("riscv64gc-unknown-linux-gnu" ),
108+ Target ("s390x-unknown-linux-gnu" ),
109+ Target ("sparcv9-sun-solaris" ),
110+ Target ("x86_64-apple-darwin" ),
111+ Target ("x86_64-pc-solaris" ),
112+ Target ("x86_64-pc-windows-gnullvm" , min_toolchain = Toolchain .STABLE ),
113+ Target ("x86_64-unknown-freebsd" ),
114+ Target ("x86_64-unknown-illumos" ),
115+ Target ("x86_64-unknown-linux-musl" ),
116+ # Target("x86_64-unknown-linux-ohos"),
117+ Target ("x86_64-unknown-netbsd" ),
118+ #
119+ # Tier 2 without host tools
120+ Target ("aarch64-apple-ios" ),
121+ Target ("aarch64-linux-android" ),
122+ Target ("aarch64-unknown-fuchsia" , min_toolchain = Toolchain .STABLE ),
123+ Target ("arm-linux-androideabi" ),
88124 Target ("arm-unknown-linux-musleabi" ),
89125 Target ("arm-unknown-linux-musleabihf" ),
126+ Target ("armv5te-unknown-linux-gnueabi" ),
127+ Target ("armv5te-unknown-linux-musleabi" ),
90128 Target ("armv7-linux-androideabi" ),
91- Target ("armv7-unknown-linux-gnueabihf" ),
92129 Target ("armv7-unknown-linux-musleabihf" ),
93130 Target ("i586-unknown-linux-gnu" ),
94131 Target ("i586-unknown-linux-musl" ),
95132 Target ("i686-linux-android" ),
96133 Target ("i686-unknown-freebsd" ),
97- Target ("i686-unknown-linux-gnu" ),
98134 Target ("i686-unknown-linux-musl" ),
99- Target ("powerpc-unknown-linux-gnu" ),
100- Target ("powerpc64-unknown-linux-gnu" ),
101- Target ("powerpc64le-unknown-linux-gnu" ),
102- Target ("s390x-unknown-linux-gnu" ),
103135 Target ("sparc64-unknown-linux-gnu" ),
104- Target ("sparcv9-sun-solaris" ),
105136 Target ("wasm32-unknown-emscripten" ),
106137 Target ("wasm32-unknown-unknown" ),
107- # Target was renamed
108138 Target ("wasm32-wasip1" , min_toolchain = Toolchain .STABLE ),
109139 Target ("wasm32-wasip2" , min_toolchain = Toolchain .STABLE ),
140+ Target ("x86_64-fortanix-unknown-sgx" ),
110141 Target ("x86_64-linux-android" ),
111- Target ("x86_64-unknown-freebsd" ),
112- Target ("x86_64-unknown-linux-gnu" ),
113- Target ("x86_64-unknown-linux-musl" ),
114- Target ("x86_64-unknown-netbsd" ),
115- # nightly linux
116- # FIXME(powerpc64le): powerpc64le-unknown-linux-musl is tier 2 since 1.85 and
117- # can be moved to rust_linux_targets once MSRV is increased
118- Target ("aarch64-unknown-fuchsia" , min_toolchain = Toolchain .NIGHTLY ),
119- Target ("armv5te-unknown-linux-gnueabi" , min_toolchain = Toolchain .NIGHTLY ),
120- Target ("armv5te-unknown-linux-musleabi" , min_toolchain = Toolchain .NIGHTLY ),
121- Target ("i686-pc-windows-gnu" , min_toolchain = Toolchain .NIGHTLY ),
122- Target ("powerpc64le-unknown-linux-musl" , min_toolchain = Toolchain .NIGHTLY ),
123- Target ("riscv64gc-unknown-linux-gnu" , min_toolchain = Toolchain .NIGHTLY ),
124- Target ("x86_64-fortanix-unknown-sgx" , min_toolchain = Toolchain .NIGHTLY ),
125- Target ("x86_64-pc-solaris" , min_toolchain = Toolchain .NIGHTLY ),
126- Target ("x86_64-pc-windows-gnu" , min_toolchain = Toolchain .NIGHTLY ),
127- Target ("x86_64-unknown-fuchsia" , min_toolchain = Toolchain .NIGHTLY ),
128- Target ("x86_64-unknown-illumos" , min_toolchain = Toolchain .NIGHTLY ),
129- Target ("x86_64-unknown-linux-gnux32" , min_toolchain = Toolchain .NIGHTLY ),
130- Target ("x86_64-unknown-redox" , min_toolchain = Toolchain .NIGHTLY ),
131- # apple
132- Target ("aarch64-apple-darwin" ),
133- Target ("aarch64-apple-ios" ),
134- # windows
135- Target ("x86_64-pc-windows-msvc" ),
136- Target ("x86_64-pc-windows-gnu" ),
137- Target ("i686-pc-windows-msvc" ),
138- # linux nodist
139- # Targets which are not available via rustup and must be built with -Zbuild-std
140- # FIXME(hexagon): hexagon-unknown-linux-musl should be tested but currently has
141- # duplicate symbol errors from `compiler_builtins`.
142- Target ("aarch64-pc-windows-msvc" , dist = False ),
142+ Target ("x86_64-unknown-fuchsia" , min_toolchain = Toolchain .STABLE ),
143+ Target ("x86_64-unknown-linux-gnux32" ),
144+ Target ("x86_64-unknown-redox" ),
145+ #
146+ # Libc has historically checked that a number of tier 3 targets build. Technically
147+ # there is no need to do this given the target tier policy, but the cost is small
148+ # and the saved churn from accidental breakage is significant, so we keep it around.
143149 Target ("aarch64-unknown-freebsd" , dist = False ),
144150 Target ("aarch64-unknown-hermit" , dist = False ),
151+ Target ("aarch64-unknown-illumos" , dist = False ),
145152 Target ("aarch64-unknown-netbsd" , dist = False ),
146153 Target ("aarch64-unknown-openbsd" , dist = False ),
147154 Target ("aarch64-wrs-vxworks" , dist = False ),
148- Target ("armebv7r-none-eabi" , dist = False ),
149155 Target ("armebv7r-none-eabihf" , dist = False ),
150156 Target ("armv7-wrs-vxworks-eabihf" , dist = False ),
151- Target ("armv7r-none-eabi" , dist = False ),
152157 Target ("armv7r-none-eabihf" , dist = False ),
153- Target ("i686-pc-windows-msvc" , dist = False ),
158+ Target ("armv7s-apple-ios" , dist = False ),
159+ Target ("hexagon-unknown-linux-musl" , dist = False ),
160+ Target ("i386-apple-ios" , dist = False ),
161+ Target ("i686-apple-darwin" , dist = False ),
154162 Target ("i686-unknown-haiku" , dist = False ),
163+ Target ("i686-unknown-hurd-gnu" , dist = False ),
155164 Target ("i686-unknown-netbsd" , dist = False ),
156165 Target ("i686-unknown-openbsd" , dist = False ),
157166 Target ("i686-wrs-vxworks" , dist = False ),
@@ -168,40 +177,35 @@ def run_on(self) -> Os:
168177 Target ("powerpc-unknown-netbsd" , dist = False ),
169178 Target ("powerpc-wrs-vxworks" , dist = False ),
170179 Target ("powerpc-wrs-vxworks-spe" , dist = False ),
180+ Target ("powerpc64-ibm-aix" , dist = False ),
171181 Target ("powerpc64-unknown-freebsd" , dist = False ),
172182 Target ("powerpc64-wrs-vxworks" , dist = False ),
183+ Target ("riscv32-wrs-vxworks" , dist = False ),
184+ Target ("riscv32gc-unknown-linux-gnu" , dist = False ),
173185 Target ("riscv32i-unknown-none-elf" , dist = False ),
174186 Target ("riscv32imac-unknown-none-elf" , dist = False ),
175187 Target ("riscv32imc-unknown-none-elf" , dist = False ),
176- Target ("riscv32gc-unknown-linux-gnu " , dist = False ),
177- Target ("riscv32-wrs-vxworks " , dist = False ),
188+ Target ("riscv64-wrs-vxworks " , dist = False ),
189+ Target ("riscv64a23-unknown-linux-gnu " , dist = False ),
178190 Target ("riscv64gc-unknown-freebsd" , dist = False ),
179191 Target ("riscv64gc-unknown-hermit" , dist = False ),
180192 Target ("riscv64gc-unknown-linux-musl" , dist = False ),
181193 Target ("riscv64gc-unknown-none-elf" , dist = False ),
182194 Target ("riscv64imac-unknown-none-elf" , dist = False ),
183- Target ("riscv64-wrs-vxworks" , dist = False ),
184195 Target ("s390x-unknown-linux-musl" , dist = False ),
185196 Target ("sparc-unknown-linux-gnu" , dist = False ),
186197 Target ("sparc64-unknown-netbsd" , dist = False ),
187- Target ("thumbv6m-none-eabi" , dist = False ),
188- Target ("thumbv7em-none-eabi" , dist = False ),
189198 Target ("thumbv7em-none-eabihf" , dist = False ),
190199 Target ("thumbv7m-none-eabi" , dist = False ),
191200 Target ("thumbv7neon-linux-androideabi" , dist = False ),
192201 Target ("thumbv7neon-unknown-linux-gnueabihf" , dist = False ),
193202 Target ("thumbv8m.main-none-eabi" , dist = False ),
194- Target ("x86_64-pc-windows-msvc" , dist = False ),
195203 Target ("x86_64-unknown-dragonfly" , dist = False ),
196204 Target ("x86_64-unknown-haiku" , dist = False ),
197205 Target ("x86_64-unknown-hermit" , dist = False ),
198206 Target ("x86_64-unknown-l4re-uclibc" , dist = False ),
199207 Target ("x86_64-unknown-openbsd" , dist = False ),
200208 Target ("x86_64-wrs-vxworks" , dist = False ),
201- # apple nodist
202- Target ("armv7s-apple-ios" , dist = False ),
203- Target ("i686-apple-darwin" , dist = False ),
204- Target ("i386-apple-ios" , dist = False ),
205209]
206210
207211
@@ -230,6 +234,16 @@ def run(args: list[str], /, env: Optional[dict[str, str]] = None):
230234 sp .run (args , env = env , check = True )
231235
232236
237+ def check_dup_targets ():
238+ all = set ()
239+ duplicates = set ()
240+ for target in TARGETS :
241+ if target .name in all :
242+ duplicates .add (target .name )
243+ all .add (target .name )
244+ assert len (duplicates ) == 0 , f"duplicate targets: { duplicates } "
245+
246+
233247def test_target (cfg : Cfg , target : Target ):
234248 env = os .environ .copy ()
235249 env .setdefault ("RUSTFLAGS" , "" )
@@ -315,6 +329,7 @@ def main():
315329 cfg = Cfg (toolchain_name = args .toolchain )
316330 eprint (f"Config: { cfg } " )
317331 eprint ("Python version: " , sys .version )
332+ check_dup_targets ()
318333
319334 if cfg .nightly ():
320335 # Needed for build-std
0 commit comments