Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
L
libtcg
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Anton
libtcg
Commits
1eb87257
Commit
1eb87257
authored
21 years ago
by
Fabrice Bellard
Browse files
Options
Downloads
Patches
Plain Diff
update
git-svn-id:
svn://svn.savannah.nongnu.org/qemu/trunk@97
c046a42c-6fe2-441c-8c8c-71466251a162
parent
32ce6337
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
Changelog
+5
-2
5 additions, 2 deletions
Changelog
Makefile
+7
-6
7 additions, 6 deletions
Makefile
README
+2
-2
2 additions, 2 deletions
README
VERSION
+1
-1
1 addition, 1 deletion
VERSION
configure
+1
-1
1 addition, 1 deletion
configure
qemu-doc.texi
+30
-5
30 additions, 5 deletions
qemu-doc.texi
with
46 additions
and
17 deletions
Changelog
+
5
−
2
View file @
1eb87257
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:
...
...
This diff is collapsed.
Click to expand it.
Makefile
+
7
−
6
View file @
1eb87257
...
...
@@ -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
...
...
@@ -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
)
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
README
+
2
−
2
View file @
1eb87257
...
...
@@ -6,7 +6,7 @@ INSTALLATION
Type
./configure
./configure
--interp-prefix=/usr/local/qemu-i386
make
to build qemu and libqemu.a.
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
VERSION
+
1
−
1
View file @
1eb87257
0.1.5
\ No newline at end of file
0.1.6
\ No newline at end of file
This diff is collapsed.
Click to expand it.
configure
+
1
−
1
View file @
1eb87257
...
...
@@ -271,4 +271,4 @@ else
echo
"config.h is unchanged"
fi
rm
-f
$TMPH
rm
-f
$TMPO
$TMPC
$TMPE
$TMPS
$TMPH
This diff is collapsed.
Click to expand it.
qemu-doc.texi
+
30
−
5
View file @
1eb87257
...
...
@@ -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.
...
...
@@ -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).
...
...
@@ -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
...
...
@@ -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)
...
...
@@ -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
...
...
@@ -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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment