// When cross-compiling using `raw-dylib`, rustc would try to fetch some // very specific `dlltool` to complete the cross-compilation (such as `i686-w64-mingw32-dlltool`) // when Windows only calls it `dlltool`. This test performs some cross-compilation in a // way that previously failed due to this bug, and checks that it succeeds. // See https://github.com/rust-lang/rust/pull/108355 //@ ignore-i686-pc-windows-gnu // Reason: dlltool on this distribution is unable to produce x64 binaries //@ needs-dlltool // Reason: this is the utility being checked by this test use run_make_support::{llvm_objdump, rust_lib_name, rustc}; fn main() { // Build as x86 and make sure that we have x86 objects only. rustc() .crate_type("lib") .crate_name("i686_raw_dylib_test") .target("i686-pc-windows-gnu") .input("lib.rs") .run(); llvm_objdump() .arg("-a") .input(rust_lib_name("i686_raw_dylib_test")) .run() .assert_stdout_contains("file format coff-i386") .assert_stdout_not_contains("file format coff-x86-64"); // Build as x64 and make sure that we have x64 objects only. rustc() .crate_type("lib") .crate_name("x64_raw_dylib_test") .target("x86_64-pc-windows-gnu") .input("lib.rs") .run(); llvm_objdump() .arg("-a") .input(rust_lib_name("x64_raw_dylib_test")) .run() .assert_stdout_not_contains("file format coff-i386") .assert_stdout_contains("file format coff-x86-64"); }