-
Notifications
You must be signed in to change notification settings - Fork 493
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid using unstable target abi feature #2515
Conversation
@@ -24,8 +24,8 @@ windows_i686_gnu = { path = "../../targets/i686_gnu", version = "0.48.0" } | |||
[target.'cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib)))'.dependencies] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left not(target_abi = "llvm")
because it doesn't break the build and might be necessary one day.
Can we devise a test for this that reproduces the issue and demonstrates the problem has been fixed? |
Perhaps we could together a crate that has a build script that asserts the expected dependencies? |
Clearly not well tested as it works before and after this change. 😉 |
Regarding the test it's tricky one because Rust/Cargo bug that I mentioned in OP that allows to use To reproduce the problem compiler that forbids unstable features is required, so typically Beta or Stable release. It's going to take time but hopefully I'll be able to add prebuilt std for those targets to rustup which would allow testing on stable compilers and I if rust-lang/rust#80970 is not too time consuming to push it to the finish line I'll take care of it. |
OK, well this effectively drops |
I believe this is the case actually. I'd consider it as a "minor inconvenience" for Tier 3 target so I haven't spent a lot of time thinking about possible solution. |
Can we get the manual steps to reproduce this? Should be easy to put into a test afterwards. |
If you can run AArch64 binaries then you can install MSYS2, install prebuilt Rust package ( |
Note that's all ephemeral. Hopefully at some point a stable version of rust will be present that does support As someone who really doesn't use rust, just tries to keep packages building for windows on arm64, I figure this could be reverted once a version of rust is released that properly handles the |
@kennykerr any chance of a Building packages which use I haven't yet got to a point where I'm cross-compiling ARM64 binaries from a non-Windows host; but I'd strongly suspect it's broken there too when using a non-nightly build, using the MSVC toolchain isn't an option, and there's no It looks like this project's CI only builds |
What's this all about?
TL;DR
windows-rs
crates stopped building onwindows-gnullvm
targets with stable Rust toolchains.cfg_target_abi
is unstable but due to bug in Cargo/Rust this is not detected when specifying target dependencies. Instead it seems to silently do nothing. On nightly this doesn't reproduce, probably because that feature is available for use.Losing optionality of the target crate when using
raw_dylib
is unfortunate but having a working build sounds more valuable.Fixes issue described in #2412 (comment) and msys2/MINGW-packages#16945 (comment)