You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
revert(freestanding): drop dead-section elimination from this change
⚠️ MEASURED TO BREAK A JOB THAT IS GREEN ON main, BY A MECHANISM THAT
CONTRADICTS THE CODE, WHICH IS REASON ENOUGH NOT TO SHIP IT.
`--gc-sections` was correct on this machine and in the bare-metal CI job. It
broke the openkal cross-build on a WINDOWS host:
lld: error: unable to find library -lntdll (and four more)
Three-way control, not reasoning:
main, via workflow_dispatch build 3 targets on windows ✅
this PR, with gc-sections (three runs) ❌
bisect/no-gc-sections, that change alone reverted ✅
And the result contradicts the model. Both call sites sit inside
`isFreestandingTarget`, which `x86_64-windows-gnu` does not satisfy; the same
cross-build succeeds on a Linux host; and the `-Wl,--gc-sections` visible in the
failing link line was traced to openkal-windows' own manifest rather than to the
engine. The actual symptom is a MISSING `-L` for the directory holding the
import libraries that package generates.
So the mechanism is not understood, and an unexplained change does not belong in
a release. The flags are removed here and the finding is recorded in
`.agents/docs/2026-09-04-…-plan.md` §10.1 with the control that establishes it,
because dead-section elimination remains a prerequisite for a C library supplied
from the dependency graph.
The Cortex-M rows do not depend on it: they build, link and boot without it, and
the e2e still asserts the vector table is present and the float ABI is honoured
on both sides. Only the two dead-code assertions are withdrawn.
0 commit comments