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 | 9 | version 0.1.4: |
| 2 | 10 | |
| 3 | 11 | - more accurate VM86 emulation (can launch small DOS 16 bit |
| 4 | 12 | executables in wine). |
| 5 | 13 | - fixed push/pop fs/gs |
| 6 | 14 | - added iret instruction. |
| 15 | + - added times() syscall and SIOCATMARK ioctl. | |
| 7 | 16 | |
| 8 | 17 | version 0.1.3: |
| 9 | 18 | ... | ... |
Makefile
| ... | ... | @@ -13,14 +13,20 @@ OP_CFLAGS+= -falign-functions=0 |
| 13 | 13 | else |
| 14 | 14 | OP_CFLAGS+= -malign-functions=0 |
| 15 | 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 | 20 | endif |
| 17 | 21 | |
| 18 | 22 | ifeq ($(ARCH),ppc) |
| 19 | 23 | OP_CFLAGS=$(CFLAGS) |
| 24 | +LDFLAGS+=-Wl,-T,ppc.ld | |
| 20 | 25 | endif |
| 21 | 26 | |
| 22 | 27 | ifeq ($(ARCH),s390) |
| 23 | 28 | OP_CFLAGS=$(CFLAGS) |
| 29 | +LDFLAGS+=-Wl,-T,s390.ld | |
| 24 | 30 | endif |
| 25 | 31 | |
| 26 | 32 | ifeq ($(GCC_MAJOR),3) |
| ... | ... | @@ -31,7 +37,6 @@ endif |
| 31 | 37 | ######################################################### |
| 32 | 38 | |
| 33 | 39 | DEFINES+=-D_GNU_SOURCE |
| 34 | -LDSCRIPT=$(ARCH).ld | |
| 35 | 40 | LIBS+=-lm |
| 36 | 41 | |
| 37 | 42 | # profiling code |
| ... | ... | @@ -51,7 +56,7 @@ LIBOBJS+=i386-dis.o dis-buf.o |
| 51 | 56 | all: qemu qemu-doc.html |
| 52 | 57 | |
| 53 | 58 | qemu: $(OBJS) |
| 54 | - $(CC) -Wl,-T,$(LDSCRIPT) $(LDFLAGS) -o $@ $^ $(LIBS) | |
| 59 | + $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) | |
| 55 | 60 | |
| 56 | 61 | depend: $(SRCS) |
| 57 | 62 | $(CC) -MM $(CFLAGS) $^ 1>.depend |
| ... | ... | @@ -103,9 +108,9 @@ dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\ |
| 103 | 108 | Makefile elf.h linux_bin.h segment.h thunk.c\ |
| 104 | 109 | elfload.c main.c signal.c thunk.h\ |
| 105 | 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 | 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 | 114 | tests/Makefile\ |
| 110 | 115 | tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ |
| 111 | 116 | tests/test-i386-muldiv.h tests/test-i386-code16.S\ | ... | ... |
TODO
| 1 | 1 | - fix thread locks |
| 2 | -- fix thread stack liberation | |
| 3 | -- fix x86 stack allocation | |
| 4 | 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 | 6 | - more syscalls (in particular all 64 bit ones, IPCs, fix 64 bit |
| 6 | 7 | issues, fix 16 bit uid issues) |
| 7 | 8 | - finish signal handing (fp87 state, more siginfo conversions) |
| 8 | 9 | - verify thread support (clone() and various locks) |
| 9 | -- overrides/16bit for string ops | |
| 10 | 10 | - make it self runnable (use same trick as ld.so : include its own relocator and libc) |
| 11 | 11 | - fix FPU exceptions (in particular: gen_op_fpush not before mem load) | ... | ... |