Skip to content

2026.10.16.3: a configured toolchain for the host's own target is kept; gcc for a glibc target is the glibc payload on aarch64 - #813

Merged
Sunrisepeak merged 1 commit into
mainfrom
fix/configured-native-pair
Oct 16, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
fix/configured-native-pair

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Summary

Inside a Luban system on aarch64, /etc/mcpp/config.toml names gcc@16.1.0 on aarch64-linux-gnu, the system's own gcc. The first mcpp build still downloaded llvm 23.1.3 (266 MB) and did not use the system's gcc (xim-pkgindex#986, editions CI on ubuntu-24.04-arm: target default for aarch64-linux-gnu, replacing your gcc@16.1.0). There were two causes, and both are fixed:

  • The row convention replaced a configured pair for the host's own target. [toolchain] default together with a default_target equal to the host triple is now kept (configured_native_pair, in prepare.cppm). A cross target keeps the rule recorded at tc_origin_is_user_explicit (the measured windows-gnu regression), and a capability pin still applies.
  • gcc for a glibc target resolved to musl-gcc on aarch64. gcc_native_payload_is_musl now returns the glibc payload for a target that names gnu. xim:gcc has published aarch64 since 16.1.0, and it is the gcc a Luban system has. With no target, aarch64 still uses musl-gcc.

Version 2026.10.16.3, with a CHANGELOG entry. The bundled xlings stays at 2026.10.16.2.

Test

  • Unit:
    • new LinuxDefaults.AConfiguredPairForTheHostsOwnTargetKeepsItsToolchain (native pair kept; --target, mcpp's first-run guess and a cross target are not kept);
    • ToolchainRegistry.NativeGccPayloadFollowsWhatTheArchActuallyPublishes updated (an aarch64 gnu target uses glibc gcc, a musl target and no target use musl-gcc).
  • After the release, the end-to-end check is xim-pkgindex#986's arm editions job: inside core, mcpp builds with the system's gcc.

Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com

…t; gcc for a glibc target is the glibc payload on aarch64

In a Luban system on aarch64, /etc/mcpp/config.toml names gcc@16.1.0 on
aarch64-linux-gnu (the system's own gcc). The aarch64-linux-gnu row's
llvm convention replaced it, and a first build downloaded llvm
(xim-pkgindex#986, editions CI on arm). A pair the configuration states
for the host's own triple is now kept (`configured_native_pair`); a cross
target keeps the rule `tc_origin_is_user_explicit` records, and a
capability pin still applies. `gcc_native_payload_is_musl` answers a
target that names glibc with the glibc payload, which xim:gcc publishes
for aarch64 since 16.1.0.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit f481614 into main Oct 16, 2026
62 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant