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).