openkal 0.13 and the packages that follow it; openkal compatibility labels - #437
Merged
Merged
Conversation
…dows with musl tests/openkal/compat.py measures the members listed in tests/openkal/members.toml in an openkal graph (Linux natively, Windows cross-built and run through Wine) and writes .xpkgindex/openkal-compat.json. The site files packages under an openkal facet by that measurement and shows each target's result with the pins it was measured with; a descriptor has no field for it. openkal-compat.yml runs weekly, on demand, and for pull requests that change a descriptor a listed member depends on; the comparison against published labels becomes required once OPENKAL_RATCHET is on. docs/openkal-compat.md states the label and the adaptation rules (select on c-abi; do not undefine a platform macro; one reading of a public header; assert a changed configuration across the boundary; one C runtime per image). compat.zlib: on cfg(all(windows, c-abi = "musl")) zlib's own units are built without _WIN32, which zlib reads as the Windows C runtime being present, and with unistd.h included directly so that zconf.h computes z_off_t identically for zlib and its consumers. tests/examples/zlib asserts that agreement through zlibCompileFlags() and exercises deflate and gz files.
…s own units mbedtls chooses its entropy, timing and socket code by asking whether the environment is Windows or Unix. With musl as the C library on Windows (an openkal graph) the answer the triple gives is Windows and the headers are POSIX, so timing.c included windows.h and failed (mcpp-index#435 through tinyhttps). mbedtls's own units are built without _WIN32 and with __unix__ there; no public header of mbedtls tests either macro. -lbcrypt applies to Windows with the platform C runtime only. Measured with mcpp carrying #662: tinyhttps's openkal example cross-builds for x86_64-windows-gnu and runs its framing tests under Wine.
The not(c-abi = "musl") selection did not reach the Windows workspace link with the pinned mcpp (BCryptGenRandom undefined). The unconditional platform flag is restored; on Windows with musl the import library is named and unused, which links (measured with mcpp carrying #662, run under Wine).
…indows 0.8.0, openkal-opensbi 0.7.0, openkal-uefi 0.7.0, tinyhttps 0.3.1 Each archive is the GitHub tag archive, mirrored to GitCode mcpp-res with the same bytes (sha256 checked on both).
Sunrisepeak
marked this pull request as ready for review
September 17, 2026 10:42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft: the openkal 0.13 wave's descriptors (openkal 0.13.0, openkal-linux 0.13.0, openkal-macos 0.10.0, openkal-windows 0.8.0, openkal-emscripten 0.2.0, openkal-opensbi 0.7.0, openkal-uefi 0.7.0, std-freestanding-alloc-kal 0.1.6, openkal-musl 0.14.0, openkal-llvm-runtime 0.10.0, tinyhttps 0.3.1) and the mcpp pin that carries mcpp#662 are added as each is released.
Already here:
tests/openkal/compat.py,tests/openkal/{pins,members}.toml,.github/workflows/openkal-compat.yml: measured openkal labels..xpkgindex/plugins/mcpp.py: anopenkalfacet and a per-target result block.docs/openkal-compat.md(and zh): what the label means and the adaptation rules.compat.zliboncfg(all(windows, c-abi = "musl"))andtests/examples/zlibassertingz_off_tagreement. Closes the zlib half of mcpp#662's follow-up.Design: mcpplibs/openkal
.agents/docs/2026-09-17-openkal-ecosystem-cross-repo-design.md.