Hi Fabrice,
The first release of the QEMU x86 emulator is available at http://bellard.org/qemu/. QEMU achieves a fast user space Linux x86 emulation on x86 and PowerPC Linux hosts by using dynamic translation. Its main goal is to be able to run the Wine project on non-x86 architectures.
Using gcc to generate code snippets is a *great* idea! This makes it really easy to port; I've already got it running on s390 ...
A couple of minor observations:
- What do you need the linker scripts for? Is it only to choose a non-standard offset? If so, I guess it would be less error- prone to use the currently installed scripts ('ld --verbose') and just change the offset using sed or so ...
- The test-i386 case gives differing results (even on i386) for several sh[lr]dw cases and for sin(2.0) ...
- syscall.c would refuse to build due to prototype mismatch; this patch fixes it:
diff -urN qemu-0.1/syscall.c qemu-0.1-s390/syscall.c --- qemu-0.1/syscall.c 2003-03-23 21:18:13.000000000 +0100 +++ qemu-0.1-s390/syscall.c 2003-03-24 22:27:41.000000000 +0100 @@ -103,10 +103,10 @@ extern int flock(int, int); extern int setfsuid(int); extern int setfsgid(int); -extern int setresuid(int,int,int); -extern int getresuid(int *,int *,int *); -extern int setresgid(int,int,int); -extern int getresgid(int *,int *,int *); +extern int setresuid(uid_t, uid_t, uid_t); +extern int getresuid(uid_t *, uid_t *, uid_t *); +extern int setresgid(gid_t, gid_t, gid_t); +extern int getresgid(gid_t *, gid_t *, gid_t *);
static inline long get_errno(long ret) {
B.t.w are shared libraries supposed to work already?
Thanks, Ulrich