Skip to content

feat(aarch64): default to musl-static toolchain on non-x86 Linux#148

Merged
Sunrisepeak merged 1 commit into
mainfrom
feat/aarch64-default-musl
Jun 22, 2026
Merged

feat(aarch64): default to musl-static toolchain on non-x86 Linux#148
Sunrisepeak merged 1 commit into
mainfrom
feat/aarch64-default-musl

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Makes bare mcpp build work out-of-the-box on aarch64. Previously the glibc default (gcc@16.1.0 + glibc + linux-headers) 404'd on aarch64 (no glibc toolchain published). On non-x86_64 Linux, default to gcc@15.1.0-musl — published, self-contained, portable static (ideal for aarch64/Termux). x86_64 unchanged.

Found by the native fresh-install run: install loop worked, bare build hit the glibc 404. Also updates that CI to self-host mcpp+xlings via --target aarch64-linux-musl.

Bare `mcpp build` (new project, no [toolchain]) on aarch64 tried to install
the glibc default gcc@16.1.0 + glibc + linux-headers, which have no aarch64
assets (HTTP 404). On non-x86_64 Linux, default to gcc@15.1.0-musl instead:
it's published for aarch64, self-contained (skip glibc/linux-headers deps),
and yields portable static binaries (ideal for aarch64/Termux). x86_64 keeps
the glibc default. Seeds the host triple so the <host>-linux-musl-g++ frontend
resolves for the no---target default.

Also: fresh-install CI self-hosts mcpp AND xlings via --target aarch64-linux-musl
(their manifests pin a glibc default).
@Sunrisepeak Sunrisepeak merged commit 6d36479 into main Jun 22, 2026
4 checks passed
@Sunrisepeak Sunrisepeak deleted the feat/aarch64-default-musl branch June 22, 2026 20:20
Sunrisepeak added a commit that referenced this pull request Jun 23, 2026
…mcpp, then it cross-builds aarch64

The published bootstrap mcpp (0.0.58) predates aarch64 cross-build support
(#146/#148), so 'mcpp build --target aarch64-linux-musl' resolved the x86_64
host musl-gcc and produced no aarch64 binary. Build this release's x86_64 mcpp
first (it has the feature), then cross-build aarch64 with it. Verified locally:
fresh 0.0.59 resolves aarch64-linux-musl-gcc and emits an ARM aarch64 static ELF.
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.

2 participants