Skip to content

Toolchain abstraction #16031

Closed
Closed
@mped-oticon

Description

@mped-oticon

Zephyr currently assumes standard open source toolchains, such a GNU or LLVM.

There is a desire to have Zephyr's CMake build system support more toolchains - including proprietary commercial ones.
Furthermore, the name of some of these proprietary commercial toolchains cannot be public due to industry competition. Hence out-of-tree support for any toolchain is also required.

Rather than polluting CMake code with branching out for every supported toolchain, abstraction interfaces will be made.

Solution proposals and further motivation have been presented to the TSC:
https://drive.google.com/file/d/1hGgk9ITFTXS3QoOr3GTFlC46VhEopT0Y/view?usp=sharing

The aim is to abstract any hardcoded references to {compiler, linker, binutils} out.
We want to retain as much of the CMake flow as possible, to avoid toolchains drifting too far apart.

Related discussion: #10182
Initial PR + discussion: #11551 achieved the goals, but we are currently redoing that in smaller steps.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions