Option to constrain linux-user exec() to emulated CPU only

This bug has been copied automatically from: https://bugs.launchpad.net/qemu/+bug/1912107
Reported by 'Mingye Wang' on 2021-01-17 :

When trying to reproduce a bug someone reported on an actual AMD K10[1],
​I tried to directly throw `qemu_x86-64 -cpu
​phenom path/to/wrongly-labelled-instruction-set/gcc 1.c` at the problem,
but failed to get an "illegal instruction" as expected. A quick
investigation reveals that the error is actually caused by one of gcc's
child processess, and that the said process is being ran directly on the
host. A similar problem happens with trying to call stuff with
/usr/bin/env.

 ​[1]: https://github.com/Homebrew/brew/issues/1034

Since both the host and the guest are x86_64, I deemed binfmt inapplicable
to my case. I believe that QEMU should offer a way to modify exec() and
other spawning syscalls so that execution remains on an emulated CPU in
such a case. Call it an extra layer of binfmt, if you must.
Assignee Loading
Time tracking Loading