A downstream consumer ported upstream Zephyr's SMF (State Machine Framework) source verbatim onto Boreas — validating the near-verbatim-port thesis for pure-software subsystems — but needed three small shims. Each shim is a Boreas gap; folding them back makes such ports shim-free:
A downstream consumer ported upstream Zephyr's SMF (State Machine Framework) source verbatim onto Boreas — validating the near-verbatim-port thesis for pure-software subsystems — but needed three small shims. Each shim is a Boreas gap; folding them back makes such ports shim-free:
LOG_MODULE_REGISTER(name)— highest priority. Upstream defaults the level toCONFIG_LOG_DEFAULT_LEVEL; Boreas requires(name, level). The downstream workaround copies the Boreas registration implementation bodies into a variadic wrapper and must be kept in sync by hand — any Boreas change to the section name / struct layout / constructor pattern silently breaks it. Proper fix: native single-arg support inzsys/log.h(variadic dispatch on argument count).<zephyr/sys/util_macro.h>missing. Boreasutil.hsuppliesIS_ENABLEDbut not the conditional-code-generation family (COND_CODE_1,IF_ENABLED, the_Z_DEBRACKEThelpers). Upstream headers include<zephyr/sys/util_macro.h>directly, so its absence forces edits to otherwise-verbatim upstream sources. Fix: add the header to zkernel and include it fromutil.h, matching upstream layering.<zephyr/logging/log.h>include path missing. Boreas logging lives at a project-specific path; upstream sources include the zephyr path. Ship a one-line redirect header in Boreas so ported sources compile without per-project plumbing.