rust-lang / backtrace-rs

Backtraces in Rust
https://docs.rs/backtrace
Other
537 stars 246 forks source link

i686 Windows CI is broken #479

Closed ehuss closed 5 months ago

ehuss commented 2 years ago

The backtrace-rs CI has been broken for a few months because the i686-pc-windows-gnu runner has been failing:

Run cargo test --manifest-path crates/cpp_smoke_test/Cargo.toml
   Compiling cpp_smoke_test v0.1.0 (D:\a\backtrace-rs\backtrace-rs\crates\cpp_smoke_test)
    Finished test [unoptimized + debuginfo] target(s) in 13.63s
     Running unittests src\lib.rs (target\debug\deps\cpp_smoke_test-35949726fc43fe32.exe)
error: test failed, to rerun pass '--lib'

Caused by:
  could not execute process `D:\a\backtrace-rs\backtrace-rs\target\debug\deps\cpp_smoke_test-35949726fc43fe32.exe` (never executed)

Cargo is eating the error, but the actual error is ERROR_BAD_EXE_FORMAT (0xC1) usually displayed as %1 is not a valid Win32 application..

My guess is that the GitHub Windows image uses chocolatey to install mingw64. To my understanding, this does not have multilib support and thus isn't properly compiling the 32-bit code. The version reported is:

g++.exe (MinGW-W64 x86_64-posix-seh, built by Brecht Sanders) 11.2.0

I can reproduce this locally with that version from chocolatey.

I'm not well versed in using chocolatey, or how to switch to mingw32.

alexcrichton commented 2 years ago

Thanks for digging into this! I fear though that this is far over my head at this point so I've removed the CI in https://github.com/rust-lang/backtrace-rs/pull/480. I'll leave this open though if others know how to re-add it.

workingjubilee commented 5 months ago

I consider our current coverage of windows CI, which tests i686-msvc on stable and nightly, to be sufficient.