-
Notifications
You must be signed in to change notification settings - Fork 159
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
"cannot link object files with different floating-point ABI" (nightly-2021-03-23) #69
Comments
This might have been caused by rust-lang/rust#83231 |
yvt
added a commit
to r3-os/r3
that referenced
this issue
Mar 31, 2021
This commit replaces `riscv` and `riscv-rt` with a customized version to work around <rust-embedded/riscv#69>. The long-term solution is simple: wait until `asm!` is stabilized and rewrite all assembler code of `riscv` and `riscv-rt` in inline assembler. The short-term solution is complicated by multiple factors: - `asm!` and `#[naked]` are not stable yet. Therefore, the precompiled object files are still needed to support the stable Rust. - There is no reliable way to check the target floating-point ABI from the build script. - Many crates depend on older versions of `riscv` and `riscv-rt` that use the old form of `asm!` and have lower MSRVs. This commit skips over these considerations by assuming the target compiler version. Specifically: - The customized version of `riscv 0.5` uses `llvm_asm!`, which is supported by our target compiler version but not by the target compiler of the original version. - The customized version of `riscv-rt` replaces all assembler code with inline assembler wrapped in naked functions.
bors bot
added a commit
that referenced
this issue
Jul 17, 2021
73: Add additional binaries for floating-point ABIs r=almindor a=TechnoElf Fixes #69 Co-authored-by: TechnoElf <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
riscv
andriscv-rt
crates cause a linker error when building with a recent nightly compiler for a hard-float target.Output:
It appears that this started happening somewhere between
nightly-2021-03-10
andnightly-2021-03-23
(inclusive).1.50.0
: oknightly-2021-02-19
: oknightly-2021-02-23
: oknightly-2021-03-09
: oknightly-2021-03-23
: failThe text was updated successfully, but these errors were encountered: