Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@97 c046a42c-6fe2-441c-8c8c-71466251a162
  • Loading branch information
bellard committed Apr 11, 2003
1 parent 32ce633 commit 1eb8725
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 17 deletions.
7 changes: 5 additions & 2 deletions Changelog
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
version 0.1.6:

- automatic library search system. QEMU can now work with unpatched
ELF dynamic loader and libc (Rusty Russell).
- ISO C warning fixes (Alistair Strachan)
- first self-virtualizable version (works only as long as the icache
is not flushed)
- first self-virtualizable version (works only as long as the
translation cache is not flushed)
- RH9 fixes

version 0.1.5:

Expand Down
13 changes: 7 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ LDFLAGS+=-p
main.o: CFLAGS+=-p
endif

OBJS= elfload.o main.o syscall.o signal.o
OBJS= elfload.o main.o syscall.o signal.o path.o
SRCS:= $(OBJS:.o=.c)
OBJS+= libqemu.a

Expand Down Expand Up @@ -110,13 +110,14 @@ elfload.c main.c signal.c thunk.h\
cpu-i386.h qemu.h op-i386.c opc-i386.h syscall-i386.h translate-i386.c\
dis-asm.h gen-i386.h syscall.c\
dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\
ppc.ld s390.ld exec-i386.h exec-i386.c configure \
ppc.ld s390.ld exec-i386.h exec-i386.c path.c configure \
tests/Makefile\
tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\
tests/test-i386-muldiv.h tests/test-i386-code16.S\
tests/hello.c tests/hello tests/sha1.c \
tests/testsig.c tests/testclone.c tests/testthread.c \
tests/runcom.c tests/pi_10.com \
tests/test_path.c \
qemu-doc.texi qemu-doc.html

FILE=qemu-$(VERSION)
Expand All @@ -132,10 +133,10 @@ tar:
BINPATH=/usr/local/qemu-i386

tarbin:
tar zcvf /tmp/qemu-i386-glibc21.tar.gz \
$(BINPATH)/etc $(BINPATH)/lib $(BINPATH)/bin
tar zcvf /tmp/qemu-i386-wine.tar.gz \
$(BINPATH)/X11R6 $(BINPATH)/wine
tar zcvf /tmp/qemu-$(VERSION)-i386-glibc21.tar.gz \
$(BINPATH)/etc $(BINPATH)/lib $(BINPATH)/bin $(BINPATH)/usr
tar zcvf /tmp/qemu-$(VERSION)-i386-wine.tar.gz \
$(BINPATH)/wine

ifneq ($(wildcard .depend),)
include .depend
Expand Down
4 changes: 2 additions & 2 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ INSTALLATION

Type

./configure
./configure --interp-prefix=/usr/local/qemu-i386
make

to build qemu and libqemu.a.
Expand All @@ -23,7 +23,7 @@ libraries installed on your PC. For example:
./qemu -L / /bin/ls

* On non x86 CPUs, you need first to download at least an x86 glibc
(qemu-i386-glibc21.tar.gz on the qemu web page). Ensure that
(qemu-XXX-i386-glibc21.tar.gz on the qemu web page). Ensure that
LD_LIBRARY_PATH is not set:

unset LD_LIBRARY_PATH
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.5
0.1.6
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -271,4 +271,4 @@ else
echo "config.h is unchanged"
fi

rm -f $TMPH
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH
35 changes: 30 additions & 5 deletions qemu-doc.texi
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ User space LDT and GDT are emulated. VM86 mode is also supported

@item Accurate signal handling by remapping host signals to virtual x86 signals.

@item QEMU can emulate itself on x86 (experimental).

@item The virtual x86 CPU is a library (@code{libqemu}) which can be used
in other projects.

Expand All @@ -50,9 +52,7 @@ Current QEMU Limitations:

@item Not all x86 exceptions are precise (yet). [Very few programs need that].

@item Not self virtualizable (yet). [You cannot launch qemu with qemu on the same CPU].

@item No support for self modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].
@item No support for self-modifying code (yet). [Very few programs need that, a notable exception is QEMU itself !].

@item No SSE/MMX support (yet).

Expand Down Expand Up @@ -88,9 +88,14 @@ qemu -L / /bin/ls
@code{-L /} tells that the x86 dynamic linker must be searched with a
@file{/} prefix.

@item Since QEMU is also a linux process, you can launch qemu with qemu:

@example
qemu -L / qemu -L / /bin/ls
@end example

@item On non x86 CPUs, you need first to download at least an x86 glibc
(@file{qemu-i386-glibc21.tar.gz} on the QEMU web page). Ensure that
(@file{qemu-XXX-i386-glibc21.tar.gz} on the QEMU web page). Ensure that
@code{LD_LIBRARY_PATH} is not set:

@example
Expand All @@ -107,6 +112,11 @@ QEMU is automatically launched by the Linux kernel when you try to
launch x86 executables. It requires the @code{binfmt_misc} module in the
Linux kernel.

@item The x86 version of QEMU is also included. You can try weird things such as:
@example
qemu /usr/local/qemu-i386/bin/qemu-i386 /usr/local/qemu-i386/bin/ls-i386
@end example

@end itemize

@section Wine launch (Currently only tested when emulating x86 on x86)
Expand All @@ -122,7 +132,7 @@ qemu /usr/local/qemu-i386/bin/ls-i386
@end example

@item Download the binary x86 Wine install
(@file{qemu-i386-wine.tar.gz} on the QEMU web page).
(@file{qemu-XXX-i386-wine.tar.gz} on the QEMU web page).

@item Configure Wine on your account. Look at the provided script
@file{/usr/local/qemu-i386/bin/wine-conf.sh}. Your previous
Expand Down Expand Up @@ -302,6 +312,21 @@ thread.
The virtual x86 CPU atomic operations are emulated with a global lock so
that their semantic is preserved.

@section Self-virtualization

QEMU was conceived so that ultimately it can emulate itself. Althought
it is not very useful, it is an important test to show the power of the
emulator.

Achieving self-virtualization is not easy because there may be address
space conflicts. QEMU solves this problem by being an ELF shared object
as the ld-linux.so ELF interpreter. That way, it can be relocated at
load time.

Since self-modifying code is not supported yet, QEMU cannot self
virtualize itself in case of translation cache flush. This limitation
will be suppressed soon.

@section Bibliography

@table @asis
Expand Down

0 comments on commit 1eb8725

Please sign in to comment.