fix(build): register current QEMU and compile pwru with clang - #2676
Merged
Conversation
The ADO pipeline builds the arm64 shell image under QEMU. gcc cc1 crashes there with an internal compiler error, so the pwru source build fails. clang compiles and links the same static binary under QEMU without a crash. Both architectures build with clang, so one compiler serves both. Signed-off-by: Quang Nguyen <28567936+nddq@users.noreply.github.com>
Quang Nguyen (nddq)
requested review from
Beegii Khurelsukh (BeegiiK) and
Yilin (xiaozhiche320)
August 21, 2026 19:15
Retina Code Coverage ReportTotal coverage no changeIncreased diff
|
The qemu-user-static make target registered multiarch/qemu-user-static, which ships a QEMU from 2022. Modern aarch64 binaries crash under it: gcc cc1 died with an internal compiler error, and after the clang switch, gawk segfaulted inside the libpcap configure. tonistiigi/binfmt ships a current QEMU and is what docker/setup-qemu-action uses, so the GitHub Actions builds never saw these crashes. Signed-off-by: Quang Nguyen <28567936+nddq@users.noreply.github.com>
Quang Nguyen (nddq)
requested review from
ibezrukavyi
and removed request for
Beegii Khurelsukh (BeegiiK) and
Yilin (xiaozhiche320)
August 24, 2026 16:01
ibezrukavyi
approved these changes
Aug 25, 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 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.
Description
The ADO pipeline builds the arm64 shell image on amd64 agents under QEMU. The pwru source build (#2675) runs real compilers inside that stage, and modern aarch64 binaries crash under the old QEMU: gcc
cc1died with an internal compiler error, and gawk segfaulted inside the libpcap configure. Every merge-queueCI (Build Images)run failed atBuild Retina Shell Images arm64.Two changes:
qemu-user-staticmake target registeredmultiarch/qemu-user-static, which ships a QEMU from 2022. It now registerstonistiigi/binfmt, which ships a current QEMU.docker/setup-qemu-actionuses the same image, so the GitHub Actions builds never saw these crashes.The org's hosted ADO pool offers no arm64 images, and the OneBranch arm64 pool rejects pipelines that do not extend the OneBranch governed template. Native ADO arm64 therefore needs a OneBranch migration, which stays out of scope.
Related Issue
N/A.
Checklist
git commit -S -s ...). See this documentation on signing commits.Screenshots (if applicable) or Testing Completed
tonistiigi/binfmt): the arm64 stage builds, and the startup check printspwru v1.0.12from the emulated binary. The extracted binary is a static ELF withgo1.26.7.Build Retina Shell Images arm64with both changes.Additional Notes
N/A.