Repository navigation
feat: LLVM 23.1.3 native ARM64 GNU and openkal host support - #781
Sunrisepeak wants to merge 25 commits into
Conversation
050aef4 to
521a1b1
Compare
|
CI status notes on the two red legs (both diagnosed, neither is the line move failing its own gate):
|
521a1b1 to
d8b4d19
Compare
d8b4d19 to
73823f1
Compare
|
Pushed the second段 of work, three parts: 1. #782 repair. The openkal leg's rerun failure was the decisive sample: 2. e2e toolchain-version abstraction. 3. #669 closed: xlings#645 merged, both xcode-27 legs green on rerun — the issue's own two closure conditions, both met. Also answered on the thread: |
73823f1 to
9affc27
Compare
|
Round-3 fixes for the two target-matrix legs the previous push red'd, plus the origin-aware form of the #782 repair: #782 repair, refined by its own CI. The unconditional install fired on a case it should not: linux-aarch64's restored sandbox cache holds an x86_64-only gcc@16.1.0, so an engine-chosen musl/gnu spec could extract a foreign-arch payload and die later at the hermetic check (297's hosted control on that leg). The install now distinguishes who chose the toolchain: a user-declared toolchain (manifest 297's gate now asks the resolver, not the file listing. The matrix contract on non-linux-x86_64 hosts is a skip naming the FACT ("gcc is not installed here"); the old gate read |
9affc27 to
8b3580d
Compare
|
Round-4 fix, caught by the macos-e2e leg: the heredoc unquoting from the abstraction migration had silently not landed — 14 fixtures still carried |
23.1.3 is the first point release carrying the macOS 27 arm64e.x1 ld64.lld fix (llvm-project#222721, backported to release/23.x as ee66426) — the release #669 was blocked on. clang 23.1.0's MSVC STL std-module defect was fixed in 23.1.1 (#640, llvm-project#218152). The line move (single PR per SPEC-009 §10.6): - kKnownTargets: the 17 llvm rows move 22.1.8 -> 23.1.3; the gcc rows stay. - Host defaults: macOS and Windows-with-MSVC move to llvm@23.1.3, resolving the [toolchain] macos/windows deviations (SPEC-009 §12). Linux keeps gcc@16.1.0 by design — native glibc ABI — now recorded as a §4.1 reason at the single pin site, with the gcc@15.1.0-musl reason beside it. - All four known-red legs (#669) become unconditional normal legs; the known-red floor assertion moves to zero. The xcode-27 legs went green on rerun and #669 is closed. - Readers move with the tables: workflows, the macOS action, CI tools, e2e fixtures, tests/matrix/expected.tsv, examples, user docs (en/zh); SPEC-009 v0.4 records the move. - libc++ 23 adaptation the gate caught: _LIBCPP_BEGIN_NAMESPACE_STD opens under the ODR-signature abi_tag pragma, and clang refuses to add abi_tag on a redeclaration — e2e 133's verbose_abort override now spells the namespaces by hand. The #782 repair: a held unserved-target diagnosis no longer skips the toolchain install. A declared or --target toolchain resolves and installs even when no payload here serves the target — a retargetable clang plus a graph package supplying the target's system is the arrangement the openkal rows exist for, and the skip fired before the graph release could run the moment the suite stopped installing the pinned version out of band (measured on the openkal macos leg, twice). When the install itself fails and the diagnosis stands, it releases there. e2e 890 pins the contract on the mac/windows legs. The e2e toolchain-version abstraction: tests/e2e/_toolchain_env.sh is the one place a test learns a toolchain version — override, newest installed, fallback constant, per family — and the llvm family's ~90 literals across 38 scripts now read it. The next line move edits one file here. _llvm_env.sh becomes an alias shim. Closes #780. Closed #669 (xcode-27 legs green on rerun). Files #782 as the remaining openkal macos regression this repair addresses.
8b3580d to
4d320fb
Compare
Add the ARM64 first-run pin, native GNU host row and runtime paths; preserve explicit musl and existing user defaults. Add cold payload admission, complete xcode-27 shards, respect MCPP_HOME and capture Windows compiler failure evidence. Prepare release 2026.10.8.1. Native ARM64 remains preview until the coordinated resources and client release pass the measured integration gates. Refs: #784, #783
Exercise standard modules, exceptions, threads, 16-byte atomics, a C shared-library consumer and relocated self-contained deployment. Record managed loader/header resolution, require native openkal execution and preserve fresh-install Windows failure diagnostics. Document the explicit compiler-and-target migration command and its publication prerequisites. Refs: #784
Summary
Move the LLVM line to 23.1.3 and make fresh Linux aarch64 installations select LLVM with the native GNU target. Architecture-specific managed glibc, headers and companion resources close the native host and development dependencies. Existing user settings and explicit musl targets remain available; Linux x86_64 retains GCC 16.1.0.
Host compiler dependencies and graph-supplied target runtimes remain independent. Native Linux ARM64 joins the existing Linux x86_64, macOS ARM64 and Windows x64 build hosts for openkal cross builds to Linux x86_64, Windows x64 and macOS ARM64. Target runners execute the exact produced artifacts without installing a compiler or C/C++ runtime.
Implementation and regressions
stdPCM and importers on consistent compiler-rt settings; suppress automatic unwinder selection when a self-contained ELF already links its static unwinder explicitly.Validation
Final source:
c6dca54e673c50a86edd109d5555c54743418f8f.Each one RANgate pass, including the MinGW positive control. The previous silent 43-minute preparation was cancelled rather than counted as successful; the intermediate unsupportedxlings runinvocation is corrected to the actual registered shim.The existing iOS reporter's informational
glibc(payload)label is documented as a reporting limitation, not an iOS glibc linkage claim. Matrix rejection rows remain explicit. Actual macOS products retain their platform libSystem dependency.Dependencies and release boundary
openxlings/xlings#647is merged; client v2026.10.8.1 is released and mirrored.openxlings/xim-pkgindex#938was reviewed and merged by the previously authorized bypass squash asdc8bf083; its final head had 20 successes, three conditional skips and no failures. Architecture-specific glibc revision 3 archives and the ARM LLVM resource closure are published. Full GLOBAL/CN bytes, sidecars and asset metadata match. The authenticated equal-tree squash provenance guard preserves native admission and archive checks.This PR is ready for the maintainer's review and merge decision. It remains unmerged; no mcpp release or tag has been created. After approval and merge, release from the actual squash commit, verify the formal mirrored engine and cold CN/SubOS ecosystem consumption, then review the automatic index update and bootstrap pin. LLVM
latestremains at 22.1.8 until released consumption satisfies SPEC-009 section 10.7. Source CI does not replace released acceptance.Part2 design and execution record record the decisions and evidence. The final Chinese review report is delivered locally under
.agents/docs/without another source push.Closes #780
Closes #783
Related: #784