Has anyone considered the possibility of emulating libc, rather than
emulating system calls? That's what em86 used to do for emulating i386
code on Alpha -- rather than letting it run a 'real' non-native libc and
then emulating only syscalls.
I appreciate that syscalls are a far more stable ABI to be emulating,
and there are far fewer structures to convert -- but wouldn't it be
faster to emulate the library itself? Especially if we can extend that
to emulate libX11 too :)
It's cute that I have i386 acroread running in a Mozilla window through
mozplugger. It'd be cuter if I could get Mozilla plugins running in the
_same_ process, rather than in a separate process.
----
Also, why do we do what we do in linux-user/path.c? What does it give us
that couldn't be achieved by stat("$prefix/$filename") in a trivial
path() function? Other than taking for ever to start up when
/usr/gnemul/i386-linux is actually an nfs-mounted root file system from
elsewhere. (When I say forever I mean that literally. We keep following
symlinks recursively).