qemu: Enable user_static builds for providing user mode emulation.#16664
Open
qemu: Enable user_static builds for providing user mode emulation.#16664
Conversation
jiria
reviewed
Apr 28, 2026
jiria
approved these changes
Apr 28, 2026
035ec95 to
322f5df
Compare
Contributor
harshitgupta1337
left a comment
There was a problem hiding this comment.
Looks good to me. Just a nit comment.
Signed-off-by: Sumedh Alok Sharma <sumsharma@microsoft.com>
Signed-off-by: Sumedh Alok Sharma <sumsharma@microsoft.com>
fa7a302 to
95ad3e1
Compare
Contributor
|
Buddy build after recent changes. |
kgodara912
requested changes
May 8, 2026
| %{nil} | ||
|
|
||
| %pretrans user-static | ||
| touch %{setbinfmtonce} |
Contributor
There was a problem hiding this comment.
The parent directory may not be available in some scenarios, for example in containers, should we try to create the directory first, mkdir -p to avoid file exists, and then touch the file so that file creation doesn't fail or we are not going to support containers altogether as PR description says?
Contributor
Author
There was a problem hiding this comment.
Yes, we should create it just in case.
This works in vm install since it is already created by initramfs.
I will make changes.
Signed-off-by: Sumedh Alok Sharma <sumsharma@microsoft.com>
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.
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
*-staticsubpackages, etc.) have had theirReleasetag incremented../cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json)./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)*.signatures.jsonfilessudo make go-tidy-allandsudo make go-test-coveragepassSummary
This PR introduces changes to enable user_static builds in qemu to build qemu-user-static* arch specific packages for providing user mode emulation. This enables support to run for ex aarch64 bins using qemu-user-static-aarch64 sub-package via binfmt-misc on x86_64 host. By default, the binfmt config is set with 'F = fix binary' flag to preload the interpreter binary to allow running non-native instructions inside the container environment.
The sub-package
qemu-user-binfmtalso provides binfmt config but they are dynamic interpreter configurations.For ex qemu-aarch64, the interpreter registered is "/usr/bin/qemu-aarch64" which is a dynamically linked shared object.
Also, the interpreter is registered without the F = fix binary flag.
We cannot use this package for container-based builds because:
Change Log
provide binfmt rules
Does this affect the toolchain?
NO
Associated issues
Links to CVEs
Test Methodology