Closed
Description
Even if x86_64-pc-windows-gnu
is the only build target, rustbuild still attempts to cross-compile thing for i686-pc-windows-gnu
to bless all revisions of mir-opt tests, but the cross-compilation isn't setup correctly and the attempt fails.
By default I see output like this
Building stage1 library artifacts (x86_64-pc-windows-gnu -> i686-pc-windows-gnu)
...
= note: ld.lld: error: C:\\msys64\\home\\we\\rust\\build\\x86_64-pc-windows-gnu\\stage1\\lib\\rustlib\\i686-pc-windows-gnu\\lib\\rsbegin.o: machine type x86 conflicts with x64
ld.lld: error: C:\\msys64\\tmp\\rustcCUublf\\symbols.o: machine type x86 conflicts with x64
ld.lld: error: C:\\msys64\\home\\we\\rust\\build\\x86_64-pc-windows-gnu\\stage1-std\\i686-pc-windows-gnu\\release\\deps\\std-e43f59e301d8d8f6.std.6f9fe1c679e003ca-cgu.00.rcgu.o: machine type x86 conflicts with x64
ld.lld: error: C:\\msys64\\home\\we\\rust\\build\\x86_64-pc-windows-gnu\\stage1-std\\i686-pc-windows-gnu\\release\\deps\\std-e43f59e301d8d8f6.std.6f9fe1c679e003ca-cgu.01.rcgu.o: machine type x86 conflicts with x64
ld.lld: error: C:\\msys64\\home\\we\\rust\\build\\x86_64-pc-windows-gnu\\stage1-std\\i686-pc-windows-gnu\\release\\deps\\std-e43f59e301d8d8f6.std.6f9fe1c679e003ca-cgu.02.rcgu.o: machine type x86 conflicts with x64
ld.lld: error: C:\\msys64\\home\\we\\rust\\build\\x86_64-pc-windows-gnu\\stage1-std\\i686-pc-windows-gnu\\release\\deps\\std-e43f59e301d8d8f6.std.6f9fe1c679e003ca-cgu.03.rcgu.o: machine type x86 conflicts with x64
If I try to remove windows-gnu targets from MIR_OPT_BLESS_TARGET_MAPPING
, then I start seeing output like this
Building stage1 library artifacts (x86_64-pc-windows-gnu -> x86_64-pc-windows-gnu-synthetic-miropt-abort(C:\msys64\home\we\rust\build\synthetic-target-specs\x86_64-pc-windows-gnu-synthetic-miropt-abort.json))
...
= note: ld.lld: error: could not open 'rsbegin.o': No such file or directory
ld.lld: error: could not open 'rsend.o': No such file or directory
This was apparently caused by #112418.
cc @pietroalbini