re: x86 make and shell, it probably won’t work well here because once a process tree goes to x86 land, qemu cannot see it and it can’t “natively” run an arm binary.
Essentially we can only hook execve when emulating - when we run a native binary we no longer have any insight into any execve call it may make. (Though with some additional work I suppose one could also use LD_PRELOAD to hook execve)
This is why binfmt_misc and registering the interpreter with the kernel would be superior, if not for kernel level access requirement
It looks like maybe you've made some local patches to QEMU that relate to execve?
https://wiki.debian.org/CrossCompiling http://crossqa.debian.net/