adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Kirill A. Shutemov fe3b415231 linux-user: Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets
qemu's page table can be incomple if /proc/self/maps is unavailable or
host allocating a memory with mmap(), so we can't use it to find free
memory area.

New version mmap_find_vma() uses mmap() without MAP_FIXED to find free
memory.

Tested-by: Martin Mohring <martin.mohring@opensuse.org> :

quite some time ago this patch had been sent by Kirill to the QEMU ml.
At that time, the patch was rejected. Now we found out why the current
user mode memory allocator sometimes fails:

- Kernel Bug  linux/fs/proc/task_mmu.c (fixed after 2.6.27)
http://bugzilla.kernel.org/attachment.cgi?id=17219
- use of proc file system to find memory mappings => bad idea

So I please apply the attached patch from Kirill to qemu to fix this
longstanding bug, because it causes all older linux distros (using
kernel 2.6.26 or older) to fail the QEMU memory allocator in user mode.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
2009-08-25 17:15:35 +03:00
audio Fix typo 2009-08-12 23:11:44 +04:00
block eliminate errors about unused results in block/vpc.c 2009-08-24 08:46:48 -05:00
bsd-user bsd-user: Add generic env variable handling 2009-08-15 10:35:42 +00:00
darwin-user Replace local ADDRX/PADDRX macros with TARGET_FMT_lx/plx 2009-08-16 11:13:18 +00:00
fpu rename NEEDS_LIBSUNMATH to CONFIG_NEEDS_LIBSUNMATH 2009-07-27 14:10:55 -05:00
gdb-xml gdb-xml: fix hacks in powerpc register numbering 2009-07-12 23:42:05 +02:00
hw Make the e1000 the default network adapter for the pc target. 2009-08-24 08:46:48 -05:00
linux-user linux-user: Rewrite mmap_find_vma() to work fine on 64-bit hosts with 32-bit targets 2009-08-25 17:15:35 +03:00
pc-bios Rename CPPFLAGS to QEMU_CFLAGS 2009-08-10 13:05:39 -05:00
slirp Add missing "static" 2009-08-01 10:13:43 +00:00
target-alpha cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-arm cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-cris cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-i386 cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-m68k cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-microblaze cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-mips cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-ppc cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-sh4 cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
target-sparc cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
tcg ARM back-end: Fix encode_imm 2009-08-25 01:14:14 +02:00
tests Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
.gitignore multiboot.bin is a generated file 2009-07-27 14:10:55 -05:00
CODING_STYLE
COPYING
COPYING.LIB
Changelog
LICENSE
MAINTAINERS Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
Makefile make pthreads mandatory 2009-08-24 08:46:47 -05:00
Makefile.hw qemu: move virtio-pci.o to near pci.o 2009-08-24 08:46:47 -05:00
Makefile.target qemu: move virtio-pci.o to near pci.o 2009-08-24 08:46:47 -05:00
README
TODO
VERSION Update version for 0.11 development 2009-07-16 18:12:18 -05:00
a.out.h
acl.c rename HAVE_FNMATCH_H to CONFIG_FNMATCH 2009-07-27 14:09:20 -05:00
acl.h
aes.c Include assert.h from qemu-common.h 2009-05-13 20:54:26 +01:00
aes.h
aio.c Handle BH's queued by AIO completions in qemu_aio_flush() 2009-07-22 10:58:46 -05:00
alpha-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
alpha.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
arm-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
arm-semi.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
arm.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
balloon.h
block.c rename HOST_BSD to CONFIG_BSD 2009-07-27 14:09:20 -05:00
block.h replace bdrv_{get, put}_buffer with bdrv_{load, save}_vmstate 2009-07-16 08:28:13 -05:00
block_int.h replace bdrv_{get, put}_buffer with bdrv_{load, save}_vmstate 2009-07-16 08:28:13 -05:00
bswap.h rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
bt-host.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
bt-host.h
bt-vhci.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
buffered_file.c Fix most warnings (errors with -Werror) when debugging is enabled 2009-07-20 17:19:25 +00:00
buffered_file.h
cache-utils.c
cache-utils.h
cmd.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
cmd.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
cocoa.m
configure linux-user: add eventfd support 2009-08-25 17:15:26 +03:00
console.c rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
console.h sdl zooming 2009-06-29 08:52:44 -05:00
cpu-all.h Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
cpu-common.h Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
cpu-defs.h rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
cpu-exec.c cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal 2009-08-24 08:21:42 -05:00
create_config We also need TARGET_<arechname> in Makefiles 2009-08-10 13:05:46 -05:00
cris-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
curses.c Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
curses_keys.h Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
cutils.c Revert "support colon in filenames" 2009-07-09 16:06:38 -05:00
d3des.c
d3des.h
def-helper.h def-helper.h allow helpers returning pointers 2009-08-22 17:23:55 +00:00
device_tree.c Remove unused variable 2009-05-24 21:24:33 +01:00
device_tree.h
dis-asm.h microblaze: Add disassembler. 2009-05-26 21:10:28 +02:00
disas.c rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
disas.h
dma-helpers.c fully split aio_pool from BlockDriver 2009-05-27 09:46:03 -05:00
dma.h fully split aio_pool from BlockDriver 2009-05-27 09:46:03 -05:00
dyngen-exec.h rename HOST_BSD to CONFIG_BSD 2009-07-27 14:09:20 -05:00
elf.h Avoid name clashes with symbols that leak from system headers 2009-07-18 13:16:51 +04:00
elf_ops.h Fix symfind. 2009-08-10 13:05:25 -05:00
envlist.c linux-user: compile envlist.c only once 2009-08-15 08:47:42 +00:00
envlist.h linux-user: compile envlist.c only once 2009-08-15 08:47:42 +00:00
exec-all.h Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
exec.c Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
feature_to_c.sh Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
gdbstub.c rename USE_NPTL to CONFIG_USE_NPTL 2009-07-27 14:10:55 -05:00
gdbstub.h
gen-icount.h
host-utils.c user: compile host-utils.c only once 2009-08-16 08:03:26 +00:00
host-utils.h user: compile host-utils.c only once 2009-08-16 08:03:26 +00:00
hostregs_helper.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
hpet.h
hppa-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
hppa.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
hxtool Fix hxtool. 2009-07-02 17:54:34 +00:00
i386-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
i386.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
ia64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
ioport-user.c ioport: use uint{32, 16, 8}_t for ioport value and pio_addr_t for ioport address. 2009-07-16 17:28:50 -05:00
ioport.c Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
ioport.h ioport: use uint{32, 16, 8}_t for ioport value and pio_addr_t for ioport address. 2009-07-16 17:28:50 -05:00
keymaps.c Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
keymaps.h
kvm-all.c Revert "Fake dirty loggin when it's not there" 2009-07-27 15:26:43 -05:00
kvm.h provide tests for pit in kernel and irqchip in kernel 2009-07-22 10:58:49 -05:00
libfdt_env.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
loader.c rename WORDS_BIGENDIAN to HOST_WORDS_BIGENDIAN 2009-07-27 14:09:21 -05:00
m68k-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
m68k-semi.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
m68k.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
microblaze-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
migration-exec.c unify popen/fopen qemu wrappers 2009-08-24 08:02:55 -05:00
migration-tcp.c fix migration to obey -S 2009-07-30 09:50:36 -05:00
migration-unix.c Migration via unix sockets. 2009-08-24 08:01:42 -05:00
migration.c Migration via unix sockets. 2009-08-24 08:01:42 -05:00
migration.h Migration via unix sockets. 2009-08-24 08:01:42 -05:00
mips-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
mips.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
module.c Fix module initialization when more than 1 class is in use 2009-05-14 18:06:49 -05:00
module.h Convert machine registration to use module init functions 2009-05-21 08:47:55 -05:00
monitor.c Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
monitor.h Add monitor_get_fd() command for fetching named fds 2009-07-27 08:39:28 -05:00
nbd.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
nbd.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
net-checksum.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
net.c Add missing linefeed in error message 2009-08-24 08:01:40 -05:00
net.h net: Fix do_set_link() return type 2009-08-10 13:05:48 -05:00
osdep.c Only build osdep once 2009-08-24 08:02:55 -05:00
osdep.h Replace always_inline with inline 2009-08-16 09:06:54 +00:00
path.c user: compile path.c only once 2009-08-15 07:51:59 +00:00
pci-ids.txt
posix-aio-compat.c rename HAVE_PREADV to CONFIG_PREADV 2009-07-27 14:09:20 -05:00
posix-aio-compat.h
ppc-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
ppc.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
ppc64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
qemu-aio.h fix qemu_aio_flush 2009-06-15 13:52:27 +02:00
qemu-binfmt-conf.sh
qemu-char.c char: Emit 'CLOSED' events on char device close 2009-08-24 08:21:42 -05:00
qemu-char.h char: Emit 'CLOSED' events on char device close 2009-08-24 08:21:42 -05:00
qemu-common.h user: compile path.c only once 2009-08-15 07:51:59 +00:00
qemu-config.c QemuOpts: switch over -device. 2009-08-10 13:05:27 -05:00
qemu-config.h QemuOpts: switch over -device. 2009-08-10 13:05:27 -05:00
qemu-doc.texi Userspace guest address offsetting 2009-07-17 13:12:41 +01:00
qemu-img-cmds.hx Use hxtool for qemu-img command list 2009-06-07 09:59:47 +03:00
qemu-img.c qmu-img: fix qemu-img convert to generate a valid image when the source referenced a backing file 2009-07-22 10:58:47 -05:00
qemu-img.texi Add new block driver for the VDI format (only aio supported) 2009-08-10 13:05:30 -05:00
qemu-io.c Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
qemu-lock.h rename USE_NPTL to CONFIG_USE_NPTL 2009-07-27 14:10:55 -05:00
qemu-log.h
qemu-malloc.c Format per CODING_STYLE 2009-05-19 22:29:20 +04:00
qemu-monitor.hx Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
qemu-nbd.c Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
qemu-nbd.texi
qemu-option.c QemuOpts: qemu_opts_parse: fix id= parsing 2009-08-10 13:05:26 -05:00
qemu-option.h QemuOpts: add some functions 2009-08-10 13:05:25 -05:00
qemu-options.hx Make the e1000 the default network adapter for the pc target. 2009-08-24 08:46:48 -05:00
qemu-sockets.c
qemu-tech.texi Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
qemu-thread.c qemu-thread: use pthread_equal 2009-07-22 10:58:49 -05:00
qemu-thread.h
qemu-timer.h variable timer intervals 2009-08-10 13:05:31 -05:00
qemu-tool.c Fix most warnings (errors with -Werror) when debugging is enabled 2009-07-20 17:19:25 +00:00
qemu.sasl
qemu_socket.h
readline.c readline: Remove unneeded qemu_mallocz() check 2009-06-16 15:18:37 -05:00
readline.h
rules.mak Rename CPPFLAGS to QEMU_CFLAGS 2009-08-10 13:05:39 -05:00
s390-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
s390.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
savevm.c unify popen/fopen qemu wrappers 2009-08-24 08:02:55 -05:00
sdl.c sdl.c: support 32 bpp cursors 2009-08-23 18:03:34 +02:00
sdl_keysym.h Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
sdl_zoom.c Fix sdl_zoom compile problems on OpenBSD 2009-07-01 18:49:34 +00:00
sdl_zoom.h Remove SDL/ prefix 2009-07-08 18:25:37 +04:00
sdl_zoom_template.h sdl zooming 2009-06-29 08:52:44 -05:00
sh4-dis.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
softmmu-semi.h
softmmu_defs.h
softmmu_exec.h
softmmu_header.h Remove dead i386 assembly code from softmmu_header.h 2009-07-16 17:28:50 -05:00
softmmu_template.h Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
sparc-dis.c Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
sparc.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
sparc64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
sys-queue.h
sysemu.h Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
tap-win32.c tap-win32: Use correct headers. 2009-07-27 14:09:15 -05:00
targphys.h kvm: Mark full address range dirty on live migration start 2009-05-28 02:14:56 -05:00
texi2pod.pl Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
thunk.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
thunk.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
translate-all.c Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
uboot_image.h Update to a hopefully more future proof FSF address 2009-07-16 20:47:01 +00:00
usb-bsd.c
usb-linux.c Fix Sparse warnings: "Using plain integer as NULL pointer" 2009-07-31 21:16:51 +00:00
usb-stub.c
vgafont.h
vl.c Unbreak large mem support by removing kqemu 2009-08-24 08:02:55 -05:00
vnc-auth-sasl.c
vnc-auth-sasl.h
vnc-auth-vencrypt.c
vnc-auth-vencrypt.h
vnc-tls.c
vnc-tls.h
vnc.c When using stdio monitor and VNC display, one can set or clear a VNC password; this should set or turn off VNC authentication as well. 2009-08-24 08:01:40 -05:00
vnc.h variable timer intervals 2009-08-10 13:05:31 -05:00
vnc_keysym.h More NULL pointer fixes 2009-08-01 10:13:20 +00:00
vnchextile.h single vnc server surface 2009-08-10 13:05:30 -05:00
x86_64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v 2009-07-27 14:10:56 -05:00
x_keymap.c
x_keymap.h

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.