#4182 new enhancement

Port Rust to RTEMS

Reported by: Joel Sherrill Owned by:
Priority: normal Milestone: Indefinite
Component: tool Version:
Severity: normal Keywords: SoC, testing, ecosystem, Rust, large
Cc: karel@… Blocked By:

Description (last modified by Joel Sherrill)

With at least two architectures (SPARC and RISC-V) buildable with LLVM/clang, it is now time to consider porting Rust to RTEMS.

This project will be to target the Rust compiler to RTEMS, port the Rust run-time to RTEMS, and run the test suite for Rust.

All LLVM modifications should be submitted to LLVM which means a contributors agreement to them will have to be executed.

Note: RISC-V RTEMS support for LLVM may still be a work in progress.

#4623 may be a prerequisite for this. Being able to build LLVM with RTEMS support for any architecture and test it with normal C support is critical.

Potential mentors: Joel Sherrill, Sebastian Huber, Chris Johns, Gedare Bloom
Skills: C, some Rust
Difficulty: Hard

Change History (5)

comment:1 Changed on 02/03/22 at 20:04:39 by Gedare Bloom

Keywords: large added

comment:2 Changed on 02/08/22 at 00:46:55 by kgardas

Cc: karel@… added

Not sure if this project is not going against the wind here. If nobody steps in, then RTEMS project may get Rust language support for "free" by just waiting and seeing how https://rust-gcc.github.io/ completes. And then by enabling it in RSB I would guess. And well, porting its runtime to newlib. But hopefully effort will be lower than porting whole LLVM framework "just" to bring Rust in.

comment:3 Changed on 02/25/22 at 21:09:57 by Joel Sherrill

Description: modified (diff)

comment:4 Changed on 03/31/22 at 10:42:56 by kgardas

For porting LLVM-based rust toolchain, e.g. the one commonly known as 'rust', this page should be related: https://github.com/rust-embedded/wg

comment:5 Changed on 04/04/22 at 08:16:27 by kgardas

And to complete a picture, here is another project marring rust and gcc. This time rust as it is is used and the backend is changed from llvm to gcc's own gccjit library.

Note: See TracTickets for help on using tickets.