Attention, *-windows-msvc Users! Please check your crates using the current Beta compiler


(x-post from Rust internals)

Attention, *-windows-msvc Users!

The current Rust Beta channel contains a partial implementation of RFC17177, which alters semantics of the #[link] FFI attribute on Windows. (TL;DR: If you are linking to a static native library on Windows, be sure to mark it as such, i.e. kind=“static”)

Crater2 currently does not support Windows, so we have no way of checking the actual impact of this change (hopefully small to non-existent).

So we are asking you to test your crates using Nightly or Beta rustc and let us know if you see any breakage. The failures, if any, will manifest themselves as linker failing because of undefined symbols in crates which succeed if using the stable compiler.



Even if crater did support Windows, a crate being broken by this change would only manifest at link time. So a simple cargo build of your library crate would be just fine. You’d have to compile an actual executable which uses your crate in order to find out whether anything was broken. Also, since this only affects crates that link to external libraries, this would be really hard to actually test using crater because you’d have to obtain all those external libraries.