-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
Add target support for RTEMS Arm #127021
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 target support for RTEMS Arm #127021
Conversation
|
Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @compiler-errors (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
|
|
These commits modify compiler targets. Some changes occurred in src/doc/rustc/src/platform-support cc @Nilstrieb |
This comment has been minimized.
This comment has been minimized.
258ff09 to
792a693
Compare
This comment has been minimized.
This comment has been minimized.
|
|
|
Some changes occurred in tests/ui/check-cfg cc @Urgau |
This comment has been minimized.
This comment has been minimized.
99800ab to
21d16e6
Compare
This comment has been minimized.
This comment has been minimized.
21d16e6 to
692c9e5
Compare
This comment has been minimized.
This comment has been minimized.
0449b07 to
3a1a4dc
Compare
|
Pipeline works now 🎉 . Also rebased to current master. |
|
☔ The latest upstream changes (presumably #127026) made this pull request unmergeable. Please resolve the merge conflicts. |
bbecec5 to
deeceb5
Compare
This comment has been minimized.
This comment has been minimized.
|
@bors r+ For future reference, |
armv7-rtems-eabihfThis PR adds a new target for the RTEMS RTOS. To get things started it focuses on Xilinx/AMD Zynq-based targets, but in theory it should also support other armv7-based board support packages in the future.
Given that RTEMS has support for many POSIX functions it is mostly enabling corresponding unix features for the new target.
I also previously started a PR in libc (rust-lang/libc#3866) to add the needed OS specific C-bindings and was told that a PR in this repo is needed first. I will update the PR to the newest version after approval here.
I will probably also need to change one line in the backtrace repo.
Current status is that I could compile rustc for the new target locally (with the updated libc and backtrace) and could compile binaries, link, and execute a simple "Hello World" RTEMS application for the target hardware.
There should be no breaking changes for existing targets. Main changes are adding corresponding
cfgswitches for the RTEMS OS and adding the C binding in libc.Tier 3 target policy
I will do the maintenance (for now) further members of the RTEMS community will most likely join once the first steps have been done.
The proposed triple is
armv7-rtems-eabihfThe tools consists of the cross-compiler toolchain (gcc-based). The RTEMS kernel (BSD license) and parts of the driver stack of FreeBSD (BSD license). All tools are FOSS and publicly available here: https://gitlab.rtems.org/rtems
There are also no new features or dependencies introduced to the Rust code.
N/A to me. I am not a reviewer nor Rust team member.
coreandstdcompile. Some advanced features of thestdlib might not work yet. However, the goal of this tier 3 target it to make it easier for other people to build and run test applications to better identify the unsupported features and work towards enabling them.Building is described in platform support doc. Running simple unit tests works. Running the test suite of the stdlib is currently not that easy. Trying to work towards that after the this target has been added to the nightly.
Understood.
Ok
I think, I didn't add any breaking changes for any existing targets (see the comment regarding features above).
Can produce assembly code via the llvm backend (tested on Linux).
Understood.
r? compiler-team