toolchain::CompilerInterface

Abstraction over the underlying compiler/archiver.

Declared in src/libs/libtoolchain/toolchain/CompilerInterface.hpp
Inherited By LlvmCompilerInterface and toolchain::NullCompilerInterface
Group toolchain

Detailed description

Recipes that need to compile vendored source (avr-libc, compiler-rt-builtins-avr, future musl) take this via `ComponentBuildContext::compiler`. Concrete implementations live in `libfirmware` (uses vendored Clang+LLVM); test implementations live alongside the recipes' tests.

This abstraction is what lets `libtoolchain` stay lightweight and *not* depend on `libllvm` — `libfirmware` already does.

Implementations must be thread-safe with respect to multiple `compileObject()` calls (recipes may parallelise per-multilib builds).