• OctoMY API
  • OctoMY API Reference
  • C++ Classes
  • OctoMY
  • CompilerInterface
  • toolchain::CompilerInterface Class

    class toolchain::CompilerInterface

    Abstraction over the underlying compiler/archiver. More...

    Header: #include <CompilerInterface>
    Since: Phase 20c
    Inherited By:

    LlvmCompilerInterface and toolchain::NullCompilerInterface

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