Software ecosystem

GCC

GCC is central to many native-code ecosystems, but CHERI compiler support has historically centred on Clang/LLVM.

For
Developers and system architects
Last reviewed
2026-08-05
Review cycle
Review every 6 months

Why it matters

Toolchain choice affects diagnostics, language behaviour, binary interfaces and the long-term cost of porting.

In brief

GCC is central to many native-code ecosystems, but CHERI compiler support has historically centred on Clang/LLVM. Any GCC-based CHERI route should therefore be assessed by target, branch, ABI coverage, runtime compatibility and maintenance status.

Key considerations

1. Target

Identify the exact CHERI architecture and whether a maintained GCC implementation exists for it.

2. Coverage

Check C/C++ features, assembler, linker, builtins, sysroot, libraries, debugger and conformance tests.

3. Strategy

Use LLVM where it is the supported reference path unless a GCC requirement has evidence, ownership and a maintenance plan.

Evidence and caveats

Do not infer CHERI support from conventional RISC-V or Arm support. Experimental branches may be incomplete or incompatible with current platforms.

Treat build, test, integration, upstream and maintained support as distinct states. Name the target and last verified date.

Primary routes

Where next

Document why GCC is required, then compare the current target support with the maintained LLVM route before committing.

Review the primary CHERI toolchain