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) | ... | ... |