29_toolchain_partial_versions.sh and 31_transitive_deps.sh fail on main (run 26988545086, plus a rerun) and on unrelated PRs (e.g. #119 run 27007239457) with the same signature — deterministic, not a flake:
/…/.mcpp/registry/data/xpkgs/xim-x-glibc/2.39/include/bits/local_lim.h:38:10:
fatal error: linux/limits.h: No such file or directory
during the std-module precompile right after the tests' first-run install of gcc@16.1.0 (glibc, native ABI).
Observations:
- The
xim-x-glibc/2.39 package ships glibc headers but no Linux kernel headers (linux/limits.h et al.), which bits/local_lim.h includes unconditionally.
- The injected runtime path pairs
xim-x-gcc/16.1.0 with xim-x-gcc-runtime/15.1.0 — the 16.1.0 toolchain package set looks recently published and incompletely paired.
- Earlier main runs (gcc 15.x default era) passed these tests; the breakage tracks the registry-side default moving to 16.1.0, not any mcpp code change (e2e 65/67 otherwise green on the same runs).
Suggested fixes (registry-side): add kernel headers to the glibc xpkg (or a separate linux-headers xpkg included by the toolchain meta), and pair gcc 16.1.0 with its own runtime package.
29_toolchain_partial_versions.shand31_transitive_deps.shfail on main (run 26988545086, plus a rerun) and on unrelated PRs (e.g. #119 run 27007239457) with the same signature — deterministic, not a flake:during the std-module precompile right after the tests' first-run install of
gcc@16.1.0(glibc, native ABI).Observations:
xim-x-glibc/2.39package ships glibc headers but no Linux kernel headers (linux/limits.het al.), whichbits/local_lim.hincludes unconditionally.xim-x-gcc/16.1.0withxim-x-gcc-runtime/15.1.0— the 16.1.0 toolchain package set looks recently published and incompletely paired.Suggested fixes (registry-side): add kernel headers to the glibc xpkg (or a separate
linux-headersxpkg included by the toolchain meta), and pair gcc 16.1.0 with its own runtime package.