[announce] QEMU x86 emulator version 0.1
Fabrice Bellard
fabrice.bellard at free.fr
Mon Mar 24 17:26:54 CST 2003
Ulrich Weigand wrote:
> 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 ...
Yes, it is just to change the binary base address. My futur plan is to
build an "executable shared library" like ld.so and to relocate it
dynamically as soon as I know where the ELF file wants to be mapped.
> - The test-i386 case gives differing results (even on i386)
> for several sh[lr]dw cases and for sin(2.0) ...
For sh[lr]dw I discovered yesterday it is *really* CPU dependent as
mentionned in the intel doc if the shift is >= 16 (I am using a K6).
Strange 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)
> {
>
OK.
> B.t.w are shared libraries supposed to work already?
Yes. A new version is at http://bellard.org/qemu. I provided a binary
install for glibc and wine. I tested /bin/ls succesfully on PowerPC with
dynamic linking. On i386, wine works for some command line windows
programms, but it terminates with a segfault...
Fabrice.
More information about the wine-devel
mailing list