Commit 27c75a9a906e4ae2b362a35501a88a3e70fe773e
1 parent
d0cd3b8d
update
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@85 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
22 additions
and
8 deletions
Changelog
| 1 | +version 0.1.5: | ||
| 2 | + | ||
| 3 | + - ppc64 support + personality() patch (Rusty Russell) | ||
| 4 | + - first Alpha CPU patches (Falk Hueffner) | ||
| 5 | + - removed bfd.h dependancy | ||
| 6 | + - fixed shrd, shld, idivl and divl on PowerPC. | ||
| 7 | + - fixed buggy glibc PowerPC rint() function (test-i386 passes now on PowerPC). | ||
| 8 | + | ||
| 1 | version 0.1.4: | 9 | version 0.1.4: |
| 2 | 10 | ||
| 3 | - more accurate VM86 emulation (can launch small DOS 16 bit | 11 | - more accurate VM86 emulation (can launch small DOS 16 bit |
| 4 | executables in wine). | 12 | executables in wine). |
| 5 | - fixed push/pop fs/gs | 13 | - fixed push/pop fs/gs |
| 6 | - added iret instruction. | 14 | - added iret instruction. |
| 15 | + - added times() syscall and SIOCATMARK ioctl. | ||
| 7 | 16 | ||
| 8 | version 0.1.3: | 17 | version 0.1.3: |
| 9 | 18 |
Makefile
| @@ -13,14 +13,20 @@ OP_CFLAGS+= -falign-functions=0 | @@ -13,14 +13,20 @@ OP_CFLAGS+= -falign-functions=0 | ||
| 13 | else | 13 | else |
| 14 | OP_CFLAGS+= -malign-functions=0 | 14 | OP_CFLAGS+= -malign-functions=0 |
| 15 | endif | 15 | endif |
| 16 | +# WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object | ||
| 17 | +# that the kernel ELF loader considers as an executable. I think this | ||
| 18 | +# is the simplest way to make it self virtualizable! | ||
| 19 | +LDFLAGS+=-Wl,-shared | ||
| 16 | endif | 20 | endif |
| 17 | 21 | ||
| 18 | ifeq ($(ARCH),ppc) | 22 | ifeq ($(ARCH),ppc) |
| 19 | OP_CFLAGS=$(CFLAGS) | 23 | OP_CFLAGS=$(CFLAGS) |
| 24 | +LDFLAGS+=-Wl,-T,ppc.ld | ||
| 20 | endif | 25 | endif |
| 21 | 26 | ||
| 22 | ifeq ($(ARCH),s390) | 27 | ifeq ($(ARCH),s390) |
| 23 | OP_CFLAGS=$(CFLAGS) | 28 | OP_CFLAGS=$(CFLAGS) |
| 29 | +LDFLAGS+=-Wl,-T,s390.ld | ||
| 24 | endif | 30 | endif |
| 25 | 31 | ||
| 26 | ifeq ($(GCC_MAJOR),3) | 32 | ifeq ($(GCC_MAJOR),3) |
| @@ -31,7 +37,6 @@ endif | @@ -31,7 +37,6 @@ endif | ||
| 31 | ######################################################### | 37 | ######################################################### |
| 32 | 38 | ||
| 33 | DEFINES+=-D_GNU_SOURCE | 39 | DEFINES+=-D_GNU_SOURCE |
| 34 | -LDSCRIPT=$(ARCH).ld | ||
| 35 | LIBS+=-lm | 40 | LIBS+=-lm |
| 36 | 41 | ||
| 37 | # profiling code | 42 | # profiling code |
| @@ -51,7 +56,7 @@ LIBOBJS+=i386-dis.o dis-buf.o | @@ -51,7 +56,7 @@ LIBOBJS+=i386-dis.o dis-buf.o | ||
| 51 | all: qemu qemu-doc.html | 56 | all: qemu qemu-doc.html |
| 52 | 57 | ||
| 53 | qemu: $(OBJS) | 58 | qemu: $(OBJS) |
| 54 | - $(CC) -Wl,-T,$(LDSCRIPT) $(LDFLAGS) -o $@ $^ $(LIBS) | 59 | + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) |
| 55 | 60 | ||
| 56 | depend: $(SRCS) | 61 | depend: $(SRCS) |
| 57 | $(CC) -MM $(CFLAGS) $^ 1>.depend | 62 | $(CC) -MM $(CFLAGS) $^ 1>.depend |
| @@ -103,9 +108,9 @@ dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\ | @@ -103,9 +108,9 @@ dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\ | ||
| 103 | Makefile elf.h linux_bin.h segment.h thunk.c\ | 108 | Makefile elf.h linux_bin.h segment.h thunk.c\ |
| 104 | elfload.c main.c signal.c thunk.h\ | 109 | elfload.c main.c signal.c thunk.h\ |
| 105 | cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\ | 110 | cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\ |
| 106 | -dis-asm.h gen-i386.h op-i386.h syscall.c\ | 111 | +dis-asm.h gen-i386.h syscall.c\ |
| 107 | dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\ | 112 | dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\ |
| 108 | -i386.ld ppc.ld s390.ld exec-i386.h exec-i386.c configure \ | 113 | +ppc.ld s390.ld exec-i386.h exec-i386.c configure \ |
| 109 | tests/Makefile\ | 114 | tests/Makefile\ |
| 110 | tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ | 115 | tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ |
| 111 | tests/test-i386-muldiv.h tests/test-i386-code16.S\ | 116 | tests/test-i386-muldiv.h tests/test-i386-code16.S\ |
TODO
| 1 | - fix thread locks | 1 | - fix thread locks |
| 2 | -- fix thread stack liberation | ||
| 3 | -- fix x86 stack allocation | ||
| 4 | - optimize translated cache chaining (DLL PLT-like system) | 2 | - optimize translated cache chaining (DLL PLT-like system) |
| 3 | +- fix thread stack liberation (use kernel 2.5.xxx CLONE_CHILD_CLEARTID) | ||
| 4 | +- fix x86 stack allocation | ||
| 5 | +- fix iret/lret restarting | ||
| 5 | - more syscalls (in particular all 64 bit ones, IPCs, fix 64 bit | 6 | - more syscalls (in particular all 64 bit ones, IPCs, fix 64 bit |
| 6 | issues, fix 16 bit uid issues) | 7 | issues, fix 16 bit uid issues) |
| 7 | - finish signal handing (fp87 state, more siginfo conversions) | 8 | - finish signal handing (fp87 state, more siginfo conversions) |
| 8 | - verify thread support (clone() and various locks) | 9 | - verify thread support (clone() and various locks) |
| 9 | -- overrides/16bit for string ops | ||
| 10 | - make it self runnable (use same trick as ld.so : include its own relocator and libc) | 10 | - make it self runnable (use same trick as ld.so : include its own relocator and libc) |
| 11 | - fix FPU exceptions (in particular: gen_op_fpush not before mem load) | 11 | - fix FPU exceptions (in particular: gen_op_fpush not before mem load) |