Notice: We have migrated to GitLab launching 2024-05-01 see here:

#4623 assigned enhancement

Add RSB for LLVM targeting RTEMS

Reported by: Joel Sherrill Owned by: Gedare Bloom
Priority: normal Milestone: Indefinite
Component: tool Version:
Severity: normal Keywords: llvm, tools, gcc, llvm, ecosystem, SoC, medium
Cc: Daniel Hellstrom, Gedare Bloom, Hesham Almatary Blocked By:

Description (last modified by Joel Sherrill)

LLVM support for RTEMS has been included in the tools shipped by Gaisler (e.g. their RCC). RTEMS itself should now have all modifications needed to not be tied to GCC. This project is to add an RSB recipe to build an LLVM toolchain.

Information from Daniel Hellstrom:

RCC-1.3 has not converted into using the RSB. However I believe we have upstreamed every change to the RTEMS kernel tree which was related to LLVM/Clang support for SPARC. The RCC-1.3 section 2.2.4 includes some information what is compiled with GCC in our LLVM toolchain:

For NOEL-V/RISC-V we only provide GCC toolchain today.

After building the tools with the RSB, those tools must be used to build at least one BSP from an architecture which is not currently supported by LLVM. ARM, RISC-V, or x86_64 are likely first architectures to consider with testing on a BSP which can run on a simulator. Test results are necessary for GCC (baseline) and LLVM (objective).

There are multiple tickets related to llvm. Finishing this project may close one or more of them. Any work on this ticket should see if the others need updating or closing.

Possible Mentors: Gedare Bloom, Daniel Hellstrom, Chris Johns, Joel Sherrill
Skills: C
Difficulty: Medium

Change History (4)

comment:1 Changed on 02/25/22 at 21:25:00 by Joel Sherrill

Description: modified (diff)

comment:2 Changed on 02/16/24 at 15:27:17 by Gedare Bloom

Keywords: medium added; large removed

comment:3 Changed on 02/17/24 at 05:17:35 by Gedare Bloom

Owner: set to Gedare Bloom
Status: newassigned

comment:4 Changed on 03/27/24 at 05:50:21 by Hesham Almatary

To completely remove the reliance on GCC, this should also include building:

  • newlib
  • compiler-rt
  • libc++

Clang might still need a driver for linking RTEMS targets

Note: See TracTickets for help on using tickets.