]> git.ipfire.org Git - thirdparty/qemu.git/commit
util: exclude mmap-alloc.c from compilation target on Emscripten
authorKohei Tokunaga <ktokunaga.mail@gmail.com>
Mon, 28 Apr 2025 06:39:05 +0000 (15:39 +0900)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 6 May 2025 14:02:04 +0000 (16:02 +0200)
commit8e72b0eb1842ac9813228ad9d9c29203f3823d99
tree04a1d4faa7a058ef94b884d798b1a19af57fc3bc
parent1a8964424036cdfe1bd11180953d4e95123990f5
util: exclude mmap-alloc.c from compilation target on Emscripten

Emscripten does not support partial unmapping of mmapped memory
regions[1]. This limitation prevents correct implementation of qemu_ram_mmap
and qemu_ram_munmap, which rely on partial unmap behavior.

As a workaround, this commit excludes mmap-alloc.c from the Emscripten
build. Instead, for Emscripten build, this modifies qemu_anon_ram_alloc to
use qemu_memalign in place of qemu_ram_mmap, and disable memory backends
that rely on mmap, such as memory-backend-file and memory-backend-shm.

[1] https://github.com/emscripten-core/emscripten/blob/d4a74336f23214bf3304d9eb0d03966786b30a36/system/lib/libc/emscripten_mmap.c#L61

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
Link: https://lore.kernel.org/r/76834f933ee4f14eeb5289d21c59d306886e58e9.1745820062.git.ktokunaga.mail@gmail.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
backends/meson.build
system/memory.c
system/physmem.c
util/meson.build
util/oslib-posix.c