Abstraction over the underlying compiler/archiver. More...
| Header: | #include <CompilerInterface> |
| Since: | Phase 20c |
| Inherited By: |
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).