Conversation
metux
added a commit
that referenced
this pull request
Aug 6, 2026
…EMU user-mode The compiler.h arch-specific inline-asm branches (__alpha__, __sparc__, __arm32__, __mips__, __powerpc__) were never compiled by the x86_64-host lanes, which is why the missing-" trailing ;" bugs in PR #3484/#3485 went unnoticed. Add a matrix lane (ppc64el/armhf/mipsel/sparc64/alpha) that runs the *real* target-arch gcc under QEMU user-mode emulation. Approach (no cross toolchain): - debootstrap a foreign-arch Debian rootfs (--foreign + --second-stage) - run qemu-<arch>-static as the ELF interpreter via binfmt_misc - build natively inside the chroot; arch-specific asm is genuinely assembled - apt installs the target-arch X11 -dev deps (no hand-built cross prereqs) Official Debian ports (ppc64el/armhf/mipsel) use bookworm + deb.debian.org; sparc64/alpha live in debian-ports (unstable). qemu-user-static, binfmt-support, debootstrap and the ports keyring come from apt. Files: - .github/scripts/qemu/run-qemu-build.sh (generic driver, host + chroot side) - .github/workflows/build-xserver.yml (xserver-build-qemu-user matrix job) PR: #3491
metux
force-pushed
the
pr/master-ci-native-build-lanes-for-foreign-cpu-architectures-via-qemu-user-mode_2026-08-06_13-50-15
branch
from
August 6, 2026 11:54
1d9b93f to
f0dcd99
Compare
Contributor
|
@metux I guess it's better that nothing, but we can't assume that what happens in qemu also happens on bare metal. |
metux
force-pushed
the
pr/master-ci-native-build-lanes-for-foreign-cpu-architectures-via-qemu-user-mode_2026-08-06_13-50-15
branch
from
August 6, 2026 12:23
f0dcd99 to
2ebe1e4
Compare
metux
added a commit
that referenced
this pull request
Aug 6, 2026
…EMU user-mode The compiler.h arch-specific inline-asm branches (__alpha__, __sparc__, __arm32__, __mips__, __powerpc__) were never compiled by the x86_64-host lanes, which is why the missing-" trailing ;" bugs in PR #3484/#3485 went unnoticed. Add a matrix lane (ppc64el/armhf/mipsel/sparc64/alpha) that runs the *real* target-arch gcc under QEMU user-mode emulation. Approach (no cross toolchain): - debootstrap a foreign-arch Debian rootfs (--foreign + --second-stage) - run qemu-<arch>-static as the ELF interpreter via binfmt_misc - build natively inside the chroot; arch-specific asm is genuinely assembled - apt installs the target-arch X11 -dev deps (no hand-built cross prereqs) Official Debian ports (ppc64el/armhf/mipsel) use bookworm + deb.debian.org; sparc64/alpha live in debian-ports (unstable). qemu-user-static, binfmt-support, debootstrap and the ports keyring come from apt. Files: - .github/scripts/qemu/run-qemu-build.sh (generic driver, host + chroot side) - .github/workflows/build-xserver.yml (xserver-build-qemu-user matrix job) PR: #3491
metux
force-pushed
the
pr/master-ci-native-build-lanes-for-foreign-cpu-architectures-via-qemu-user-mode_2026-08-06_13-50-15
branch
2 times, most recently
from
August 7, 2026 12:10
27d8a2e to
2f0ee12
Compare
Contributor
Author
sure, but at least can do build tests. runtime-tests would probably limited to simple framebuffer / vga. |
metux
force-pushed
the
pr/master-ci-native-build-lanes-for-foreign-cpu-architectures-via-qemu-user-mode_2026-08-06_13-50-15
branch
6 times, most recently
from
August 8, 2026 12:06
9f6a078 to
4b06d1e
Compare
Add CI build lanes for ppc64el, armhf, mipsel (Debian bookworm) and sparc64, alpha (Debian-ports unstable) using QEMU user-mode emulation with debootstrap rootfs. The lanes run the real target-architecture gcc under qemu-user-static, so arch-specific inline asm (include/compiler.h, include/xlibre_membarrier.h) is genuinely compiled and tested — the x86_64-host lanes never exercise these code paths (the __asm__ "missing trailing ;" bugs in PR #3484/#3485 were invisible to every existing lane). Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
metux
force-pushed
the
pr/master-ci-native-build-lanes-for-foreign-cpu-architectures-via-qemu-user-mode_2026-08-06_13-50-15
branch
from
August 8, 2026 12:09
4b06d1e to
ccce890
Compare
metux
deleted the
pr/master-ci-native-build-lanes-for-foreign-cpu-architectures-via-qemu-user-mode_2026-08-06_13-50-15
branch
August 8, 2026 15:30
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.
The compiler.h arch-specific inline-asm branches (alpha, sparc,
arm32, mips, powerpc) were never compiled by the x86_64-host
lanes, which is why the missing-" trailing ;" bugs in PR #3484/#3485 went
unnoticed. Add a matrix lane (ppc64el/armhf/mipsel/sparc64/alpha) that runs
the real target-arch gcc under QEMU user-mode emulation.
Approach (no cross toolchain):
Official Debian ports (ppc64el/armhf/mipsel) use bookworm + deb.debian.org;
sparc64/alpha live in debian-ports (unstable). qemu-user-static,
binfmt-support, debootstrap and the ports keyring come from apt.
Files: