-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
check target abi support #36421
check target abi support #36421
Conversation
r? @pnkfelix (rust_highfive has picked a reviewer for you, use r? to override) |
cc @alexcrichton - I think you are one of the "experts" of the target related stuff. |
Thanks for the PR! Is there an associated issue with this as well? I'd naively expect that all ABIs are supported everywhere (e.g. they're just register definitions), but I'm likely missing something... |
Ok, sounds good to me! The strategy here looks good to me as well in that case. We want to be sure to not regress anything as well (unfortunately crater won't be much help here), but perhaps this example could be used to figure out which calling conventions are allowed on which platforms? |
Alright so I did a bit of testing: Test sources and script are here: https://gist.github.com/0582b8a1f9a1f35cbf06a8a144b82bf2 The results on OS X with Summary:
Conclusions:
|
Awesome, thanks for the investigation! That all looks great to me. We basically just don't want to break anyone, so whether it's an assert or a legit error it should be fine to ignore. Want to use that as a whitelist for figuring out which platforms can use which ABI? |
☔ The latest upstream changes (presumably #36818) made this pull request unmergeable. Please resolve the merge conflicts. |
05737b7
to
ff2a6c6
Compare
So I (finally!) updated this PR with the following changes:
|
📌 Commit 9eb0fd9 has been approved by |
⌛ Testing commit 9eb0fd9 with merge f542ad1... |
💔 Test failed - auto-linux-64-x-android-t |
I updated the tests, hope I've got them all. But just to check, |
@bors: r+ |
📌 Commit 1422ac9 has been approved by |
check target abi support This PR checks for each extern function / block whether the ABI / calling convention used is supported by the current target. This was achieved by adding an `abi_blacklist` field to the target specifications, listing the calling conventions unsupported for that target.
This PR checks for each extern function / block whether the ABI / calling convention used is supported by the current target.
This was achieved by adding an
abi_blacklist
field to the target specifications, listing the calling conventions unsupported for that target.