-
Notifications
You must be signed in to change notification settings - Fork 106
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
Add abi-checker to y.rs and run it on CI #1255
Conversation
Thanks again!
This test fails with cg_llvm too. See rust-lang/rust#54341 (comment) @Gankra is there a way to skip this specific test for rustc<->cc, but keep it for cg_llvm<->cg_clif? |
So I tried to set up an aarch64 qemu vm to debug this. Turns out emulation is so slow installing a minimal debian vm takes almost 3 and a half hours... |
Send me an ssh key via zulip and i'll create you a user on an aarch64 server |
All i128 failures on AArch64 I mentioned in bytecodealliance/wasmtime#4634 (comment) have struct arguments emulating i128 rather than real i128.
|
I suspect it has something to do with Cranelift not knowing about argument alignment at all. |
fyi i'm working on cleaning up a bunch of stuff to make this workable as something in CI |
WIP work here: Gankra/abi-cafe#13 |
As of Gankra/abi-cafe#13 it is now easy to patch abi-checker to disable specific tests in certain conditions. See the code section starting with |
Hey, I couldn't get Good news is that MSVC is less broken than I expected! I'll try to find some time to track down the bool issues. |
Thanks! Opened https://github.com/bjorn3/rustc_codegen_cranelift/issues/1261 to track the remaining failures. |
Could you provide any logs/details of the failure? You might be running into the fact that the current busted/fails system doesn't like it if you fail on the wrong stage. So |
That sounds like exactly what was happening. The test was segfaulting on a old version of abi-checker (the latest version when the PR was opened). With the current latest version it no longer segfaults, but the behaviour is sort of the same, we get something like
And it stops the tests right there (although not with a segfault). I think this is the behaviour that if we specify a |
Hi @afonso360 I just noticed that this is failing on s390x, because it assumes the
"disagree everywhere but aarch64" seems a bold statement :-) |
You might want to leave a comment on rust-lang/rust#65111 about that. |
Hey, I think we should fix that in abi-checker. I'm not too familiar with that comment, but it looks like we can relax it to aarch64 & s390x (although I suspect that the issue is really only with x86?). We can apply a patch here, but it wouldn't be the best way to solve it. |
I've now opened Gankra/abi-cafe#14 . Thanks! |
Updated abi-checker in 0966118. |
Thanks! |
👋 Hey,
I've been playing around with abi-checker since I think the MSVC failures are ABI related.
This PR adds CI support for abi-checker. Currently we only run it in native scenarios (i.e. no cross compile).
Failures so far:
ubuntu-latest
fails on paircgclif_calls_cc
:Segfault on native
aarch64-unknown-linux-gnu
for pairrustc_calls_cgclif
:STATUS_ACCESS_VIOLATION
for MSVC on pairrustc_calls_cgclif
:I suspect that the aarch64 failures may be related to the issues we were having on #1184 but haven't investigated so far.
Edit(bjorn3): Fixes https://github.com/bjorn3/rustc_codegen_cranelift/issues/1251