• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision1eb87257dae084166f0a007a9bfa8052e1784108 (tree)
Time2003-04-11 10:12:28
Authorbellard <bellard@c046...>
Commiterbellard

Log Message

update

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@97 c046a42c-6fe2-441c-8c8c-71466251a162

Change Summary

Incremental Difference

--- a/Changelog
+++ b/Changelog
@@ -1,8 +1,11 @@
11 version 0.1.6:
22
3+ - automatic library search system. QEMU can now work with unpatched
4+ ELF dynamic loader and libc (Rusty Russell).
35 - ISO C warning fixes (Alistair Strachan)
4- - first self-virtualizable version (works only as long as the icache
5- is not flushed)
6+ - first self-virtualizable version (works only as long as the
7+ translation cache is not flushed)
8+ - RH9 fixes
69
710 version 0.1.5:
811
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,7 @@ LDFLAGS+=-p
4545 main.o: CFLAGS+=-p
4646 endif
4747
48-OBJS= elfload.o main.o syscall.o signal.o
48+OBJS= elfload.o main.o syscall.o signal.o path.o
4949 SRCS:= $(OBJS:.o=.c)
5050 OBJS+= libqemu.a
5151
@@ -110,13 +110,14 @@ elfload.c main.c signal.c thunk.h\
110110 cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\
111111 dis-asm.h gen-i386.h syscall.c\
112112 dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\
113-ppc.ld s390.ld exec-i386.h exec-i386.c configure \
113+ppc.ld s390.ld exec-i386.h exec-i386.c path.c configure \
114114 tests/Makefile\
115115 tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\
116116 tests/test-i386-muldiv.h tests/test-i386-code16.S\
117117 tests/hello.c tests/hello tests/sha1.c \
118118 tests/testsig.c tests/testclone.c tests/testthread.c \
119119 tests/runcom.c tests/pi_10.com \
120+tests/test_path.c \
120121 qemu-doc.texi qemu-doc.html
121122
122123 FILE=qemu-$(VERSION)
@@ -132,10 +133,10 @@ tar:
132133 BINPATH=/usr/local/qemu-i386
133134
134135 tarbin:
135- tar zcvf /tmp/qemu-i386-glibc21.tar.gz \
136- $(BINPATH)/etc $(BINPATH)/lib $(BINPATH)/bin
137- tar zcvf /tmp/qemu-i386-wine.tar.gz \
138- $(BINPATH)/X11R6 $(BINPATH)/wine
136+ tar zcvf /tmp/qemu-$(VERSION)-i386-glibc21.tar.gz \
137+ $(BINPATH)/etc $(BINPATH)/lib $(BINPATH)/bin $(BINPATH)/usr
138+ tar zcvf /tmp/qemu-$(VERSION)-i386-wine.tar.gz \
139+ $(BINPATH)/wine
139140
140141 ifneq ($(wildcard .depend),)
141142 include .depend
--- a/README
+++ b/README
@@ -6,7 +6,7 @@ INSTALLATION
66
77 Type
88
9- ./configure
9+ ./configure --interp-prefix=/usr/local/qemu-i386
1010 make
1111
1212 to build qemu and libqemu.a.
@@ -23,7 +23,7 @@ libraries installed on your PC. For example:
2323 ./qemu -L / /bin/ls
2424
2525 * On non x86 CPUs, you need first to download at least an x86 glibc
26-(qemu-i386-glibc21.tar.gz on the qemu web page). Ensure that
26+(qemu-XXX-i386-glibc21.tar.gz on the qemu web page). Ensure that
2727 LD_LIBRARY_PATH is not set:
2828
2929 unset LD_LIBRARY_PATH
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
1-0.1.5
\ No newline at end of file
1+0.1.6
\ No newline at end of file
--- a/configure
+++ b/configure
@@ -271,4 +271,4 @@ else
271271 echo "config.h is unchanged"
272272 fi
273273
274-rm -f $TMPH
274+rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -36,6 +36,8 @@ User space LDT and GDT are emulated. VM86 mode is also supported
3636
3737 @item Accurate signal handling by remapping host signals to virtual x86 signals.
3838
39+@item QEMU can emulate itself on x86 (experimental).
40+
3941 @item The virtual x86 CPU is a library (@code{libqemu}) which can be used
4042 in other projects.
4143
@@ -50,9 +52,7 @@ Current QEMU Limitations:
5052
5153 @item Not all x86 exceptions are precise (yet). [Very few programs need that].
5254
53-@item Not self virtualizable (yet). [You cannot launch qemu with qemu on the same CPU].
54-
55-@item No support for self modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].
55+@item No support for self-modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].
5656
5757 @item No SSE/MMX support (yet).
5858
@@ -88,9 +88,14 @@ qemu -L / /bin/ls
8888 @code{-L /} tells that the x86 dynamic linker must be searched with a
8989 @file{/} prefix.
9090
91+@item Since QEMU is also a linux process, you can launch qemu with qemu:
92+
93+@example
94+qemu -L / qemu -L / /bin/ls
95+@end example
9196
9297 @item On non x86 CPUs, you need first to download at least an x86 glibc
93-(@file{qemu-i386-glibc21.tar.gz} on the QEMU web page). Ensure that
98+(@file{qemu-XXX-i386-glibc21.tar.gz} on the QEMU web page). Ensure that
9499 @code{LD_LIBRARY_PATH} is not set:
95100
96101 @example
@@ -107,6 +112,11 @@ QEMU is automatically launched by the Linux kernel when you try to
107112 launch x86 executables. It requires the @code{binfmt_misc} module in the
108113 Linux kernel.
109114
115+@item The x86 version of QEMU is also included. You can try weird things such as:
116+@example
117+qemu /usr/local/qemu-i386/bin/qemu-i386 /usr/local/qemu-i386/bin/ls-i386
118+@end example
119+
110120 @end itemize
111121
112122 @section Wine launch (Currently only tested when emulating x86 on x86)
@@ -122,7 +132,7 @@ qemu /usr/local/qemu-i386/bin/ls-i386
122132 @end example
123133
124134 @item Download the binary x86 Wine install
125-(@file{qemu-i386-wine.tar.gz} on the QEMU web page).
135+(@file{qemu-XXX-i386-wine.tar.gz} on the QEMU web page).
126136
127137 @item Configure Wine on your account. Look at the provided script
128138 @file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous
@@ -302,6 +312,21 @@ thread.
302312 The virtual x86 CPU atomic operations are emulated with a global lock so
303313 that their semantic is preserved.
304314
315+@section Self-virtualization
316+
317+QEMU was conceived so that ultimately it can emulate itself. Althought
318+it is not very useful, it is an important test to show the power of the
319+emulator.
320+
321+Achieving self-virtualization is not easy because there may be address
322+space conflicts. QEMU solves this problem by being an ELF shared object
323+as the ld-linux.so ELF interpreter. That way, it can be relocated at
324+load time.
325+
326+Since self-modifying code is not supported yet, QEMU cannot self
327+virtualize itself in case of translation cache flush. This limitation
328+will be suppressed soon.
329+
305330 @section Bibliography
306331
307332 @table @asis