-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Enable AVR as a Tier 3 target upstream #69478
Conversation
r? @estebank (rust_highfive has picked a reviewer for you, use r? to override) |
Dammit, meant to raise this on avr-rust/rust first, I always do this |
This comment has been minimized.
This comment has been minimized.
Actually, come to think of it, might as well keep it here for tracking. Code reviews welcome, but let's hold off merging until some more testing has been done, |
This comment has been minimized.
This comment has been minimized.
5d9b2ba
to
e3b36d7
Compare
This comment has been minimized.
This comment has been minimized.
e3b36d7
to
113fef6
Compare
How time flies! |
This comment has been minimized.
This comment has been minimized.
9522529
to
37b32f0
Compare
This comment has been minimized.
This comment has been minimized.
Any suggestions for where to put an AVR README or just AVR-specific documentation like build/usage instructions? |
This comment has been minimized.
This comment has been minimized.
110ca92
to
99f6776
Compare
The only remaining failing automated test is related to name mangling, seems odd. |
This comment has been minimized.
This comment has been minimized.
We may need to re-bless the test output for the ABI failure tests (ui/feature-gates/feature-gate-abi-avr-interrupt.r) |
Patch generated with `./x.py test --stage 1 src/test/ui/feature-gates --bless`.
It is not possible to compile libstd for AVR anyway.
… ABI This patch brings the AVR calling convention argument classification logic in line with AVR Clang's behaviour. AVR-Clang currently uses the `clang::DefaultABIInfo` ABI implementation. This calling convention promotes all aggregates to indirect, no matter their size. It is also unnecessary to perform any integer width extension for AVR as the minimum argument size matches the minimum describable size of abi::Primitive::Int - 8 bits. At some point in the future, an AVR-GCC compatible argument classification implementation should be adopted in both Clang and Rust.
491bf8c
to
0340359
Compare
Rebased, and the calling convention re-blessing removed from the git history. |
@bors r+ |
📌 Commit 0340359 has been approved by |
⌛ Testing commit 0340359 with merge 0b208d1125cca703f2f834db83a8a41988ffa813... |
@bors retry yield |
@bors p=1 |
☀️ Test successful - checks-azure |
(from the original post) Typo? |
@Restioson the wording of that commit is a bit weird, but I did make two suggestions, so it was likely intentional. (not meant to mention somebody else, at least). |
Ah, okay. |
Adding a new ABI changes the hashes of all previous ABIs. Fix suggested by @shepmaster in rust-lang#69478 (comment).
Tracking issue: #44052.
Things intentionally left out of the initial upstream:
target_cpu
flagI have made the cleanup suggestions by @jplatte and @jplatte in avr-rust@043550d.
Anybody feel free to give the branch a test and see how it fares, or make suggestions on the code patch itself.