diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae72e8a9..464ea10c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ on: env: MCPP_SOURCE_REF: ${{ github.event.inputs.mcpp_ref || vars.MCPP_SOURCE_REF }} - MCPP_VERSION: 2026.9.18.3 + MCPP_VERSION: 2026.9.20.1 XLINGS_VERSION: v2026.8.17.2 XLINGS_NON_INTERACTIVE: '1' diff --git a/README.md b/README.md index c7e0649d..7192566b 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,27 @@ C library. ```toml [dependencies] -openkal-llvm-runtime = "0.12.0" +openkal-llvm-runtime = "0.13.0" ``` -> **Engine floor (mcpp 2026.9.18.3):** this version of this package pins -> `openkal-musl 0.16.0` and inherits its `[c-abi]` declaration. The engine's -> `cenv_probe::verify` strips host macros (`-U_WIN32` / `-U_WIN64` / -> `-U__MINGW32__` / `-U__MINGW64__`) on Windows hosts before reading the -> predefined macros that back the declaration, and `cenv::realise` forces -> `-fno-short-wchar` on freestanding wchar. Older engines silently -> misbuild this package on Windows × freestanding (the cross-build to -> `riscv64-none-elf` etc. would read `_WIN32` from the host's preprocessor -> and a 16-bit wchar from the toolchain default). Upgrade: -> `xlings install mcpp --force`. +> **Engine floor (mcpp 2026.9.20.1):** this version of this package pins +> `openkal-musl 0.18.0` and inherits its `[c-abi]` declaration. The engine +> assembles the verification probe's command line in one place that REFUSES +> to run it without a target selection (`cenv_probe::assemble_argv`), and +> `cenv::realise` forces `-fno-short-wchar` on freestanding wchar. Older +> engines silently misbuild this package on freestanding cross-builds +> (`riscv64-none-elf` and the rest): their probe ran with no `--target=` at +> all, so the compiler answered for the machine it was running on. +> +> **The floor named here was 2026.9.18.3 and that was wrong.** It credited +> that release with stripping host macros (`-U_WIN32` and the MinGW pair) on +> Windows hosts before reading the predefined macros. The strip was real and +> it protected nothing: there was no target substitution in the freestanding +> argv for it to compensate for, and deleting the host's predefines deleted +> the one piece of evidence that would have said so. A measurement that +> removes its own disagreement reports an agreement it never established. +> +> Upgrade: `xlings install mcpp --force`. A C++ standard library is not portable in the way a program is. It is *configured* for one C library and compiled against that library's headers, and diff --git a/mcpp.toml b/mcpp.toml index aa6fc807..ee6b48d2 100644 --- a/mcpp.toml +++ b/mcpp.toml @@ -1,7 +1,7 @@ [package] namespace = "mcpplibs" name = "openkal-llvm-runtime" -version = "0.12.0" +version = "0.13.0" description = "LLVM's C++ runtime libraries — libc++, libc++abi and libunwind — configured for openkal-musl rather than for a host C library." license = "Apache-2.0" authors = ["mcpplibs"] @@ -216,7 +216,7 @@ sources = [ cflags = ["-DDISABLE_AARCH64_FMV=1"] [dependencies] -openkal-musl = "0.16.0" +openkal-musl = "0.18.0" [build]