PORT-ABI requirements¶
The public kernel API shall not require an EmbCC-specific language extension. Rationale: GCC and Clang builds are first-class (ADR-023). Status: Accepted 2026-10-07 Verification: Build matrix: public headers compile with Trace: SPEC-011 §15; SPEC-001 §10; v0.1 §21.5 |
Compiler-specific attributes and builtins shall be isolated behind portability interfaces. Rationale: No compiler conditionals scattered through generic code (v0.1 §21.2). Status: Accepted 2026-10-07 Verification: Analysis: CI grep rejects Trace: SPEC-011 §15; SPEC-001 §10 |
Supported compiler and version combinations shall be documented and continuously tested where infrastructure permits. Rationale: Support is stated per architecture and version, not claimed globally (v0.1 §21.3). Status: Accepted 2026-10-07 Verification: Analysis: the matrix of 09 §11 is generated from CI results each release. Trace: 09 §11; 05 §2 |
The build shall detect incompatible architecture, ABI, and configuration combinations as early as practical. Rationale: A refused configuration beats a wrong image. Status: Accepted 2026-10-07 Verification: Build tests: hard-float and soft-float mix, a kernel feature the port manifest lacks, a profile the port cannot support, each fails at configuration. Trace: SPEC-011 §2; BLD-007 |
Toolchain-specific optimizations may improve performance but shall not change documented kernel semantics. Rationale: One conformance suite across compilers and optimization levels. Status: Accepted 2026-10-07 Verification: The conformance suite runs at Trace: 05 §4; 09 §7 |