Skip to content

State what emulation cannot show, because it looks exactly like a defect - #29

Merged
Sunrisepeak merged 1 commit into
mainfrom
emulation-cannot-start-a-foreign-copy
Aug 31, 2026
Merged

State what emulation cannot show, because it looks exactly like a defect#29
Sunrisepeak merged 1 commit into
mainfrom
emulation-cannot-start-a-foreign-copy

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

An aarch64 build measured on an x86_64 machine through qemu-user holds every
observation except the ones that START a program of the same foreign
architecture. The kernel runs a native binary directly and the emulated process
stops being emulated; a foreign one has to be re-entered through binfmt_misc
from inside an already-emulated process, which qemu-user does not do.

⚠️ Recorded because the shape is indistinguishable from a real failure:
execveat answers ENOENT for a path that exists, while the same call in the
same run starts /bin/sh correctly. Two things establish that it is the emulator:
the release BEFORE this one fails identically, and a consumer's 108 tests ---
which start helper programs rather than copies of themselves --- pass on both
architectures.

An aarch64 build measured on an x86_64 machine through qemu-user holds every
observation except the ones that START a program of the same foreign
architecture. The kernel runs a native binary directly and the emulated process
stops being emulated; a foreign one has to be re-entered through binfmt_misc
from inside an already-emulated process, which qemu-user does not do.

⚠️ Recorded because the shape is indistinguishable from a real failure:
`execveat` answers ENOENT for a path that exists, while the same call in the
same run starts /bin/sh correctly. Two things establish that it is the emulator:
the release BEFORE this one fails identically, and a consumer's 108 tests ---
which start helper programs rather than copies of themselves --- pass on both
architectures.
@Sunrisepeak
Sunrisepeak merged commit 84d2dae into main Aug 31, 2026
6 checks passed
@Sunrisepeak
Sunrisepeak deleted the emulation-cannot-start-a-foreign-copy branch August 31, 2026 02:02
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