-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
[TRACKING] Packages unable to cross-build due to rust's autocfg #34889
Comments
|
🙃 |
I'm going to start a separate comment to list packages that have the error but haven't been merged or don't have open PRs since they're not as high priority. The list:
|
I came across this while investigating, might have something to do with it LibreELEC/LibreELEC.tv#5446 rust-lang/cargo#9322 got merged right after the release we were using. Should be unstable and not affect anything, but who knows for sure. cuviper/autocfg#15 might be the relevant one? but unsure |
Considering this affects quite a few packages by now, and I haven't seen a big push to solve this yet, does it maybe make sense to mark these as nocross for now, with a reference to this tracking issue? |
gitui is another one: #35490 |
From google/cargo-raze#114 (comment):
Maybe trying to build a file like: extern crate std; on the failing targets could point to the cause of this problem? |
Did a bit of analysis on a test repo where I added some debug printouts to When autocfg probes for the std crate, it runs a custom Unfortunately, we pass this as the RUSTFLAGS environment variable, and the build.rs script run, being a subprocess in a new shell context, doesn't see any RUSTFLAGS in its environment. In the end the EDIT 1: There also seems to be a general issue with passing RUSTFLAGS to build scripts: rust-lang/cargo#4423 |
It's probably unreasonable to skip the affected packages' versions, but I'm not sure if we can somehow make patches that force just the autocfg bump, similar to running |
If it's just updating autocfg to 1.1.0 in the deps, https://github.com/void-linux/void-packages/pull/35490/files#diff-6e15b2c2a57581f8262281a6d3343049c12e4de3c59ec1455fc8bb8027846d15R16-R18 is running that line in |
So yeah, seems like gitui and cargo-deny now pass their CI! |
zellij also seems to build locally for aarch64 😄 |
Another problem with this issue in #35768. Probably cannot update autocfg to 1.1.0 there easily since the num-bigint-dig dependency selects autocfg ^0.1.5 |
As per cuviper/autocfg#40, autocfg 0.1 versions need to be updated to 0.1.8 |
Adding the following lines will likely fix any unfixed packages (credit to @tranzystorek-io) : post_patch() {
# fixes an indexmap error when cross compiling
cargo update --package autocfg --precise 1.1.0
} |
Issues become stale 90 days after last activity and are closed 14 days after that. If this issue is still relevant bump it or assign it. |
@cinerea0 can this be closed? It looks like there's a solution that can be applied if future issues appear, and every package listed has been fixed |
Probably can be closed. One thing that might still be worth mentioning is that xlint requires specific versions by now, so the solution suggested here has to be adapted slightly:
The advantage here is that the specific version to update from and to ensures that cargo loudly complains if we update the package and the fix isn't required anymore, to not drag those fixes along for any longer than necessary |
Yeah, this should be fine to close now that there's a general solution. |
Some rust packages are currently failing to cross-build because they depend on indexmap. A default hash builder only exits for std builds; this is checked in indexmap's build.rs file, and that test is currently failing for us. We don't want to fix it with the environment variable because the autocfg tests should be working.
Packages that have been merged:
Packages with open PRs:
Fixed packages:
The text was updated successfully, but these errors were encountered: