Repository navigation
Conversation
Needed by USE_BINARYBUILDER=0 builds (e.g. p7zip's .tar.xz sources), which so far ran in llvm_passes, where build-essential pulled them in.
Replace staticfloat/linux-gcc-toolchains' GCC 9.1 (release tarballs without a recipe) with GCCToolchain_jll (JuliaPackaging/Yggdrasil#14895): GCC 15.2.0 + binutils 2.45.1, the GCC CompilerSupportLibraries v1.5.7 is built with, with the same glibc floors (2.17, 2.19 on aarch64/armv7l) and kernel headers (5.15.14). The toolchain is pinned by a copy of the JLL's Artifacts.toml and downloaded and verified by Pkg. GCC 15's headers let clang build LLVM, and the toolchain now includes gfortran, so these images can also serve USE_BINARYBUILDER=0 and optimized builds. Copy the toolchain's runtime libraries over Debian's again (as #183 did before #267), since they are now newer than bookworm's.
staticfloat
approved these changes
Sep 23, 2026
staticfloat
approved these changes
Sep 23, 2026
This was referenced Sep 23, 2026
Merged
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.
This switches the toolchain of
package_linuxandpackage_linux_mmtkfrom GCC 9.1 (staticfloat/linux-gcc-toolchains, release tarballs without a recipe) to GCC 15.2 from the new GCCToolchain_jll (JuliaPackaging/Yggdrasil#14895, see there for the rationale):GCC 9's headers are too old for clang to build LLVM, which is why the source (
USE_BINARYBUILDER=0) and optimized builds of Julia run inllvm_passesand then require its glibc 2.36. With this,package_linuxcan serve those builds too, with the usual glibc floor.Changes:
install_gcc_toolchainpins the toolchain with a copy of the JLL'sArtifacts.toml, and lets Pkg download and verify the artifact for the image's architecture (instead of piping unchecksummed tarballs intotar), then copies it into/usr/local. To bump, copy theArtifacts.tomlof a newer JLL version (only together with CSL's GCC).libstdc++over the system-widelibstdc++. #183 did before Upgrade default debian release from bullseye to bookworm #267: they are now newer than bookworm's, and programs built during a build must run.xz-utilsandfile, which source builds need andllvm_passesgets throughbuild-essential.Tested locally:
install_gcc_toolchain(the code of this PR, with a stubbedsudo/chroot through bubblewrap) against copies of the v8.5package_linuximages of all five architectures (non-x86 through qemu-user), downloading from the JLL's release; and the artifact lookup on Julia 1.6. In the resulting x86_64 image, Julia's CI builds pass unchanged (x86_64-linux-gnuwith-Werror, result needs at mostGLIBC_2.17), and the source and optimized builds work too, given a few Julia build fixes that will come with moving them here.Nothing uses the new images until julia-buildkite is pointed at the release that includes this.