qemu: update to 5.2.0

This commit is contained in:
Leonid Pliushch 2020-12-11 15:37:06 +02:00 committed by Yaksh Bariya
parent f5ba497963
commit 3e5581d8e4
No known key found for this signature in database
GPG Key ID: F7486BA7D3D27581
20 changed files with 441 additions and 509 deletions

View File

@ -1,16 +1,7 @@
diff -uNr qemu-4.1.1/configure qemu-4.1.1.mod/configure
--- qemu-4.1.1/configure 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/configure 2019-12-17 03:04:27.549114364 +0200
@@ -125,7 +125,7 @@
compile_prog() {
local_cflags="$1"
local_ldflags="$2"
- do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
+ do_cc $CFLAGS $CPPFLAGS $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
}
# symbolically link $1 to $2. Portable version of "ln -sf".
@@ -2850,6 +2850,8 @@
diff -uNr qemu-5.2.0/configure qemu-5.2.0.mod/configure
--- qemu-5.2.0/configure 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/configure 2020-12-09 16:24:26.073781672 +0200
@@ -2931,6 +2931,8 @@
fi
has_libgcrypt() {
@ -19,7 +10,7 @@ diff -uNr qemu-4.1.1/configure qemu-4.1.1.mod/configure
if ! has "libgcrypt-config"
then
return 1
@@ -2908,10 +2910,7 @@
@@ -3000,10 +3002,7 @@
# Debian has removed -lgpg-error from libgcrypt-config
# as it "spreads unnecessary dependencies" which in
# turn breaks static builds...
@ -31,15 +22,7 @@ diff -uNr qemu-4.1.1/configure qemu-4.1.1.mod/configure
# Link test to make sure the given libraries work (e.g for static).
write_c_skeleton
@@ -3209,6 +3208,7 @@
# VNC SASL detection
if test "$vnc" = "yes" && test "$vnc_sasl" != "no" ; then
cat > $TMPC <<EOF
+#include <sys/types.h>
#include <sasl/sasl.h>
#include <stdio.h>
int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
@@ -4415,6 +4415,7 @@
@@ -4097,6 +4096,7 @@
if compile_prog "" "" ; then
signalfd=yes
fi
@ -47,27 +30,15 @@ diff -uNr qemu-4.1.1/configure qemu-4.1.1.mod/configure
# check if optreset global is declared by <getopt.h>
optreset="no"
@@ -5981,9 +5982,9 @@
CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
elif test "$fortify_source" = "yes" ; then
- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
+ CFLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
elif test "$debug" = "no"; then
- CFLAGS="-O2 $CFLAGS"
+ CFLAGS="$CFLAGS"
fi
if test "$have_asan" = "yes"; then
@@ -6074,6 +6075,7 @@
if [ "$eventfd" = "yes" ]; then
ivshmem=yes
@@ -5973,6 +5973,7 @@
if test "$darwin" = "yes" ; then
echo "CONFIG_DARWIN=y" >> $config_host_mak
fi
+ivshmem=no
tools=""
if test "$want_tools" = "yes" ; then
@@ -6751,9 +6753,9 @@
if test "$solaris" = "yes" ; then
echo "CONFIG_SOLARIS=y" >> $config_host_mak
@@ -6088,9 +6089,9 @@
if test "$posix_fallocate" = "yes" ; then
echo "CONFIG_POSIX_FALLOCATE=y" >> $config_host_mak
fi

View File

@ -1,7 +1,7 @@
diff -uNr qemu-4.2.0/block.c qemu-4.2.0.mod/block.c
--- qemu-4.2.0/block.c 2019-12-12 20:20:47.000000000 +0200
+++ qemu-4.2.0.mod/block.c 2019-12-14 23:44:51.761245599 +0200
@@ -605,7 +605,7 @@
diff -uNr qemu-5.2.0/block.c qemu-5.2.0.mod/block.c
--- qemu-5.2.0/block.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/block.c 2020-12-09 15:25:10.305910980 +0200
@@ -763,7 +763,7 @@
const char *tmpdir;
tmpdir = getenv("TMPDIR");
if (!tmpdir) {
@ -10,42 +10,49 @@ diff -uNr qemu-4.2.0/block.c qemu-4.2.0.mod/block.c
}
if (snprintf(filename, size, "%s/vl.XXXXXX", tmpdir) >= size) {
return -EOVERFLOW;
diff -uNr qemu-4.2.0/hw/usb/ccid-card-emulated.c qemu-4.2.0.mod/hw/usb/ccid-card-emulated.c
--- qemu-4.2.0/hw/usb/ccid-card-emulated.c 2019-12-12 20:20:47.000000000 +0200
+++ qemu-4.2.0.mod/hw/usb/ccid-card-emulated.c 2019-12-14 23:46:14.000525536 +0200
@@ -417,7 +417,6 @@
diff -uNr qemu-5.2.0/hw/hppa/machine.c qemu-5.2.0.mod/hw/hppa/machine.c
--- qemu-5.2.0/hw/hppa/machine.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/hw/hppa/machine.c 2020-12-09 15:27:27.518908660 +0200
@@ -100,19 +100,19 @@
fw_cfg_add_i64(fw_cfg, FW_CFG_RAM_SIZE, ram_size);
val = cpu_to_le64(MIN_SEABIOS_HPPA_VERSION);
- fw_cfg_add_file(fw_cfg, "/etc/firmware-min-version",
+ fw_cfg_add_file(fw_cfg, "@TERMUX_PREFIX@/etc/firmware-min-version",
g_memdup(&val, sizeof(val)), sizeof(val));
val = cpu_to_le64(HPPA_TLB_ENTRIES);
- fw_cfg_add_file(fw_cfg, "/etc/cpu/tlb_entries",
+ fw_cfg_add_file(fw_cfg, "@TERMUX_PREFIX@/etc/cpu/tlb_entries",
g_memdup(&val, sizeof(val)), sizeof(val));
val = cpu_to_le64(HPPA_BTLB_ENTRIES);
- fw_cfg_add_file(fw_cfg, "/etc/cpu/btlb_entries",
+ fw_cfg_add_file(fw_cfg, "@TERMUX_PREFIX@/etc/cpu/btlb_entries",
g_memdup(&val, sizeof(val)), sizeof(val));
val = cpu_to_le64(HPA_POWER_BUTTON);
- fw_cfg_add_file(fw_cfg, "/etc/power-button-addr",
+ fw_cfg_add_file(fw_cfg, "@TERMUX_PREFIX@/etc/power-button-addr",
g_memdup(&val, sizeof(val)), sizeof(val));
fw_cfg_add_i16(fw_cfg, FW_CFG_BOOT_DEVICE, ms->boot_order[0]);
diff -uNr qemu-5.2.0/hw/usb/ccid-card-emulated.c qemu-5.2.0.mod/hw/usb/ccid-card-emulated.c
--- qemu-5.2.0/hw/usb/ccid-card-emulated.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/hw/usb/ccid-card-emulated.c 2020-12-09 15:28:01.551157409 +0200
@@ -417,7 +417,7 @@
event_notifier_cleanup(&card->notifier);
}
-#define CERTIFICATES_DEFAULT_DB "/etc/pki/nssdb"
+#define CERTIFICATES_DEFAULT_DB "@TERMUX_PREFIX@/etc/pki/nssdb"
#define CERTIFICATES_ARGS_TEMPLATE\
"db=\"%s\" use_hw=no soft=(,Virtual Reader,CAC,,%s,%s,%s)"
@@ -447,7 +446,7 @@
VCardEmulOptions *options = NULL;
snprintf(emul_args, sizeof(emul_args) - 1, CERTIFICATES_ARGS_TEMPLATE,
- card->db ? card->db : CERTIFICATES_DEFAULT_DB,
+ card->db ? card->db : "@TERMUX_PREFIX@/etc/pki/nssdb",
card->cert1, card->cert2, card->cert3);
options = vcard_emul_options(emul_args);
if (options == NULL) {
diff -uNr qemu-4.2.0/include/net/net.h qemu-4.2.0.mod/include/net/net.h
--- qemu-4.2.0/include/net/net.h 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/include/net/net.h 2019-12-14 23:41:09.155552313 +0200
@@ -208,8 +208,6 @@
int net_hub_id_for_client(NetClientState *nc, int *id);
NetClientState *net_hub_port_find(int hub_id);
-#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
-#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
#define DEFAULT_BRIDGE_HELPER CONFIG_QEMU_HELPERDIR "/qemu-bridge-helper"
#define DEFAULT_BRIDGE_INTERFACE "br0"
diff -uNr qemu-4.2.0/linux-user/syscall.c qemu-4.2.0.mod/linux-user/syscall.c
--- qemu-4.2.0/linux-user/syscall.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/linux-user/syscall.c 2019-12-14 23:41:09.156552316 +0200
@@ -7215,7 +7215,7 @@
diff -uNr qemu-5.2.0/linux-user/syscall.c qemu-5.2.0.mod/linux-user/syscall.c
--- qemu-5.2.0/linux-user/syscall.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/linux-user/syscall.c 2020-12-09 15:25:10.309911009 +0200
@@ -8045,7 +8045,7 @@
/* create temporary file to map stat to */
tmpdir = getenv("TMPDIR");
if (!tmpdir)
@ -54,9 +61,9 @@ diff -uNr qemu-4.2.0/linux-user/syscall.c qemu-4.2.0.mod/linux-user/syscall.c
snprintf(filename, sizeof(filename), "%s/qemu-open.XXXXXX", tmpdir);
fd = mkstemp(filename);
if (fd < 0) {
diff -uNr qemu-4.2.0/migration/exec.c qemu-4.2.0.mod/migration/exec.c
--- qemu-4.2.0/migration/exec.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/migration/exec.c 2019-12-14 23:41:09.156552316 +0200
diff -uNr qemu-5.2.0/migration/exec.c qemu-5.2.0.mod/migration/exec.c
--- qemu-5.2.0/migration/exec.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/migration/exec.c 2020-12-09 15:25:10.309911009 +0200
@@ -28,7 +28,7 @@
void exec_start_outgoing_migration(MigrationState *s, const char *command, Error **errp)
{
@ -75,10 +82,10 @@ diff -uNr qemu-4.2.0/migration/exec.c qemu-4.2.0.mod/migration/exec.c
trace_migration_exec_incoming(command);
ioc = QIO_CHANNEL(qio_channel_command_new_spawn(argv,
diff -uNr qemu-4.2.0/net/tap.c qemu-4.2.0.mod/net/tap.c
--- qemu-4.2.0/net/tap.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/net/tap.c 2019-12-14 23:47:32.704802757 +0200
@@ -527,7 +527,7 @@
diff -uNr qemu-5.2.0/net/tap.c qemu-5.2.0.mod/net/tap.c
--- qemu-5.2.0/net/tap.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/net/tap.c 2020-12-09 15:25:10.309911009 +0200
@@ -533,7 +533,7 @@
*parg++ = helper_cmd;
*parg++ = NULL;
@ -87,23 +94,10 @@ diff -uNr qemu-4.2.0/net/tap.c qemu-4.2.0.mod/net/tap.c
g_free(helper_cmd);
} else {
/* assume helper is just the executable path name */
@@ -907,9 +907,9 @@
error_setg(errp, "vhostfds= is invalid if fds= wasn't specified");
return -1;
}
- script = tap->has_script ? tap->script : DEFAULT_NETWORK_SCRIPT;
- downscript = tap->has_downscript ? tap->downscript :
- DEFAULT_NETWORK_DOWN_SCRIPT;
+
+ script = tap->has_script ? tap->script : "@TERMUX_PREFIX@/etc/qemu-ifup";
+ downscript = tap->has_downscript ? tap->downscript : "@TERMUX_PREFIX@/etc/qemu-ifdown";
if (tap->has_ifname) {
pstrcpy(ifname, sizeof ifname, tap->ifname);
diff -uNr qemu-4.2.0/qemu-nbd.c qemu-4.2.0.mod/qemu-nbd.c
--- qemu-4.2.0/qemu-nbd.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/qemu-nbd.c 2019-12-14 23:41:09.157552319 +0200
@@ -51,7 +51,6 @@
diff -uNr qemu-5.2.0/qemu-nbd.c qemu-5.2.0.mod/qemu-nbd.c
--- qemu-5.2.0/qemu-nbd.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/qemu-nbd.c 2020-12-09 15:25:10.313911038 +0200
@@ -52,7 +52,6 @@
#define HAVE_NBD_DEVICE 0
#endif
@ -116,37 +110,23 @@ diff -uNr qemu-4.2.0/qemu-nbd.c qemu-4.2.0.mod/qemu-nbd.c
" -b, --bind=IFACE interface to bind to (default `0.0.0.0')\n"
" -k, --socket=PATH path to the unix socket\n"
-" (default '"SOCKET_PATH"')\n"
+" (default '@TERMUX_PREFIX@/tmp/qemu-nbd-sock-%s')\n"
+" (default '@TERMUX_PREFIX@/tmp/nbd-%s')\n"
" -e, --shared=NUM device can be shared by NUM clients (default '1')\n"
" -t, --persistent don't exit on the last connection\n"
" -v, --verbose display extra debugging information\n"
@@ -1065,7 +1064,7 @@
@@ -964,7 +963,7 @@
if (device != NULL && sockpath == NULL) {
sockpath = g_malloc(128);
- snprintf(sockpath, 128, SOCKET_PATH, basename(device));
+ snprintf(sockpath, 128, "@TERMUX_PREFIX@/tmp/qemu-nbd-sock-%s", basename(device));
+ snprintf(sockpath, 128, "@TERMUX_PREFIX@/tmp/nbd-%s", basename(device));
}
server = qio_net_listener_new();
diff -uNr qemu-4.2.0/qemu-options.hx qemu-4.2.0.mod/qemu-options.hx
--- qemu-4.2.0/qemu-options.hx 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/qemu-options.hx 2019-12-14 23:41:09.158552322 +0200
@@ -2214,8 +2214,8 @@
" [,poll-us=n]\n"
" configure a host TAP network backend with ID 'str'\n"
" connected to a bridge (default=" DEFAULT_BRIDGE_INTERFACE ")\n"
- " use network scripts 'file' (default=" DEFAULT_NETWORK_SCRIPT ")\n"
- " to configure it and 'dfile' (default=" DEFAULT_NETWORK_DOWN_SCRIPT ")\n"
+ " use network scripts 'file' (default=@TERMUX_PREFIX@/etc/qemu-ifup)\n"
+ " to configure it and 'dfile' (default=@TERMUX_PREFIX@/etc/qemu-ifdown)\n"
" to deconfigure it\n"
" use '[down]script=no' to disable script execution\n"
" use network helper 'helper' (default=" DEFAULT_BRIDGE_HELPER ") to\n"
diff -uNr qemu-4.2.0/slirp/src/slirp.c qemu-4.2.0.mod/slirp/src/slirp.c
--- qemu-4.2.0/slirp/src/slirp.c 2019-12-12 20:22:51.000000000 +0200
+++ qemu-4.2.0.mod/slirp/src/slirp.c 2019-12-14 23:50:56.864555426 +0200
@@ -128,7 +128,7 @@
diff -uNr qemu-5.2.0/slirp/src/slirp.c qemu-5.2.0.mod/slirp/src/slirp.c
--- qemu-5.2.0/slirp/src/slirp.c 2020-12-08 19:00:58.000000000 +0200
+++ qemu-5.2.0.mod/slirp/src/slirp.c 2020-12-09 15:25:10.313911038 +0200
@@ -133,7 +133,7 @@
return 0;
}
old_stat = *cached_stat;
@ -155,7 +135,7 @@ diff -uNr qemu-4.2.0/slirp/src/slirp.c qemu-4.2.0.mod/slirp/src/slirp.c
return -1;
}
if (cached_stat->st_dev == old_stat.st_dev &&
@@ -152,7 +152,7 @@
@@ -157,7 +157,7 @@
void *tmp_addr = alloca(addrlen);
unsigned if_index;
@ -164,10 +144,10 @@ diff -uNr qemu-4.2.0/slirp/src/slirp.c qemu-4.2.0.mod/slirp/src/slirp.c
if (!f)
return -1;
diff -uNr qemu-4.2.0/tcg/tcg.c qemu-4.2.0.mod/tcg/tcg.c
--- qemu-4.2.0/tcg/tcg.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/tcg/tcg.c 2019-12-14 23:48:54.305098365 +0200
@@ -4530,7 +4530,8 @@
diff -uNr qemu-5.2.0/tcg/tcg.c qemu-5.2.0.mod/tcg/tcg.c
--- qemu-5.2.0/tcg/tcg.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/tcg/tcg.c 2020-12-09 15:25:10.313911038 +0200
@@ -4628,7 +4628,8 @@
/* Enable this block to be able to debug the ELF image file creation.
One can use readelf, objdump, or other inspection utilities. */
{
@ -177,10 +157,22 @@ diff -uNr qemu-4.2.0/tcg/tcg.c qemu-4.2.0.mod/tcg/tcg.c
if (f) {
if (fwrite(img, img_size, 1, f) != img_size) {
/* Avoid stupid unused return value warning for fwrite. */
diff -uNr qemu-4.2.0/util/qemu-sockets.c qemu-4.2.0.mod/util/qemu-sockets.c
--- qemu-4.2.0/util/qemu-sockets.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/util/qemu-sockets.c 2019-12-14 23:41:09.158552322 +0200
@@ -877,7 +877,7 @@
diff -uNr qemu-5.2.0/util/module.c qemu-5.2.0.mod/util/module.c
--- qemu-5.2.0/util/module.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/util/module.c 2020-12-09 15:30:49.368390113 +0200
@@ -246,7 +246,7 @@
version_dir = g_strcanon(g_strdup(QEMU_PKGVERSION),
G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "+-.~",
'_');
- dirs[n_dirs++] = g_strdup_printf("/var/run/qemu/%s", version_dir);
+ dirs[n_dirs++] = g_strdup_printf("@TERMUX_PREFIX@/var/run/qemu/%s", version_dir);
#endif
assert(n_dirs <= ARRAY_SIZE(dirs));
diff -uNr qemu-5.2.0/util/qemu-sockets.c qemu-5.2.0.mod/util/qemu-sockets.c
--- qemu-5.2.0/util/qemu-sockets.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/util/qemu-sockets.c 2020-12-09 15:25:10.313911038 +0200
@@ -900,7 +900,7 @@
path = saddr->path;
} else {
const char *tmpdir = getenv("TMPDIR");

View File

@ -1,19 +1,19 @@
diff -uNr qemu-4.1.1/linux-user/elfload.c qemu-4.1.1.mod/linux-user/elfload.c
--- qemu-4.1.1/linux-user/elfload.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/linux-user/elfload.c 2019-12-17 16:48:45.801491837 +0200
@@ -2048,7 +2048,7 @@
bool fixed)
diff -uNr qemu-5.1.0/linux-user/elfload.c qemu-5.1.0.mod/linux-user/elfload.c
--- qemu-5.1.0/linux-user/elfload.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/linux-user/elfload.c 2020-09-05 17:01:16.823064611 +0300
@@ -2331,7 +2331,7 @@
abi_ulong guest_hiaddr)
{
/* In order to use host shmat, we must be able to honor SHMLBA. */
- unsigned long align = MAX(SHMLBA, qemu_host_page_size);
+ unsigned long align = MAX(/* SHMLBA */ getpagesize(), qemu_host_page_size);
unsigned long current_start, aligned_start;
int flags;
- uintptr_t align = MAX(SHMLBA, qemu_host_page_size);
+ uintptr_t align = MAX(/* SHMLBA */ getpagesize(), qemu_host_page_size);
diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
--- qemu-4.1.1/linux-user/syscall.c 2019-12-17 16:46:58.733983513 +0200
+++ qemu-4.1.1.mod/linux-user/syscall.c 2019-12-17 16:48:07.277308780 +0200
@@ -43,7 +43,7 @@
if (have_guest_base) {
pgb_have_guest_base(image_name, guest_loaddr, guest_hiaddr, align);
diff -uNr qemu-5.1.0/linux-user/syscall.c qemu-5.1.0.mod/linux-user/syscall.c
--- qemu-5.1.0/linux-user/syscall.c 2020-09-05 16:58:00.063849385 +0300
+++ qemu-5.1.0.mod/linux-user/syscall.c 2020-09-05 17:02:57.910949156 +0300
@@ -45,7 +45,7 @@
#include <poll.h>
#include <sys/times.h>
#include <sys/shm.h>
@ -22,7 +22,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
#include <sys/statfs.h>
#include <utime.h>
#include <sys/sysinfo.h>
@@ -73,12 +73,17 @@
@@ -78,12 +78,17 @@
#endif
#define termios host_termios
@ -40,7 +40,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
#include <linux/termios.h>
#include <linux/unistd.h>
#include <linux/cdrom.h>
@@ -245,6 +250,59 @@
@@ -264,6 +269,59 @@
#define __NR__llseek __NR_lseek
#endif
@ -100,8 +100,8 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
/* Newer kernel ports have llseek() instead of _llseek() */
#if defined(TARGET_NR_llseek) && !defined(TARGET_NR__llseek)
#define TARGET_NR__llseek TARGET_NR_llseek
@@ -794,6 +852,9 @@
size_t, len, unsigned, prio, const struct timespec *, timeout)
@@ -837,6 +895,9 @@
#ifdef TARGET_NR_mq_timedreceive
safe_syscall5(int, mq_timedreceive, int, mqdes, char *, msg_ptr,
size_t, len, unsigned *, prio, const struct timespec *, timeout)
+_syscall1(int, mq_unlink, const char *, name)
@ -110,8 +110,8 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
#endif
/* We do ioctl like this rather than via safe_syscall3 to preserve the
* "third argument might be integer or pointer or not present" behaviour of
@@ -1233,7 +1294,7 @@
}
@@ -1328,7 +1389,7 @@
#endif
#if defined(TARGET_NR_mq_open) && defined(__NR_mq_open)
-#include <mqueue.h>
@ -119,7 +119,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
static inline abi_long copy_from_user_mq_attr(struct mq_attr *attr,
abi_ulong target_mq_attr_addr)
@@ -3373,6 +3434,8 @@
@@ -3632,6 +3693,8 @@
return 0;
}
@ -128,7 +128,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
static inline abi_long target_to_host_semid_ds(struct semid_ds *host_sd,
abi_ulong target_addr)
{
@@ -3452,6 +3515,16 @@
@@ -3711,6 +3774,16 @@
abi_ulong __buf;
};
@ -145,7 +145,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
static inline abi_long target_to_host_semarray(int semid, unsigned short **host_array,
abi_ulong target_addr)
{
@@ -3582,7 +3655,7 @@
@@ -3841,7 +3914,7 @@
case GETPID:
case GETNCNT:
case GETZCNT:
@ -154,7 +154,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
break;
}
@@ -3674,7 +3747,7 @@
@@ -3961,7 +4034,7 @@
host_md->msg_stime = tswapal(target_md->msg_stime);
host_md->msg_rtime = tswapal(target_md->msg_rtime);
host_md->msg_ctime = tswapal(target_md->msg_ctime);
@ -163,7 +163,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
host_md->msg_qnum = tswapal(target_md->msg_qnum);
host_md->msg_qbytes = tswapal(target_md->msg_qbytes);
host_md->msg_lspid = tswapal(target_md->msg_lspid);
@@ -3695,7 +3768,7 @@
@@ -3982,7 +4055,7 @@
target_md->msg_stime = tswapal(host_md->msg_stime);
target_md->msg_rtime = tswapal(host_md->msg_rtime);
target_md->msg_ctime = tswapal(host_md->msg_ctime);
@ -172,7 +172,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
target_md->msg_qnum = tswapal(host_md->msg_qnum);
target_md->msg_qbytes = tswapal(host_md->msg_qbytes);
target_md->msg_lspid = tswapal(host_md->msg_lspid);
@@ -4042,7 +4115,7 @@
@@ -4348,7 +4421,7 @@
abi_ulong mmap_start;
/* In order to use the host shmat, we need to honor host SHMLBA. */
@ -181,17 +181,17 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
if (mmap_start == -1) {
errno = ENOMEM;
@@ -5018,6 +5091,9 @@
}
@@ -5415,6 +5488,9 @@
#endif
+#undef winsize
+#undef termio
+
static IOCTLEntry ioctl_entries[] = {
IOCTLEntry ioctl_entries[] = {
#define IOCTL(cmd, access, ...) \
{ TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } },
@@ -7651,7 +7727,7 @@
@@ -8185,7 +8261,7 @@
unlock_user(p, arg1, 0);
return ret;
#endif
@ -199,8 +199,8 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
+#if 0 //def TARGET_NR_stime /* not on alpha */
case TARGET_NR_stime:
{
time_t host_time;
@@ -7713,7 +7789,7 @@
struct timespec ts;
@@ -8249,7 +8325,7 @@
}
return ret;
#endif
@ -209,7 +209,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
case TARGET_NR_futimesat:
{
struct timeval *tvp, tv[2];
@@ -11415,7 +11491,7 @@
@@ -12008,7 +12084,7 @@
/* Not implemented for now... */
/* case TARGET_NR_mq_notify: */
/* break; */
@ -218,7 +218,7 @@ diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
case TARGET_NR_mq_getsetattr:
{
struct mq_attr posix_mq_attr_in, posix_mq_attr_out;
@@ -11433,6 +11509,7 @@
@@ -12026,6 +12102,7 @@
}
return ret;
#endif

View File

@ -1,6 +1,6 @@
diff -uNr qemu-4.2.0/linux-user/aarch64/signal.c qemu-4.2.0.mod/linux-user/aarch64/signal.c
--- qemu-4.2.0/linux-user/aarch64/signal.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/linux-user/aarch64/signal.c 2019-12-15 00:25:43.651300812 +0200
diff -uNr qemu-5.2.0/linux-user/aarch64/signal.c qemu-5.2.0.mod/linux-user/aarch64/signal.c
--- qemu-5.2.0/linux-user/aarch64/signal.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/linux-user/aarch64/signal.c 2020-12-11 14:04:52.426979119 +0200
@@ -38,7 +38,7 @@
target_stack_t tuc_stack;
target_sigset_t tuc_sigmask;
@ -10,9 +10,9 @@ diff -uNr qemu-4.2.0/linux-user/aarch64/signal.c qemu-4.2.0.mod/linux-user/aarch
/* last for future expansion */
struct target_sigcontext tuc_mcontext;
};
diff -uNr qemu-4.2.0/linux-user/arm/signal.c qemu-4.2.0.mod/linux-user/arm/signal.c
--- qemu-4.2.0/linux-user/arm/signal.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/linux-user/arm/signal.c 2019-12-15 00:25:43.651300812 +0200
diff -uNr qemu-5.2.0/linux-user/arm/signal.c qemu-5.2.0.mod/linux-user/arm/signal.c
--- qemu-5.2.0/linux-user/arm/signal.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/linux-user/arm/signal.c 2020-12-11 14:04:52.426979119 +0200
@@ -59,7 +59,7 @@
target_stack_t tuc_stack;
struct target_sigcontext tuc_mcontext;
@ -22,10 +22,22 @@ diff -uNr qemu-4.2.0/linux-user/arm/signal.c qemu-4.2.0.mod/linux-user/arm/signa
abi_ulong tuc_regspace[128] __attribute__((__aligned__(8)));
};
diff -uNr qemu-4.2.0/linux-user/syscall_defs.h qemu-4.2.0.mod/linux-user/syscall_defs.h
--- qemu-4.2.0/linux-user/syscall_defs.h 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/linux-user/syscall_defs.h 2019-12-15 00:25:43.652300818 +0200
@@ -1794,7 +1794,7 @@
diff -uNr qemu-5.2.0/linux-user/riscv/signal.c qemu-5.2.0.mod/linux-user/riscv/signal.c
--- qemu-5.2.0/linux-user/riscv/signal.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/linux-user/riscv/signal.c 2020-12-11 14:05:42.471408487 +0200
@@ -41,7 +41,7 @@
struct target_ucontext *uc_link;
target_stack_t uc_stack;
target_sigset_t uc_sigmask;
- uint8_t __unused[1024 / 8 - sizeof(target_sigset_t)];
+ uint8_t __qemu_unused[1024 / 8 - sizeof(target_sigset_t)];
struct target_sigcontext uc_mcontext QEMU_ALIGNED(16);
};
diff -uNr qemu-5.2.0/linux-user/syscall_defs.h qemu-5.2.0.mod/linux-user/syscall_defs.h
--- qemu-5.2.0/linux-user/syscall_defs.h 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/linux-user/syscall_defs.h 2020-12-11 14:04:52.430979153 +0200
@@ -1929,7 +1929,7 @@
abi_ulong target_st_mtime_nsec;
abi_ulong target_st_ctime;
abi_ulong target_st_ctime_nsec;
@ -34,7 +46,7 @@ diff -uNr qemu-4.2.0/linux-user/syscall_defs.h qemu-4.2.0.mod/linux-user/syscall
};
#elif defined(TARGET_SH4)
@@ -1881,7 +1881,7 @@
@@ -2016,7 +2016,7 @@
abi_ulong target_st_ctime;
abi_ulong target_st_ctime_nsec;
@ -43,7 +55,7 @@ diff -uNr qemu-4.2.0/linux-user/syscall_defs.h qemu-4.2.0.mod/linux-user/syscall
};
#elif defined(TARGET_S390X)
struct target_stat {
@@ -1902,7 +1902,7 @@
@@ -2037,7 +2037,7 @@
abi_ulong target_st_ctime_nsec;
abi_ulong st_blksize;
abi_long st_blocks;
@ -52,7 +64,7 @@ diff -uNr qemu-4.2.0/linux-user/syscall_defs.h qemu-4.2.0.mod/linux-user/syscall
};
#elif defined(TARGET_AARCH64)
#define TARGET_STAT_HAVE_NSEC
@@ -1925,7 +1925,7 @@
@@ -2060,7 +2060,7 @@
abi_ulong target_st_mtime_nsec;
abi_long target_st_ctime;
abi_ulong target_st_ctime_nsec;

View File

@ -0,0 +1,220 @@
diff -uNr qemu-5.1.0/accel/tcg/translate-all.c qemu-5.1.0.mod/accel/tcg/translate-all.c
--- qemu-5.1.0/accel/tcg/translate-all.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/accel/tcg/translate-all.c 2020-09-05 17:06:07.327115262 +0300
@@ -47,6 +47,8 @@
#include "exec/ram_addr.h"
#endif
+#include <linux/mman.h>
+
#include "exec/cputlb.h"
#include "exec/tb-hash.h"
#include "translate-all.h"
diff -uNr qemu-5.1.0/audio/ossaudio.c qemu-5.1.0.mod/audio/ossaudio.c
--- qemu-5.1.0/audio/ossaudio.c 2020-09-05 16:58:18.803736540 +0300
+++ qemu-5.1.0.mod/audio/ossaudio.c 2020-09-05 17:06:07.327115262 +0300
@@ -31,6 +31,8 @@
#include "audio.h"
#include "trace.h"
+#include <linux/mman.h>
+
#define AUDIO_CAP "oss"
#include "audio_int.h"
diff -uNr qemu-5.1.0/block/file-posix.c qemu-5.1.0.mod/block/file-posix.c
--- qemu-5.1.0/block/file-posix.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/block/file-posix.c 2020-09-05 17:06:07.327115262 +0300
@@ -59,6 +59,7 @@
#include <sys/dkio.h>
#endif
#ifdef __linux__
+#include <linux/mman.h>
#include <sys/ioctl.h>
#include <sys/param.h>
#include <sys/syscall.h>
diff -uNr qemu-5.1.0/contrib/libvhost-user/libvhost-user.c qemu-5.1.0.mod/contrib/libvhost-user/libvhost-user.c
--- qemu-5.1.0/contrib/libvhost-user/libvhost-user.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/contrib/libvhost-user/libvhost-user.c 2020-09-05 17:06:07.327115262 +0300
@@ -29,6 +29,7 @@
#include "qemu/compiler.h"
#if defined(__linux__)
+#include <linux/mman.h>
#include <sys/syscall.h>
#include <fcntl.h>
#include <sys/ioctl.h>
diff -uNr qemu-5.1.0/hw/vfio/common.c qemu-5.1.0.mod/hw/vfio/common.c
--- qemu-5.1.0/hw/vfio/common.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/hw/vfio/common.c 2020-09-05 17:06:07.331115270 +0300
@@ -24,6 +24,7 @@
#include <linux/kvm.h>
#endif
#include <linux/vfio.h>
+#include <linux/mman.h>
#include "hw/vfio/vfio-common.h"
#include "hw/vfio/vfio.h"
diff -uNr qemu-5.1.0/hw/vfio/pci-quirks.c qemu-5.1.0.mod/hw/vfio/pci-quirks.c
--- qemu-5.1.0/hw/vfio/pci-quirks.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/hw/vfio/pci-quirks.c 2020-09-05 17:07:16.623274533 +0300
@@ -27,6 +27,8 @@
#include "pci.h"
#include "trace.h"
+#include <linux/mman.h>
+
/*
* List of device ids/vendor ids for which to disable
* option rom loading. This avoids the guest hangs during rom
diff -uNr qemu-5.1.0/hw/virtio/vhost-user.c qemu-5.1.0.mod/hw/virtio/vhost-user.c
--- qemu-5.1.0/hw/virtio/vhost-user.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/hw/virtio/vhost-user.c 2020-09-05 17:06:07.331115270 +0300
@@ -32,6 +32,7 @@
#include "standard-headers/linux/vhost_types.h"
#ifdef CONFIG_LINUX
+#include <linux/mman.h>
#include <linux/userfaultfd.h>
#endif
diff -uNr qemu-5.1.0/linux-user/elfload.c qemu-5.1.0.mod/linux-user/elfload.c
--- qemu-5.1.0/linux-user/elfload.c 2020-09-05 17:01:16.823064611 +0300
+++ qemu-5.1.0.mod/linux-user/elfload.c 2020-09-05 17:06:07.331115270 +0300
@@ -2,6 +2,8 @@
#include "qemu/osdep.h"
#include <sys/param.h>
+#include <linux/mman.h>
+
#include <sys/resource.h>
#include <sys/shm.h>
diff -uNr qemu-5.1.0/linux-user/flatload.c qemu-5.1.0.mod/linux-user/flatload.c
--- qemu-5.1.0/linux-user/flatload.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/linux-user/flatload.c 2020-09-05 17:06:07.331115270 +0300
@@ -35,6 +35,8 @@
#include "qemu/osdep.h"
+#include <linux/mman.h>
+
#include "qemu.h"
#include "flat.h"
#include "target_flat.h"
diff -uNr qemu-5.1.0/linux-user/i386/cpu_loop.c qemu-5.1.0.mod/linux-user/i386/cpu_loop.c
--- qemu-5.1.0/linux-user/i386/cpu_loop.c 2020-08-11 22:17:14.000000000 +0300
+++ qemu-5.1.0.mod/linux-user/i386/cpu_loop.c 2020-09-05 17:06:07.335115279 +0300
@@ -22,6 +22,8 @@
#include "qemu.h"
#include "cpu_loop-common.h"
+#include <linux/mman.h>
+
/***********************************************************/
/* CPUX86 core interface */
diff -uNr qemu-5.1.0/linux-user/mmap.c qemu-5.1.0.mod/linux-user/mmap.c
--- qemu-5.1.0/linux-user/mmap.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/linux-user/mmap.c 2020-09-05 17:06:40.807186551 +0300
@@ -21,6 +21,8 @@
#include "exec/log.h"
#include "qemu.h"
+#include <linux/mman.h>
+
static pthread_mutex_t mmap_mutex = PTHREAD_MUTEX_INITIALIZER;
static __thread int mmap_lock_count;
diff -uNr qemu-5.1.0/linux-user/syscall.c qemu-5.1.0.mod/linux-user/syscall.c
--- qemu-5.1.0/linux-user/syscall.c 2020-09-05 17:02:57.910949156 +0300
+++ qemu-5.1.0.mod/linux-user/syscall.c 2020-09-05 17:06:07.335115279 +0300
@@ -36,6 +36,7 @@
#include <sys/resource.h>
#include <sys/swap.h>
#include <linux/capability.h>
+#include <linux/mman.h>
#include <sched.h>
#include <sys/timex.h>
#include <sys/socket.h>
diff -uNr qemu-5.1.0/migration/postcopy-ram.c qemu-5.1.0.mod/migration/postcopy-ram.c
--- qemu-5.1.0/migration/postcopy-ram.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/migration/postcopy-ram.c 2020-09-05 17:06:07.335115279 +0300
@@ -31,6 +31,8 @@
#include "trace.h"
#include "hw/boards.h"
+#include <linux/mman.h>
+
/* Arbitrary limit on size of each discard command,
* keeps them around ~200 bytes
*/
diff -uNr qemu-5.1.0/util/memfd.c qemu-5.1.0.mod/util/memfd.c
--- qemu-5.1.0/util/memfd.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/util/memfd.c 2020-09-05 17:06:07.335115279 +0300
@@ -32,6 +32,7 @@
#include "qemu/host-utils.h"
#if defined CONFIG_LINUX && !defined CONFIG_MEMFD
+#include <linux/mman.h>
#include <sys/syscall.h>
#include <asm/unistd.h>
diff -uNr qemu-5.1.0/util/mmap-alloc.c qemu-5.1.0.mod/util/mmap-alloc.c
--- qemu-5.1.0/util/mmap-alloc.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/util/mmap-alloc.c 2020-09-05 17:06:07.335115279 +0300
@@ -10,7 +10,7 @@
* later. See the COPYING file in the top-level directory.
*/
-#ifdef CONFIG_LINUX
+#ifdef __linux__
#include <linux/mman.h>
#else /* !CONFIG_LINUX */
#define MAP_SYNC 0x0
diff -uNr qemu-5.1.0/util/oslib-posix.c qemu-5.1.0.mod/util/oslib-posix.c
--- qemu-5.1.0/util/oslib-posix.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/util/oslib-posix.c 2020-09-05 17:06:07.335115279 +0300
@@ -41,6 +41,7 @@
#include "qemu/cutils.h"
#ifdef CONFIG_LINUX
+#include <linux/mman.h>
#include <sys/syscall.h>
#endif
diff -uNr qemu-5.1.0/util/vfio-helpers.c qemu-5.1.0.mod/util/vfio-helpers.c
--- qemu-5.1.0/util/vfio-helpers.c 2020-08-11 22:17:15.000000000 +0300
+++ qemu-5.1.0.mod/util/vfio-helpers.c 2020-09-05 17:06:07.335115279 +0300
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include <sys/ioctl.h>
#include <linux/vfio.h>
+#include <linux/mman.h>
#include "qapi/error.h"
#include "exec/ramlist.h"
#include "exec/cpu-common.h"
diff -uNr qemu-5.2.0/tests/vhost-user-bridge.c qemu-5.2.0.mod/tests/vhost-user-bridge.c
--- qemu-5.2.0/tests/vhost-user-bridge.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/tests/vhost-user-bridge.c 2020-12-09 17:31:52.039910511 +0200
@@ -29,6 +29,8 @@
#define _FILE_OFFSET_BITS 64
+#include <linux/mman.h>
+
#include "qemu/osdep.h"
#include "qemu/atomic.h"
#include "qemu/ctype.h"
diff -uNr qemu-5.2.0/softmmu/physmem.c qemu-5.2.0.mod/softmmu/physmem.c
--- qemu-5.2.0/softmmu/physmem.c 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/softmmu/physmem.c 2020-12-09 17:05:25.872459520 +0200
@@ -17,6 +17,8 @@
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#include <linux/mman.h>
+
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qapi/error.h"

View File

@ -1,207 +0,0 @@
diff -uNr qemu-4.1.1/accel/tcg/translate-all.c qemu-4.1.1.mod/accel/tcg/translate-all.c
--- qemu-4.1.1/accel/tcg/translate-all.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/accel/tcg/translate-all.c 2019-12-17 16:51:15.500204642 +0200
@@ -46,6 +46,8 @@
#include "exec/ram_addr.h"
#endif
+#include <linux/mman.h>
+
#include "exec/cputlb.h"
#include "exec/tb-hash.h"
#include "translate-all.h"
diff -uNr qemu-4.1.1/audio/ossaudio.c qemu-4.1.1.mod/audio/ossaudio.c
--- qemu-4.1.1/audio/ossaudio.c 2019-12-17 16:47:04.418010463 +0200
+++ qemu-4.1.1.mod/audio/ossaudio.c 2019-12-17 16:51:15.501204647 +0200
@@ -31,6 +31,8 @@
#include "audio.h"
#include "trace.h"
+#include <linux/mman.h>
+
#define AUDIO_CAP "oss"
#include "audio_int.h"
diff -uNr qemu-4.1.1/block/file-posix.c qemu-4.1.1.mod/block/file-posix.c
--- qemu-4.1.1/block/file-posix.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/block/file-posix.c 2019-12-17 16:51:15.502204651 +0200
@@ -58,6 +58,7 @@
#include <sys/dkio.h>
#endif
#ifdef __linux__
+#include <linux/mman.h>
#include <sys/ioctl.h>
#include <sys/param.h>
#include <sys/syscall.h>
diff -uNr qemu-4.1.1/contrib/libvhost-user/libvhost-user.c qemu-4.1.1.mod/contrib/libvhost-user/libvhost-user.c
--- qemu-4.1.1/contrib/libvhost-user/libvhost-user.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/contrib/libvhost-user/libvhost-user.c 2019-12-17 16:51:15.503204656 +0200
@@ -29,6 +29,7 @@
#include "qemu/compiler.h"
#if defined(__linux__)
+#include <linux/mman.h>
#include <sys/syscall.h>
#include <fcntl.h>
#include <sys/ioctl.h>
diff -uNr qemu-4.1.1/exec.c qemu-4.1.1.mod/exec.c
--- qemu-4.1.1/exec.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/exec.c 2019-12-17 16:51:15.505204666 +0200
@@ -71,6 +71,7 @@
#include "qemu/range.h"
#ifndef _WIN32
#include "qemu/mmap-alloc.h"
+#include <linux/mman.h>
#endif
#include "monitor/monitor.h"
diff -uNr qemu-4.1.1/hw/vfio/common.c qemu-4.1.1.mod/hw/vfio/common.c
--- qemu-4.1.1/hw/vfio/common.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/hw/vfio/common.c 2019-12-17 16:51:15.505204666 +0200
@@ -24,6 +24,7 @@
#include <linux/kvm.h>
#endif
#include <linux/vfio.h>
+#include <linux/mman.h>
#include "hw/vfio/vfio-common.h"
#include "hw/vfio/vfio.h"
diff -uNr qemu-4.1.1/hw/vfio/pci-quirks.c qemu-4.1.1.mod/hw/vfio/pci-quirks.c
--- qemu-4.1.1/hw/vfio/pci-quirks.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/hw/vfio/pci-quirks.c 2019-12-17 16:51:15.506204671 +0200
@@ -23,6 +23,8 @@
#include "pci.h"
#include "trace.h"
+#include <linux/mman.h>
+
/* Use uin32_t for vendor & device so PCI_ANY_ID expands and cannot match hw */
static bool vfio_pci_is(VFIOPCIDevice *vdev, uint32_t vendor, uint32_t device)
{
diff -uNr qemu-4.1.1/hw/virtio/vhost-user.c qemu-4.1.1.mod/hw/virtio/vhost-user.c
--- qemu-4.1.1/hw/virtio/vhost-user.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/hw/virtio/vhost-user.c 2019-12-17 16:51:15.506204671 +0200
@@ -31,6 +31,7 @@
#include "standard-headers/linux/vhost_types.h"
#ifdef CONFIG_LINUX
+#include <linux/mman.h>
#include <linux/userfaultfd.h>
#endif
diff -uNr qemu-4.1.1/linux-user/elfload.c qemu-4.1.1.mod/linux-user/elfload.c
--- qemu-4.1.1/linux-user/elfload.c 2019-12-17 16:48:45.801491837 +0200
+++ qemu-4.1.1.mod/linux-user/elfload.c 2019-12-17 16:51:15.507204675 +0200
@@ -2,6 +2,8 @@
#include "qemu/osdep.h"
#include <sys/param.h>
+#include <linux/mman.h>
+
#include <sys/resource.h>
#include <sys/shm.h>
diff -uNr qemu-4.1.1/linux-user/flatload.c qemu-4.1.1.mod/linux-user/flatload.c
--- qemu-4.1.1/linux-user/flatload.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/linux-user/flatload.c 2019-12-17 16:57:00.426741291 +0200
@@ -35,6 +35,8 @@
#include "qemu/osdep.h"
+#include <linux/mman.h>
+
#include "qemu.h"
#include "flat.h"
#include <target_flat.h>
diff -uNr qemu-4.1.1/linux-user/i386/cpu_loop.c qemu-4.1.1.mod/linux-user/i386/cpu_loop.c
--- qemu-4.1.1/linux-user/i386/cpu_loop.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/linux-user/i386/cpu_loop.c 2019-12-17 17:04:55.489657356 +0200
@@ -22,6 +22,8 @@
#include "qemu.h"
#include "cpu_loop-common.h"
+#include <linux/mman.h>
+
/***********************************************************/
/* CPUX86 core interface */
diff -uNr qemu-4.1.1/linux-user/mmap.c qemu-4.1.1.mod/linux-user/mmap.c
--- qemu-4.1.1/linux-user/mmap.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/linux-user/mmap.c 2019-12-17 16:51:15.508204680 +0200
@@ -20,6 +20,8 @@
#include "qemu.h"
+#include <linux/mman.h>
+
//#define DEBUG_MMAP
static pthread_mutex_t mmap_mutex = PTHREAD_MUTEX_INITIALIZER;
diff -uNr qemu-4.1.1/linux-user/syscall.c qemu-4.1.1.mod/linux-user/syscall.c
--- qemu-4.1.1/linux-user/syscall.c 2019-12-17 16:48:07.277308780 +0200
+++ qemu-4.1.1.mod/linux-user/syscall.c 2019-12-17 16:51:15.510204690 +0200
@@ -34,6 +34,7 @@
#include <sys/resource.h>
#include <sys/swap.h>
#include <linux/capability.h>
+#include <linux/mman.h>
#include <sched.h>
#include <sys/timex.h>
#include <sys/socket.h>
diff -uNr qemu-4.1.1/migration/postcopy-ram.c qemu-4.1.1.mod/migration/postcopy-ram.c
--- qemu-4.1.1/migration/postcopy-ram.c 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/migration/postcopy-ram.c 2019-12-17 16:51:15.511204694 +0200
@@ -31,6 +31,8 @@
#include "trace.h"
#include "hw/boards.h"
+#include <linux/mman.h>
+
/* Arbitrary limit on size of each discard command,
* keeps them around ~200 bytes
*/
diff -uNr qemu-4.1.1/util/memfd.c qemu-4.1.1.mod/util/memfd.c
--- qemu-4.1.1/util/memfd.c 2019-11-14 20:06:21.000000000 +0200
+++ qemu-4.1.1.mod/util/memfd.c 2019-12-17 16:51:15.512204699 +0200
@@ -32,6 +32,7 @@
#include "qemu/host-utils.h"
#if defined CONFIG_LINUX && !defined CONFIG_MEMFD
+#include <linux/mman.h>
#include <sys/syscall.h>
#include <asm/unistd.h>
diff -uNr qemu-4.1.1/util/mmap-alloc.c qemu-4.1.1.mod/util/mmap-alloc.c
--- qemu-4.1.1/util/mmap-alloc.c 2019-11-14 20:06:21.000000000 +0200
+++ qemu-4.1.1.mod/util/mmap-alloc.c 2019-12-17 16:51:15.512204699 +0200
@@ -10,7 +10,7 @@
* later. See the COPYING file in the top-level directory.
*/
-#ifdef CONFIG_LINUX
+#ifdef __linux__
#include <linux/mman.h>
#else /* !CONFIG_LINUX */
#define MAP_SYNC 0x0
diff -uNr qemu-4.1.1/util/oslib-posix.c qemu-4.1.1.mod/util/oslib-posix.c
--- qemu-4.1.1/util/oslib-posix.c 2019-11-14 20:06:21.000000000 +0200
+++ qemu-4.1.1.mod/util/oslib-posix.c 2019-12-17 16:51:15.513204704 +0200
@@ -41,6 +41,7 @@
#include "qemu/cutils.h"
#ifdef CONFIG_LINUX
+#include <linux/mman.h>
#include <sys/syscall.h>
#endif
diff -uNr qemu-4.1.1/util/vfio-helpers.c qemu-4.1.1.mod/util/vfio-helpers.c
--- qemu-4.1.1/util/vfio-helpers.c 2019-11-14 20:06:21.000000000 +0200
+++ qemu-4.1.1.mod/util/vfio-helpers.c 2019-12-17 16:51:15.513204704 +0200
@@ -13,6 +13,7 @@
#include "qemu/osdep.h"
#include <sys/ioctl.h>
#include <linux/vfio.h>
+#include <linux/mman.h>
#include "qapi/error.h"
#include "exec/ramlist.h"
#include "exec/cpu-common.h"

View File

@ -0,0 +1,54 @@
diff -uNr qemu-5.2.0/include/qapi/util.h qemu-5.2.0.mod/include/qapi/util.h
--- qemu-5.2.0/include/qapi/util.h 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/include/qapi/util.h 2020-12-09 17:15:41.400859913 +0200
@@ -11,6 +11,10 @@
#ifndef QAPI_UTIL_H
#define QAPI_UTIL_H
+#include <glib.h>
+
+typedef struct Error Error;
+
typedef struct QEnumLookup {
const char *const *array;
int size;
diff -uNr qemu-5.2.0/meson.build qemu-5.2.0.mod/meson.build
--- qemu-5.2.0/meson.build 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/meson.build 2020-12-09 17:18:04.165911853 +0200
@@ -94,11 +94,11 @@
# Specify linker-script with add_project_link_arguments so that it is not placed
# within a linker --start-group/--end-group pair
-if 'CONFIG_FUZZ' in config_host
- add_project_link_arguments(['-Wl,-T,',
- (meson.current_source_dir() / 'tests/qtest/fuzz/fork_fuzz.ld')],
- native: false, language: ['c', 'cpp', 'objc'])
-endif
+#if 'CONFIG_FUZZ' in config_host
+# add_project_link_arguments(['-Wl,-T,',
+# (meson.current_source_dir() / 'tests/qtest/fuzz/fork_fuzz.ld')],
+# native: false, language: ['c', 'cpp', 'objc'])
+#endif
add_project_arguments(config_host['QEMU_CFLAGS'].split(),
native: false, language: ['c', 'objc'])
@@ -1575,8 +1575,8 @@
specific_ss.add_all(when: 'CONFIG_LINUX_USER', if_true: linux_user_ss)
# needed for fuzzing binaries
-subdir('tests/qtest/libqos')
-subdir('tests/qtest/fuzz')
+#subdir('tests/qtest/libqos')
+#subdir('tests/qtest/fuzz')
########################
# Library dependencies #
diff -uNr qemu-5.2.0/tests/meson.build qemu-5.2.0.mod/tests/meson.build
--- qemu-5.2.0/tests/meson.build 2020-12-08 18:59:44.000000000 +0200
+++ qemu-5.2.0.mod/tests/meson.build 2020-12-09 17:24:07.616614694 +0200
@@ -286,5 +286,4 @@
endif
subdir('qapi-schema')
-subdir('qtest')
subdir('migration')

View File

@ -1,6 +1,5 @@
diff -uNr qemu-4.2.0/tcg/i386/tcg-target.inc.c qemu-4.2.0.mod/tcg/i386/tcg-target.inc.c
--- qemu-4.2.0/tcg/i386/tcg-target.inc.c 2019-12-12 20:20:48.000000000 +0200
+++ qemu-4.2.0.mod/tcg/i386/tcg-target.inc.c 2019-12-15 00:06:29.506302636 +0200
--- qemu-4.2.0/tcg/i386/tcg-target.c.inc
+++ qemu-4.2.0.mod/tcg/i386/tcg-target.c.inc
@@ -1968,7 +1968,12 @@
# if defined(__x86_64__) && defined(__linux__)
# include <asm/prctl.h>

View File

@ -1,112 +0,0 @@
https://github.com/qemu/qemu/commit/6fd5944980f4ccee728ce34bdaffc117db50b34d
diff -uNr qemu-4.1.1/linux-user/elfload.c qemu-4.1.1.mod/linux-user/elfload.c
--- qemu-4.1.1/linux-user/elfload.c 2020-02-13 22:19:06.939675451 +0200
+++ qemu-4.1.1.mod/linux-user/elfload.c 2020-02-13 22:22:26.853718260 +0200
@@ -11,6 +11,7 @@
#include "disas/disas.h"
#include "qemu/path.h"
#include "qemu/guest-random.h"
+#include "qemu/units.h"
#ifdef _ARCH_PPC64
#undef ARCH_DLINFO
@@ -2340,24 +2341,51 @@
}
}
- load_addr = loaddr;
- if (ehdr->e_type == ET_DYN) {
- /* The image indicates that it can be loaded anywhere. Find a
- location that can hold the memory space required. If the
- image is pre-linked, LOADDR will be non-zero. Since we do
- not supply MAP_FIXED here we'll use that address if and
- only if it remains available. */
- load_addr = target_mmap(loaddr, hiaddr - loaddr, PROT_NONE,
- MAP_PRIVATE | MAP_ANON | MAP_NORESERVE,
- -1, 0);
- if (load_addr == -1) {
- goto exit_perror;
- }
- } else if (pinterp_name != NULL) {
- /* This is the main executable. Make sure that the low
- address does not conflict with MMAP_MIN_ADDR or the
- QEMU application itself. */
- probe_guest_base(image_name, loaddr, hiaddr);
+ if (pinterp_name != NULL) {
+ /*
+ * This is the main executable.
+ *
+ * Reserve extra space for brk.
+ * We hold on to this space while placing the interpreter
+ * and the stack, lest they be placed immediately after
+ * the data segment and block allocation from the brk.
+ *
+ * 16MB is chosen as "large enough" without being so large
+ * as to allow the result to not fit with a 32-bit guest on
+ * a 32-bit host.
+ */
+ info->reserve_brk = 16 * MiB;
+ hiaddr += info->reserve_brk;
+
+ if (ehdr->e_type == ET_EXEC) {
+ /*
+ * Make sure that the low address does not conflict with
+ * MMAP_MIN_ADDR or the QEMU application itself.
+ */
+ probe_guest_base(image_name, loaddr, hiaddr);
+ }
+ }
+
+ /*
+ * Reserve address space for all of this.
+ *
+ * In the case of ET_EXEC, we supply MAP_FIXED so that we get
+ * exactly the address range that is required.
+ *
+ * Otherwise this is ET_DYN, and we are searching for a location
+ * that can hold the memory space required. If the image is
+ * pre-linked, LOADDR will be non-zero, and the kernel should
+ * honor that address if it happens to be free.
+ *
+ * In both cases, we will overwrite pages in this range with mappings
+ * from the executable.
+ */
+ load_addr = target_mmap(loaddr, hiaddr - loaddr, PROT_NONE,
+ MAP_PRIVATE | MAP_ANON | MAP_NORESERVE |
+ (ehdr->e_type == ET_EXEC ? MAP_FIXED : 0),
+ -1, 0);
+ if (load_addr == -1) {
+ goto exit_perror;
}
load_bias = load_addr - loaddr;
@@ -2834,6 +2862,17 @@
bprm->core_dump = &elf_core_dump;
#endif
+ /*
+ * If we reserved extra space for brk, release it now.
+ * The implementation of do_brk in syscalls.c expects to be able
+ * to mmap pages in this space.
+ */
+ if (info->reserve_brk) {
+ abi_ulong start_brk = HOST_PAGE_ALIGN(info->brk);
+ abi_ulong end_brk = HOST_PAGE_ALIGN(info->brk + info->reserve_brk);
+ target_munmap(start_brk, end_brk - start_brk);
+ }
+
return 0;
}
diff -uNr qemu-4.1.1/linux-user/qemu.h qemu-4.1.1.mod/linux-user/qemu.h
--- qemu-4.1.1/linux-user/qemu.h 2019-11-14 20:06:20.000000000 +0200
+++ qemu-4.1.1.mod/linux-user/qemu.h 2020-02-13 22:22:26.854718265 +0200
@@ -36,6 +36,7 @@
abi_ulong end_data;
abi_ulong start_brk;
abi_ulong brk;
+ abi_ulong reserve_brk;
abi_ulong start_mmap;
abi_ulong start_stack;
abi_ulong stack_limit;

View File

@ -2,13 +2,11 @@ TERMUX_PKG_HOMEPAGE=https://www.qemu.org
TERMUX_PKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Leonid Pliushch <leonid.pliushch@gmail.com>"
# Do not update version unless you verified that it works properly.
_PACKAGE_VERSION=4.2.1
TERMUX_PKG_VERSION=1:${_PACKAGE_VERSION}
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=https://download.qemu.org/qemu-${_PACKAGE_VERSION}.tar.xz
TERMUX_PKG_SHA256="7e331163b72e7bcf63bd35cb85cba87b48d12fab3f264b94c23f7d3991094207"
TERMUX_PKG_DEPENDS="attr, glib, libbz2, libc++, libcap, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_PKG_VERSION=1:5.2.0
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://download.qemu.org/qemu-${TERMUX_PKG_VERSION:2}.tar.xz
TERMUX_PKG_SHA256="cb18d889b628fbe637672b0326789d9b0e3b8027e0445b936537c78549df17bc"
TERMUX_PKG_DEPENDS="attr, glib, libbz2, libc++, libcap-ng, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_PKG_CONFLICTS="qemu-system-x86_64, qemu-system-x86_64-headless, qemu-system-x86-64-headless"
TERMUX_PKG_REPLACES="qemu-system-x86_64, qemu-system-x86_64-headless, qemu-system-x86-64-headless"
TERMUX_PKG_PROVIDES="qemu-system-x86_64"
@ -22,7 +20,8 @@ bin/qemu-img
bin/qemu-io
bin/qemu-nbd
bin/qemu-pr-helper
bin/virtfs-proxy-helper
bin/qemu-storage-daemon
libexec/virtfs-proxy-helper
libexec/qemu-bridge-helper
share/applications
share/icons
@ -31,11 +30,15 @@ share/man/man1/qemu.1*
share/man/man1/qemu-img.1*
share/man/man1/virtfs-proxy-helper.1*
share/man/man7
share/man/man8/qemu-ga.8*
share/man/man8/qemu-nbd.8*
share/man/man8/qemu-pr-helper.8*
share/qemu
"
termux_step_configure() {
termux_setup_ninja
local QEMU_TARGETS=""
# System emulation.

View File

@ -1,5 +1,5 @@
TERMUX_SUBPKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap-ng, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_CONFLICTS="qemy-system-aarch64-headless"
TERMUX_SUBPKG_DEPEND_ON_PARENT=no

View File

@ -1,5 +1,5 @@
TERMUX_SUBPKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap-ng, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_CONFLICTS="qemy-system-arm-headless"
TERMUX_SUBPKG_DEPEND_ON_PARENT=no

View File

@ -1,5 +1,5 @@
TERMUX_SUBPKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap-ng, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_CONFLICTS="qemy-system-i386-headless"
TERMUX_SUBPKG_DEPEND_ON_PARENT=no

View File

@ -1,5 +1,5 @@
TERMUX_SUBPKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap-ng, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_CONFLICTS="qemy-system-riscv32-headless"
TERMUX_SUBPKG_DEPEND_ON_PARENT=no

View File

@ -1,5 +1,5 @@
TERMUX_SUBPKG_DESCRIPTION="A generic and open source machine emulator and virtualizer"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_DEPENDS="attr, glib, libbz2, libc++, libcap-ng, libcurl, libgcrypt, libiconv, libjpeg-turbo, liblzo, libnfs, libpixman, libpng, libssh, libx11, ncurses, qemu-common, resolv-conf, sdl2, sdl2-image, zlib"
TERMUX_SUBPKG_CONFLICTS="qemy-system-riscv64-headless"
TERMUX_SUBPKG_DEPEND_ON_PARENT=no