This repository was archived by the owner on Sep 20, 2026. It is now read-only.
feat: add Linux UAPI and glibc sysroot formulas - #528
Closed
MeteorsLiu wants to merge 1 commit into
Closed
MeteorsLiu wants to merge 1 commit into
MeteorsLiu wants to merge 1 commit into
Conversation
This was referenced Sep 10, 2026
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Add source-built Linux UAPI and glibc formulas for an old-libc/new-headers sysroot, plus the requested empty macOS SDK formula.
The implementation includes:
torvalds/linuxto export UAPI headers with the selectedARCHandLLVM=1, starting at Linuxv5.7, where Kbuild introduced LLVM selection for both host and target tools.bminor/glibcfromglibc-2.27, depending ontorvalds/linux@v7.2, using the exported UAPI directory for configuration and merging those headers into its staged installation. Preserve glibc's default minimum runtime kernel instead of raising it to the headers version.install_root, and use the verified--disable-werrorand-fcommonsettings needed with GCC 13. Install development libraries in/usr/liband publish--sysrootmetadata.joseluisq/macosx-sdksformula from14.5; no SDK is downloaded or built. Its actual payload and metadata will be provided through Kodo separately.Validation against LLAR
bd473ea21632d57a4ed21e54144a55d0ee6c1872: all three formulas compile through LLAR's ixgo loader; Linuxv5.7andv7.2pass fresh-build and cache-hit consumer checks for amd64 and arm64 using an amd64-hosted LLAR Builder; glibc2.27passes a full LLAR Builder run and cache-hit consumer check on arm64. Separate GCC 13 builds with the current stable Linux7.2.4headers pass build, installation, and installed-loader consumers on amd64 and arm64. The resulting GNU ABI notes retain Linux3.2.0and3.7.0, respectively; those old kernel releases were not boot-tested.An additional arm64 consumer built with Clang/LLD 19 passes when supplied with matching GCC 7.3 target runtime files from Bootlin. No prebuilt glibc was used in the source-build validation. The host GCC 13
libgcc_srequiresGLIBC_2.34/2.35and cannot simply be reused for a 2.27 ABI baseline.Draft integration constraints: unmodified glibc 2.27 rejects Clang 19 in its compiler check, so its source build needs GNU bootstrap tools. LLAR's built-in default still requests
glibc-2.24; this PR does not change that default or LLAR's bootstrap orchestration. GNU build prerequisites such asgawkandbison, and the Linux-only CI selection for these formulas, are not added to shared workflow/image configuration here. Existing CI selects the greatest upstream tag when tags exist and runs the full platform matrix, so it does not replace the explicit 2.27 validation above. Later glibc versions in the formula range have not been validated in this change.Reference: Bootlin's glibc staging, glibc 2.27 kernel-header checks, and Linux 5.7 Kbuild.
This establishes the source recipes and their verified libc/UAPI boundary while keeping compiler-runtime provisioning and prebuilt SDK publication explicit.