Skip to content
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

Build for aarch64-unknown-linux-gnu fails due to "Target architecture is not supported by SIMD features of this crate. Disable the default simd feature" in some circumstances #111

Closed
V0ldek opened this issue Mar 28, 2023 · 2 comments · Fixed by #112
Labels
area: devops CI/CD, tooling, development scripts type: bug Something isn't working
Milestone

Comments

@V0ldek
Copy link
Member

V0ldek commented Mar 28, 2023

Describe the bug
Reported in NixOS/nixpkgs#223333

Build fails on architectures not supporting SIMD because aligners is compiled with the simd feature unconditionally.

The real riddle here is why the CI pipeline for aarch64-unknown-linux-gnu succeeds. No idea as of now.

MRE
Repro is hard currently, but it can be seen here: NixOS/nixpkgs#223333 (comment)

Expected behavior

  1. Code compiles with aligners/simd disabled.
  2. Issues like these are caught during release.

Workarounds (optional)
I don't think there is one? You can enable features of a dependency by passing --features dep/feat, but there doesn't seem to be a flag to disable default features of a dependency.

Proposed solution (optional)
Fix is simple, pass the feature flag to aligners in Cargo.toml, BUT before merging that we absolutely need to get a repro in the CI pipeline. That this wasn't caught earlier is weird and unacceptable.

Desktop (please complete the following information):

  • Rust version: 1.68.1
  • Target triple: aarch64-unknown-linux-gnu
  • Features: --no-default-features --features=default-optimizations
  • Version: v0.3.2
@V0ldek V0ldek added the type: bug Something isn't working label Mar 28, 2023
@github-actions github-actions bot added the acceptance: triage Waiting for owner's input label Mar 28, 2023
@github-actions
Copy link

Tagging @V0ldek for notifications

@V0ldek V0ldek added acceptance: go ahead Reviewed, implementation can start area: devops CI/CD, tooling, development scripts and removed acceptance: triage Waiting for owner's input labels Mar 28, 2023
@V0ldek V0ldek added this to the v1.0.0 milestone Mar 28, 2023
@V0ldek
Copy link
Member Author

V0ldek commented Mar 28, 2023

Locally it easily repros with RUSTFLAGS="" cargo build --target aarch64-unknown-linux-gnu --no-default-features --features default-optimizations

@V0ldek V0ldek mentioned this issue Mar 28, 2023
3 tasks
V0ldek added a commit that referenced this issue Mar 28, 2023
V0ldek added a commit that referenced this issue Mar 29, 2023
This fixes build issues with the `aarch64` target. It also turns out our CI did not actually compile to all the targets we claimed it did, which is a bit embarrassing. We now _do_ actually support all Rust Tier 1 targets and run tests for all **except** `aarch64-unknown-linux-gnu`, because there's no image for aarch64 on GitHub.

Related: #111
@github-actions github-actions bot removed the acceptance: go ahead Reviewed, implementation can start label Mar 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: devops CI/CD, tooling, development scripts type: bug Something isn't working
Projects
Status: Released
Development

Successfully merging a pull request may close this issue.

1 participant