mirror of
https://github.com/flatcar/scripts.git
synced 2025-10-02 19:11:20 +02:00
app-emulation/qemu: Sync with Gentoo upstream
Link1: 3452fc9c05
Signed-off-by: Sayan Chowdhury <sayan@kinvolk.io>
This commit is contained in:
parent
818e27951e
commit
45110250e9
@ -1 +1 @@
|
||||
DIST qemu-5.0.0.tar.xz 62426192 BLAKE2B 785d02ef79c95b5c4f0556186054885f9893d4e8a9f4b4f2d6199a4e1ae9c31d7c79dd900305469217f85d61bbe74134b601d5c6c1b0eee2b74792d010f1fd63 SHA512 21ef0cbe107c468a40f0fa2635db2a40048c8790b629dfffca5cd62bb1b502ea8eb133bfc40df5ecf1489e2bffe87f6829aee041cb8a380ff04a8afa23b39fcf
|
||||
DIST qemu-5.2.0.tar.xz 106902800 BLAKE2B 4413d5591cbabf80faba5b0b7347ee7749ff0a71af44bdf7f64b1995e17ecf1f3df539fa8e63959e0d50cd0502a41a2921e60cc6d078ed8ab5b09ab4b86d4ed7 SHA512 bddd633ce111471ebc651e03080251515178808556b49a308a724909e55dac0be0cc0c79c536ac12d239678ae94c60100dc124be9b9d9538340c03a2f27177f3
|
||||
|
3
sdk_container/src/third_party/coreos-overlay/app-emulation/qemu/files/65-kvm.rules-r2
vendored
Normal file
3
sdk_container/src/third_party/coreos-overlay/app-emulation/qemu/files/65-kvm.rules-r2
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
KERNEL=="kvm", GROUP="kvm", MODE="0660"
|
||||
KERNEL=="vhost-net", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-net"
|
||||
KERNEL=="vhost-vsock", GROUP="kvm", MODE="0660", OPTIONS+="static_node=vhost-vsock"
|
@ -1,13 +0,0 @@
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -4468,10 +4468,6 @@ fi
|
||||
if test "$gcov" = "yes" ; then
|
||||
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"
|
||||
-elif test "$debug" = "no"; then
|
||||
- CFLAGS="-O2 $CFLAGS"
|
||||
fi
|
||||
|
||||
##########################################
|
@ -1,15 +0,0 @@
|
||||
Linux C libs are moving away from implicit header pollution with sys/types.h
|
||||
|
||||
--- a/include/qemu/osdep.h
|
||||
+++ b/include/qemu/osdep.h
|
||||
@@ -78,6 +78,10 @@ extern int daemon(int, int);
|
||||
#include <assert.h>
|
||||
#include <signal.h>
|
||||
|
||||
+#ifdef __linux__
|
||||
+#include <sys/sysmacros.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef __OpenBSD__
|
||||
#include <sys/signal.h>
|
||||
#endif
|
@ -1,61 +0,0 @@
|
||||
From 0fb766134bd97ead71646e13349f93769e536ed9 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Maier <tamiko@43-1.org>
|
||||
Date: Fri, 17 May 2019 02:21:10 -0500
|
||||
Subject: [PATCH] Define md-clear bit, expose md-no CPUID
|
||||
|
||||
Fixes for CVE-2018-121{26|27|30}, CVE-2019-11091
|
||||
|
||||
See related fixes for Ubuntu:
|
||||
https://launchpad.net/ubuntu/+source/qemu/1:3.1+dfsg-2ubuntu3.1
|
||||
---
|
||||
target/i386/cpu.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
||||
index d6bb57d2..331a364a 100644
|
||||
--- a/target/i386/cpu.c
|
||||
+++ b/target/i386/cpu.c
|
||||
@@ -1076,7 +1076,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||
.feat_names = {
|
||||
NULL, NULL, "avx512-4vnniw", "avx512-4fmaps",
|
||||
NULL, NULL, NULL, NULL,
|
||||
- NULL, NULL, NULL, NULL,
|
||||
+ NULL, NULL, "md-clear", NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
@@ -1183,7 +1183,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = {
|
||||
.type = MSR_FEATURE_WORD,
|
||||
.feat_names = {
|
||||
"rdctl-no", "ibrs-all", "rsba", "skip-l1dfl-vmentry",
|
||||
- "ssb-no", NULL, NULL, NULL,
|
||||
+ "ssb-no", "mds-no", NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL,
|
||||
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
||||
index 83fb5225..d0bab4d7 100644
|
||||
--- a/target/i386/cpu.h
|
||||
+++ b/target/i386/cpu.h
|
||||
@@ -694,6 +694,7 @@ typedef uint32_t FeatureWordArray[FEATURE_WORDS];
|
||||
|
||||
#define CPUID_7_0_EDX_AVX512_4VNNIW (1U << 2) /* AVX512 Neural Network Instructions */
|
||||
#define CPUID_7_0_EDX_AVX512_4FMAPS (1U << 3) /* AVX512 Multiply Accumulation Single Precision */
|
||||
+#define CPUID_7_0_EDX_MD_CLEAR (1U << 10) /* Microarchitectural Data Clear */
|
||||
#define CPUID_7_0_EDX_SPEC_CTRL (1U << 26) /* Speculation Control */
|
||||
#define CPUID_7_0_EDX_ARCH_CAPABILITIES (1U << 29) /*Arch Capabilities*/
|
||||
#define CPUID_7_0_EDX_SPEC_CTRL_SSBD (1U << 31) /* Speculative Store Bypass Disable */
|
||||
diff --git a/target/i386/hvf/x86_cpuid.c b/target/i386/hvf/x86_cpuid.c
|
||||
index 4d957fe8..b453552f 100644
|
||||
--- a/target/i386/hvf/x86_cpuid.c
|
||||
+++ b/target/i386/hvf/x86_cpuid.c
|
||||
@@ -90,7 +90,8 @@ uint32_t hvf_get_supported_cpuid(uint32_t func, uint32_t idx,
|
||||
}
|
||||
|
||||
ecx &= CPUID_7_0_ECX_AVX512BMI | CPUID_7_0_ECX_AVX512_VPOPCNTDQ;
|
||||
- edx &= CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS;
|
||||
+ edx &= CPUID_7_0_EDX_AVX512_4VNNIW | CPUID_7_0_EDX_AVX512_4FMAPS | \
|
||||
+ CPUID_7_0_EDX_MD_CLEAR;
|
||||
} else {
|
||||
ebx = 0;
|
||||
ecx = 0;
|
@ -1,12 +0,0 @@
|
||||
diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c
|
||||
index d1660b64..86715bfd 100644
|
||||
--- a/hw/rdma/rdma_backend.c
|
||||
+++ b/hw/rdma/rdma_backend.c
|
||||
@@ -21,7 +21,6 @@
|
||||
#include "qapi/qapi-events-rdma.h"
|
||||
|
||||
#include <infiniband/verbs.h>
|
||||
-#include <infiniband/umad_types.h>
|
||||
#include <infiniband/umad.h>
|
||||
#include <rdma/rdma_user_cm.h>
|
||||
|
@ -1,334 +0,0 @@
|
||||
From 6d5d5dde9adb5acb32e6b8e3dfbf47fff0f308d2 Mon Sep 17 00:00:00 2001
|
||||
From: =?utf8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||
Date: Thu, 18 Jul 2019 15:06:41 +0200
|
||||
Subject: [PATCH] linux-user: fix to handle variably sized SIOCGSTAMP with new
|
||||
kernels
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=utf8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The SIOCGSTAMP symbol was previously defined in the
|
||||
asm-generic/sockios.h header file. QEMU sees that header
|
||||
indirectly via sys/socket.h
|
||||
|
||||
In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
|
||||
the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
|
||||
Instead it provides only SIOCGSTAMP_OLD, which only uses a
|
||||
32-bit time_t on 32-bit architectures.
|
||||
|
||||
The linux/sockios.h header then defines SIOCGSTAMP using
|
||||
either SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. If
|
||||
SIOCGSTAMP_NEW is used, then the tv_sec field is 64-bit even
|
||||
on 32-bit architectures
|
||||
|
||||
To cope with this we must now convert the old and new type from
|
||||
the target to the host one.
|
||||
|
||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
|
||||
Message-Id: <20190718130641.15294-1-laurent@vivier.eu>
|
||||
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
|
||||
---
|
||||
linux-user/ioctls.h | 21 ++++++-
|
||||
linux-user/syscall.c | 140 ++++++++++++++++++++++++++++++++++++---------
|
||||
linux-user/syscall_defs.h | 30 +++++++++-
|
||||
linux-user/syscall_types.h | 6 --
|
||||
4 files changed, 159 insertions(+), 38 deletions(-)
|
||||
|
||||
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
|
||||
index ae895162..e6a27ad9 100644
|
||||
--- a/linux-user/ioctls.h
|
||||
+++ b/linux-user/ioctls.h
|
||||
@@ -219,8 +219,25 @@
|
||||
IOCTL(SIOCGRARP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_arpreq)))
|
||||
IOCTL(SIOCGIWNAME, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_char_ifreq)))
|
||||
IOCTL(SIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) /* pid_t */
|
||||
- IOCTL(SIOCGSTAMP, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timeval)))
|
||||
- IOCTL(SIOCGSTAMPNS, IOC_R, MK_PTR(MK_STRUCT(STRUCT_timespec)))
|
||||
+
|
||||
+ /*
|
||||
+ * We can't use IOCTL_SPECIAL() because it will set
|
||||
+ * host_cmd to XXX_OLD and XXX_NEW and these macros
|
||||
+ * are not defined with kernel prior to 5.2.
|
||||
+ * We must set host_cmd to the same value as in target_cmd
|
||||
+ * otherwise the consistency check in syscall_init()
|
||||
+ * will trigger an error.
|
||||
+ * host_cmd is ignored by the do_ioctl_XXX() helpers.
|
||||
+ * FIXME: create a macro to define this kind of entry
|
||||
+ */
|
||||
+ { TARGET_SIOCGSTAMP_OLD, TARGET_SIOCGSTAMP_OLD,
|
||||
+ "SIOCGSTAMP_OLD", IOC_R, do_ioctl_SIOCGSTAMP },
|
||||
+ { TARGET_SIOCGSTAMPNS_OLD, TARGET_SIOCGSTAMPNS_OLD,
|
||||
+ "SIOCGSTAMPNS_OLD", IOC_R, do_ioctl_SIOCGSTAMPNS },
|
||||
+ { TARGET_SIOCGSTAMP_NEW, TARGET_SIOCGSTAMP_NEW,
|
||||
+ "SIOCGSTAMP_NEW", IOC_R, do_ioctl_SIOCGSTAMP },
|
||||
+ { TARGET_SIOCGSTAMPNS_NEW, TARGET_SIOCGSTAMPNS_NEW,
|
||||
+ "SIOCGSTAMPNS_NEW", IOC_R, do_ioctl_SIOCGSTAMPNS },
|
||||
|
||||
IOCTL(RNDGETENTCNT, IOC_R, MK_PTR(TYPE_INT))
|
||||
IOCTL(RNDADDTOENTCNT, IOC_W, MK_PTR(TYPE_INT))
|
||||
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
|
||||
index 96cd4bf8..6df480e1 100644
|
||||
--- a/linux-user/syscall.c
|
||||
+++ b/linux-user/syscall.c
|
||||
@@ -37,6 +37,7 @@
|
||||
#include <sched.h>
|
||||
#include <sys/timex.h>
|
||||
#include <sys/socket.h>
|
||||
+#include <linux/sockios.h>
|
||||
#include <sys/un.h>
|
||||
#include <sys/uio.h>
|
||||
#include <poll.h>
|
||||
@@ -1139,8 +1140,9 @@ static inline abi_long copy_from_user_timeval(struct timeval *tv,
|
||||
{
|
||||
struct target_timeval *target_tv;
|
||||
|
||||
- if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1))
|
||||
+ if (!lock_user_struct(VERIFY_READ, target_tv, target_tv_addr, 1)) {
|
||||
return -TARGET_EFAULT;
|
||||
+ }
|
||||
|
||||
__get_user(tv->tv_sec, &target_tv->tv_sec);
|
||||
__get_user(tv->tv_usec, &target_tv->tv_usec);
|
||||
@@ -1155,8 +1157,26 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
|
||||
{
|
||||
struct target_timeval *target_tv;
|
||||
|
||||
- if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0))
|
||||
+ if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+
|
||||
+ __put_user(tv->tv_sec, &target_tv->tv_sec);
|
||||
+ __put_user(tv->tv_usec, &target_tv->tv_usec);
|
||||
+
|
||||
+ unlock_user_struct(target_tv, target_tv_addr, 1);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static inline abi_long copy_to_user_timeval64(abi_ulong target_tv_addr,
|
||||
+ const struct timeval *tv)
|
||||
+{
|
||||
+ struct target__kernel_sock_timeval *target_tv;
|
||||
+
|
||||
+ if (!lock_user_struct(VERIFY_WRITE, target_tv, target_tv_addr, 0)) {
|
||||
return -TARGET_EFAULT;
|
||||
+ }
|
||||
|
||||
__put_user(tv->tv_sec, &target_tv->tv_sec);
|
||||
__put_user(tv->tv_usec, &target_tv->tv_usec);
|
||||
@@ -1166,6 +1186,48 @@ static inline abi_long copy_to_user_timeval(abi_ulong target_tv_addr,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static inline abi_long target_to_host_timespec(struct timespec *host_ts,
|
||||
+ abi_ulong target_addr)
|
||||
+{
|
||||
+ struct target_timespec *target_ts;
|
||||
+
|
||||
+ if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ __get_user(host_ts->tv_sec, &target_ts->tv_sec);
|
||||
+ __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
|
||||
+ unlock_user_struct(target_ts, target_addr, 0);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static inline abi_long host_to_target_timespec(abi_ulong target_addr,
|
||||
+ struct timespec *host_ts)
|
||||
+{
|
||||
+ struct target_timespec *target_ts;
|
||||
+
|
||||
+ if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ __put_user(host_ts->tv_sec, &target_ts->tv_sec);
|
||||
+ __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
|
||||
+ unlock_user_struct(target_ts, target_addr, 1);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static inline abi_long host_to_target_timespec64(abi_ulong target_addr,
|
||||
+ struct timespec *host_ts)
|
||||
+{
|
||||
+ struct target__kernel_timespec *target_ts;
|
||||
+
|
||||
+ if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ __put_user(host_ts->tv_sec, &target_ts->tv_sec);
|
||||
+ __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
|
||||
+ unlock_user_struct(target_ts, target_addr, 1);
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static inline abi_long copy_from_user_timezone(struct timezone *tz,
|
||||
abi_ulong target_tz_addr)
|
||||
{
|
||||
@@ -4790,6 +4852,54 @@ static abi_long do_ioctl_kdsigaccept(const IOCTLEntry *ie, uint8_t *buf_temp,
|
||||
return get_errno(safe_ioctl(fd, ie->host_cmd, sig));
|
||||
}
|
||||
|
||||
+static abi_long do_ioctl_SIOCGSTAMP(const IOCTLEntry *ie, uint8_t *buf_temp,
|
||||
+ int fd, int cmd, abi_long arg)
|
||||
+{
|
||||
+ struct timeval tv;
|
||||
+ abi_long ret;
|
||||
+
|
||||
+ ret = get_errno(safe_ioctl(fd, SIOCGSTAMP, &tv));
|
||||
+ if (is_error(ret)) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ if (cmd == (int)TARGET_SIOCGSTAMP_OLD) {
|
||||
+ if (copy_to_user_timeval(arg, &tv)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ } else {
|
||||
+ if (copy_to_user_timeval64(arg, &tv)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+static abi_long do_ioctl_SIOCGSTAMPNS(const IOCTLEntry *ie, uint8_t *buf_temp,
|
||||
+ int fd, int cmd, abi_long arg)
|
||||
+{
|
||||
+ struct timespec ts;
|
||||
+ abi_long ret;
|
||||
+
|
||||
+ ret = get_errno(safe_ioctl(fd, SIOCGSTAMPNS, &ts));
|
||||
+ if (is_error(ret)) {
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ if (cmd == (int)TARGET_SIOCGSTAMPNS_OLD) {
|
||||
+ if (host_to_target_timespec(arg, &ts)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ } else{
|
||||
+ if (host_to_target_timespec64(arg, &ts)) {
|
||||
+ return -TARGET_EFAULT;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
#ifdef TIOCGPTPEER
|
||||
static abi_long do_ioctl_tiocgptpeer(const IOCTLEntry *ie, uint8_t *buf_temp,
|
||||
int fd, int cmd, abi_long arg)
|
||||
@@ -6160,32 +6270,6 @@ static inline abi_long target_ftruncate64(void *cpu_env, abi_long arg1,
|
||||
}
|
||||
#endif
|
||||
|
||||
-static inline abi_long target_to_host_timespec(struct timespec *host_ts,
|
||||
- abi_ulong target_addr)
|
||||
-{
|
||||
- struct target_timespec *target_ts;
|
||||
-
|
||||
- if (!lock_user_struct(VERIFY_READ, target_ts, target_addr, 1))
|
||||
- return -TARGET_EFAULT;
|
||||
- __get_user(host_ts->tv_sec, &target_ts->tv_sec);
|
||||
- __get_user(host_ts->tv_nsec, &target_ts->tv_nsec);
|
||||
- unlock_user_struct(target_ts, target_addr, 0);
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-static inline abi_long host_to_target_timespec(abi_ulong target_addr,
|
||||
- struct timespec *host_ts)
|
||||
-{
|
||||
- struct target_timespec *target_ts;
|
||||
-
|
||||
- if (!lock_user_struct(VERIFY_WRITE, target_ts, target_addr, 0))
|
||||
- return -TARGET_EFAULT;
|
||||
- __put_user(host_ts->tv_sec, &target_ts->tv_sec);
|
||||
- __put_user(host_ts->tv_nsec, &target_ts->tv_nsec);
|
||||
- unlock_user_struct(target_ts, target_addr, 1);
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
static inline abi_long target_to_host_itimerspec(struct itimerspec *host_itspec,
|
||||
abi_ulong target_addr)
|
||||
{
|
||||
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
|
||||
index 12c84071..cfb3eeec 100644
|
||||
--- a/linux-user/syscall_defs.h
|
||||
+++ b/linux-user/syscall_defs.h
|
||||
@@ -208,16 +208,34 @@ struct target_linger {
|
||||
abi_int l_linger; /* How long to linger for */
|
||||
};
|
||||
|
||||
+#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
|
||||
+struct target_timeval {
|
||||
+ abi_long tv_sec;
|
||||
+ abi_int tv_usec;
|
||||
+};
|
||||
+#define target__kernel_sock_timeval target_timeval
|
||||
+#else
|
||||
struct target_timeval {
|
||||
abi_long tv_sec;
|
||||
abi_long tv_usec;
|
||||
};
|
||||
|
||||
+struct target__kernel_sock_timeval {
|
||||
+ abi_llong tv_sec;
|
||||
+ abi_llong tv_usec;
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
struct target_timespec {
|
||||
abi_long tv_sec;
|
||||
abi_long tv_nsec;
|
||||
};
|
||||
|
||||
+struct target__kernel_timespec {
|
||||
+ abi_llong tv_sec;
|
||||
+ abi_llong tv_nsec;
|
||||
+};
|
||||
+
|
||||
struct target_timezone {
|
||||
abi_int tz_minuteswest;
|
||||
abi_int tz_dsttime;
|
||||
@@ -743,8 +761,17 @@ struct target_pollfd {
|
||||
#define TARGET_SIOCATMARK 0x8905
|
||||
#define TARGET_SIOCGPGRP 0x8904
|
||||
#endif
|
||||
-#define TARGET_SIOCGSTAMP 0x8906 /* Get stamp (timeval) */
|
||||
-#define TARGET_SIOCGSTAMPNS 0x8907 /* Get stamp (timespec) */
|
||||
+
|
||||
+#if defined(TARGET_SH4)
|
||||
+#define TARGET_SIOCGSTAMP_OLD TARGET_IOR('s', 100, struct target_timeval)
|
||||
+#define TARGET_SIOCGSTAMPNS_OLD TARGET_IOR('s', 101, struct target_timespec)
|
||||
+#else
|
||||
+#define TARGET_SIOCGSTAMP_OLD 0x8906
|
||||
+#define TARGET_SIOCGSTAMPNS_OLD 0x8907
|
||||
+#endif
|
||||
+
|
||||
+#define TARGET_SIOCGSTAMP_NEW TARGET_IOR(0x89, 0x06, abi_llong[2])
|
||||
+#define TARGET_SIOCGSTAMPNS_NEW TARGET_IOR(0x89, 0x07, abi_llong[2])
|
||||
|
||||
/* Networking ioctls */
|
||||
#define TARGET_SIOCADDRT 0x890B /* add routing table entry */
|
||||
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
|
||||
index b98a23b0..4e369838 100644
|
||||
--- a/linux-user/syscall_types.h
|
||||
+++ b/linux-user/syscall_types.h
|
||||
@@ -14,12 +14,6 @@ STRUCT(serial_icounter_struct,
|
||||
STRUCT(sockaddr,
|
||||
TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14))
|
||||
|
||||
-STRUCT(timeval,
|
||||
- MK_ARRAY(TYPE_LONG, 2))
|
||||
-
|
||||
-STRUCT(timespec,
|
||||
- MK_ARRAY(TYPE_LONG, 2))
|
||||
-
|
||||
STRUCT(rtentry,
|
||||
TYPE_ULONG, MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr), MK_STRUCT(STRUCT_sockaddr),
|
||||
TYPE_SHORT, TYPE_SHORT, TYPE_ULONG, TYPE_PTRVOID, TYPE_SHORT, TYPE_PTRVOID,
|
@ -1,12 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 04a0d450..e0013a59 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -803,6 +802,7 @@
|
||||
$(call install-prog,$(HELPERS-y),$(DESTDIR)$(libexecdir))
|
||||
endif
|
||||
ifdef CONFIG_TRACE_SYSTEMTAP
|
||||
+ mkdir -p $(DESTDIR)$(bindir)
|
||||
$(INSTALL_PROG) "scripts/qemu-trace-stap" $(DESTDIR)$(bindir)
|
||||
endif
|
||||
ifneq ($(BLOBS),)
|
@ -1,135 +0,0 @@
|
||||
Backport of QEMU v4.1 commit for stable v4.0.1 release
|
||||
|
||||
commit c87759ce876a7a0b17c2bf4f0b964bd51f0ee871
|
||||
Author: Alex Williamson <address@hidden>
|
||||
Date: Tue May 14 14:14:41 2019 -0600
|
||||
|
||||
q35: Revert to kernel irqchip
|
||||
|
||||
Commit b2fc91db8447 ("q35: set split kernel irqchip as default") changed
|
||||
the default for the pc-q35-4.0 machine type to use split irqchip, which
|
||||
turned out to have disasterous effects on vfio-pci INTx support. KVM
|
||||
resampling irqfds are registered for handling these interrupts, but
|
||||
these are non-functional in split irqchip mode. We can't simply test
|
||||
for split irqchip in QEMU as userspace handling of this interrupt is a
|
||||
significant performance regression versus KVM handling (GeForce GPUs
|
||||
assigned to Windows VMs are non-functional without forcing MSI mode or
|
||||
re-enabling kernel irqchip).
|
||||
|
||||
The resolution is to revert the change in default irqchip mode in the
|
||||
pc-q35-4.1 machine and create a pc-q35-4.0.1 machine for the 4.0-stable
|
||||
branch. The qemu-q35-4.0 machine type should not be used in vfio-pci
|
||||
configurations for devices requiring legacy INTx support without
|
||||
explicitly modifying the VM configuration to use kernel irqchip.
|
||||
|
||||
Link: https://bugs.launchpad.net/qemu/+bug/1826422
|
||||
Fixes: b2fc91db8447 ("q35: set split kernel irqchip as default")
|
||||
Cc: address@hidden
|
||||
Reviewed-by: Peter Xu <address@hidden>
|
||||
Signed-off-by: Alex Williamson <address@hidden>
|
||||
---
|
||||
|
||||
Same code as v1, just updating the commit log as a formal backport of
|
||||
the merged 4.1 commit.
|
||||
|
||||
hw/core/machine.c | 3 +++
|
||||
hw/i386/pc.c | 3 +++
|
||||
hw/i386/pc_q35.c | 16 ++++++++++++++--
|
||||
include/hw/boards.h | 3 +++
|
||||
include/hw/i386/pc.h | 3 +++
|
||||
5 files changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
||||
index 743fef28982c..5d046a43e3d2 100644
|
||||
--- a/hw/core/machine.c
|
||||
+++ b/hw/core/machine.c
|
||||
@@ -24,6 +24,9 @@
|
||||
#include "hw/pci/pci.h"
|
||||
#include "hw/mem/nvdimm.h"
|
||||
|
||||
+GlobalProperty hw_compat_4_0[] = {};
|
||||
+const size_t hw_compat_4_0_len = G_N_ELEMENTS(hw_compat_4_0);
|
||||
+
|
||||
GlobalProperty hw_compat_3_1[] = {
|
||||
{ "pcie-root-port", "x-speed", "2_5" },
|
||||
{ "pcie-root-port", "x-width", "1" },
|
||||
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
|
||||
index f2c15bf1f2c3..d98b737b8f3b 100644
|
||||
--- a/hw/i386/pc.c
|
||||
+++ b/hw/i386/pc.c
|
||||
@@ -115,6 +115,9 @@ struct hpet_fw_config hpet_cfg = {.count = UINT8_MAX};
|
||||
/* Physical Address of PVH entry point read from kernel ELF NOTE */
|
||||
static size_t pvh_start_addr;
|
||||
|
||||
+GlobalProperty pc_compat_4_0[] = {};
|
||||
+const size_t pc_compat_4_0_len = G_N_ELEMENTS(pc_compat_4_0);
|
||||
+
|
||||
GlobalProperty pc_compat_3_1[] = {
|
||||
{ "intel-iommu", "dma-drain", "off" },
|
||||
{ "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
||||
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
|
||||
index 372c6b73bebd..45cc29d1adb7 100644
|
||||
--- a/hw/i386/pc_q35.c
|
||||
+++ b/hw/i386/pc_q35.c
|
||||
@@ -357,7 +357,7 @@ static void pc_q35_machine_options(MachineClass *m)
|
||||
m->units_per_default_bus = 1;
|
||||
m->default_machine_opts = "firmware=bios-256k.bin";
|
||||
m->default_display = "std";
|
||||
- m->default_kernel_irqchip_split = true;
|
||||
+ m->default_kernel_irqchip_split = false;
|
||||
m->no_floppy = 1;
|
||||
machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
|
||||
machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
|
||||
@@ -365,12 +365,24 @@ static void pc_q35_machine_options(MachineClass *m)
|
||||
m->max_cpus = 288;
|
||||
}
|
||||
|
||||
-static void pc_q35_4_0_machine_options(MachineClass *m)
|
||||
+static void pc_q35_4_0_1_machine_options(MachineClass *m)
|
||||
{
|
||||
pc_q35_machine_options(m);
|
||||
m->alias = "q35";
|
||||
}
|
||||
|
||||
+DEFINE_Q35_MACHINE(v4_0_1, "pc-q35-4.0.1", NULL,
|
||||
+ pc_q35_4_0_1_machine_options);
|
||||
+
|
||||
+static void pc_q35_4_0_machine_options(MachineClass *m)
|
||||
+{
|
||||
+ pc_q35_4_0_1_machine_options(m);
|
||||
+ m->default_kernel_irqchip_split = true;
|
||||
+ m->alias = NULL;
|
||||
+ compat_props_add(m->compat_props, hw_compat_4_0, hw_compat_4_0_len);
|
||||
+ compat_props_add(m->compat_props, pc_compat_4_0, pc_compat_4_0_len);
|
||||
+}
|
||||
+
|
||||
DEFINE_Q35_MACHINE(v4_0, "pc-q35-4.0", NULL,
|
||||
pc_q35_4_0_machine_options);
|
||||
|
||||
diff --git a/include/hw/boards.h b/include/hw/boards.h
|
||||
index e231860666a1..fe1885cbffa0 100644
|
||||
--- a/include/hw/boards.h
|
||||
+++ b/include/hw/boards.h
|
||||
@@ -293,6 +293,9 @@ struct MachineState {
|
||||
} \
|
||||
type_init(machine_initfn##_register_types)
|
||||
|
||||
+extern GlobalProperty hw_compat_4_0[];
|
||||
+extern const size_t hw_compat_4_0_len;
|
||||
+
|
||||
extern GlobalProperty hw_compat_3_1[];
|
||||
extern const size_t hw_compat_3_1_len;
|
||||
|
||||
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
|
||||
index ca65ef18afb4..43df7230a22b 100644
|
||||
--- a/include/hw/i386/pc.h
|
||||
+++ b/include/hw/i386/pc.h
|
||||
@@ -293,6 +293,9 @@ int e820_add_entry(uint64_t, uint64_t, uint32_t);
|
||||
int e820_get_num_entries(void);
|
||||
bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *);
|
||||
|
||||
+extern GlobalProperty pc_compat_4_0[];
|
||||
+extern const size_t pc_compat_4_0_len;
|
||||
+
|
||||
extern GlobalProperty pc_compat_3_1[];
|
||||
extern const size_t pc_compat_3_1_len;
|
@ -1,32 +0,0 @@
|
||||
linux-user: Sanitize interp_info and, for mips
|
||||
|
||||
Sanitize interp_info structure in load_elf_binary() and, for mips only,
|
||||
init its field fp_abi. This fixes appearances of "Unexpected FPU mode"
|
||||
message in some MIPS use cases.
|
||||
|
||||
Signed-off-by: Daniel Santos <address@hidden>
|
||||
Signed-off-by: Aleksandar Markovic <address@hidden>
|
||||
---
|
||||
linux-user/elfload.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
|
||||
index c1a2602..7f09d57 100644
|
||||
--- a/linux-user/elfload.c
|
||||
+++ b/linux-user/elfload.c
|
||||
@@ -2698,6 +2698,11 @@ int load_elf_binary(struct linux_binprm *bprm, struct image_info *info)
|
||||
char *elf_interpreter = NULL;
|
||||
char *scratch;
|
||||
|
||||
+ memset(&interp_info, 0, sizeof(interp_info));
|
||||
+#ifdef TARGET_MIPS
|
||||
+ interp_info.fp_abi = MIPS_ABI_FP_UNKNOWN;
|
||||
+#endif
|
||||
+
|
||||
info->start_mmap = (abi_ulong)ELF_START_MMAP;
|
||||
|
||||
load_elf_image(bprm->filename, bprm->fd, info,
|
||||
--
|
||||
2.7.4
|
||||
|
||||
|
@ -1,38 +0,0 @@
|
||||
From cef396dc0b11a09ede85b275ed1ceee71b60a4b3 Mon Sep 17 00:00:00 2001
|
||||
From: James Le Cuirot <chewi@gentoo.org>
|
||||
Date: Sat, 14 Sep 2019 15:47:20 +0100
|
||||
Subject: [PATCH] configure: Add xkbcommon configure options
|
||||
|
||||
This dependency is currently "automagic", which is bad for distributions.
|
||||
|
||||
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
|
||||
---
|
||||
configure | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 30aad233d1..30544f52e6 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -1521,6 +1521,10 @@ for opt do
|
||||
;;
|
||||
--disable-libpmem) libpmem=no
|
||||
;;
|
||||
+ --enable-xkbcommon) xkbcommon=yes
|
||||
+ ;;
|
||||
+ --disable-xkbcommon) xkbcommon=no
|
||||
+ ;;
|
||||
*)
|
||||
echo "ERROR: unknown option $opt"
|
||||
echo "Try '$0 --help' for more information"
|
||||
@@ -1804,6 +1808,7 @@ disabled with --disable-FEATURE, default is enabled if available:
|
||||
capstone capstone disassembler support
|
||||
debug-mutex mutex debugging support
|
||||
libpmem libpmem support
|
||||
+ xkbcommon xkbcommon support
|
||||
|
||||
NOTE: The object files are built at the place where configure is launched
|
||||
EOF
|
||||
--
|
||||
2.23.0
|
||||
|
@ -1,16 +0,0 @@
|
||||
diff --git i/configure w/configure
|
||||
index a72a5def57..546d757603 100755
|
||||
--- i/configure
|
||||
+++ w/configure
|
||||
@@ -6093,10 +6093,6 @@ write_c_skeleton
|
||||
if test "$gcov" = "yes" ; then
|
||||
QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS"
|
||||
QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS"
|
||||
-elif test "$fortify_source" = "yes" ; then
|
||||
- CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
|
||||
-elif test "$debug" = "no"; then
|
||||
- CFLAGS="-O2 $CFLAGS"
|
||||
fi
|
||||
|
||||
if test "$have_asan" = "yes"; then
|
||||
|
@ -1,50 +0,0 @@
|
||||
https://lists.nongnu.org/archive/html/qemu-devel/2020-04/msg02643.html
|
||||
|
||||
From 6bce23d8daf96a7faa9288e7414948cda31ddaa2 Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Trofimovich <slyfox@gentoo.org>
|
||||
Date: Thu, 16 Apr 2020 18:55:49 +0100
|
||||
Subject: [PATCH] linux-user/strace.list: fix epoll_create{,1} -strace output
|
||||
|
||||
Fix syscall name and parameters priinter.
|
||||
|
||||
Before the change:
|
||||
|
||||
```
|
||||
$ alpha-linux-user/qemu-alpha -strace -L /usr/alpha-unknown-linux-gnu/ /tmp/a
|
||||
...
|
||||
1274697 %s(%d)(2097152,274903156744,274903156760,274905840712,274877908880,274903235616) = 3
|
||||
1274697 exit_group(0)
|
||||
```
|
||||
|
||||
After the change:
|
||||
|
||||
```
|
||||
$ alpha-linux-user/qemu-alpha -strace -L /usr/alpha-unknown-linux-gnu/ /tmp/a
|
||||
...
|
||||
1273719 epoll_create1(2097152) = 3
|
||||
1273719 exit_group(0)
|
||||
```
|
||||
|
||||
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
||||
---
|
||||
linux-user/strace.list | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/linux-user/strace.list
|
||||
+++ b/linux-user/strace.list
|
||||
@@ -125,10 +125,10 @@
|
||||
{ TARGET_NR_dup3, "dup3" , "%s(%d,%d,%d)", NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_epoll_create
|
||||
-{ TARGET_NR_epoll_create, "%s(%d)", NULL, NULL, NULL },
|
||||
+{ TARGET_NR_epoll_create, "epoll_create", "%s(%d)", NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_epoll_create1
|
||||
-{ TARGET_NR_epoll_create1, "%s(%d)", NULL, NULL, NULL },
|
||||
+{ TARGET_NR_epoll_create1, "epoll_create1", "%s(%d)", NULL, NULL },
|
||||
#endif
|
||||
#ifdef TARGET_NR_epoll_ctl
|
||||
{ TARGET_NR_epoll_ctl, "epoll_ctl" , NULL, NULL, NULL },
|
||||
--
|
||||
2.26.2
|
||||
|
@ -0,0 +1,40 @@
|
||||
-Wall -Wextra compains about unused arguments,
|
||||
causes safe-stack to be mis-detected.
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -2293,7 +2293,7 @@ fi
|
||||
cat > $TMPC << EOF
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
-int main(int argc, char *argv[]) {
|
||||
+int main(void) {
|
||||
return printf("%zu", SIZE_MAX);
|
||||
}
|
||||
EOF
|
||||
@@ -4911,7 +4911,7 @@ fi
|
||||
|
||||
if test "$safe_stack" = "yes"; then
|
||||
cat > $TMPC << EOF
|
||||
-int main(int argc, char *argv[])
|
||||
+int main(void)
|
||||
{
|
||||
#if ! __has_feature(safe_stack)
|
||||
#error SafeStack Disabled
|
||||
@@ -4933,7 +4933,7 @@ EOF
|
||||
fi
|
||||
else
|
||||
cat > $TMPC << EOF
|
||||
-int main(int argc, char *argv[])
|
||||
+int main(void)
|
||||
{
|
||||
#if defined(__has_feature)
|
||||
#if __has_feature(safe_stack)
|
||||
@@ -5283,7 +5283,7 @@ static const int Z = 1;
|
||||
#define TAUT(X) ((X) == Z)
|
||||
#define PAREN(X, Y) (X == Y)
|
||||
#define ID(X) (X)
|
||||
-int main(int argc, char *argv[])
|
||||
+int main(void)
|
||||
{
|
||||
int x = 0, y = 0;
|
||||
x = ID(x);
|
@ -0,0 +1,25 @@
|
||||
Do not use system's 'qemu-keymap' in native case.
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -337,6 +337,8 @@ if 'CONFIG_LIBCAP_NG' in config_host
|
||||
endif
|
||||
if get_option('xkbcommon').auto() and not have_system and not have_tools
|
||||
xkbcommon = not_found
|
||||
+elif get_option('xkbcommon').disabled()
|
||||
+ xkbcommon = not_found
|
||||
else
|
||||
xkbcommon = dependency('xkbcommon', required: get_option('xkbcommon'),
|
||||
method: 'pkg-config', static: enable_static)
|
||||
--- a/pc-bios/keymaps/meson.build
|
||||
+++ b/pc-bios/keymaps/meson.build
|
||||
@@ -33,7 +33,9 @@ keymaps = {
|
||||
'tr': '-l tr',
|
||||
}
|
||||
|
||||
-if meson.is_cross_build() or 'CONFIG_XKBCOMMON' not in config_host
|
||||
+if meson.is_cross_build()
|
||||
native_qemu_keymap = find_program('qemu-keymap', required: false, disabler: true)
|
||||
+elif get_option('xkbcommon').disabled()
|
||||
+ native_qemu_keymap = not_found
|
||||
else
|
||||
native_qemu_keymap = qemu_keymap
|
@ -0,0 +1,16 @@
|
||||
Se absolute filename in files like
|
||||
/usr/share/qemu/firmware/50-edk2-x86_64-secure.json
|
||||
|
||||
Bug: https://bugs.gentoo.org/766743
|
||||
Patch-by: Jannik Glückert
|
||||
--- a/pc-bios/descriptors/meson.build
|
||||
+++ b/pc-bios/descriptors/meson.build
|
||||
@@ -8,7 +8,7 @@ foreach f: [
|
||||
]
|
||||
configure_file(input: files(f),
|
||||
output: f,
|
||||
- configuration: {'DATADIR': qemu_datadir},
|
||||
+ configuration: {'DATADIR': get_option('prefix') / qemu_datadir},
|
||||
install: get_option('install_blobs'),
|
||||
install_dir: qemu_datadir / 'firmware')
|
||||
endforeach
|
73
sdk_container/src/third_party/coreos-overlay/app-emulation/qemu/files/qemu-5.2.0-no-pie-ld.patch
vendored
Normal file
73
sdk_container/src/third_party/coreos-overlay/app-emulation/qemu/files/qemu-5.2.0-no-pie-ld.patch
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
From bbd2d5a8120771ec59b86a80a1f51884e0a26e53 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Ehrhardt <christian.ehrhardt@canonical.com>
|
||||
Date: Mon, 14 Dec 2020 16:09:38 +0100
|
||||
Subject: [PATCH] build: -no-pie is no functional linker flag
|
||||
|
||||
Recent binutils changes dropping unsupported options [1] caused a build
|
||||
issue in regard to the optionroms.
|
||||
|
||||
ld -m elf_i386 -T /<<PKGBUILDDIR>>/pc-bios/optionrom//flat.lds -no-pie \
|
||||
-s -o multiboot.img multiboot.o
|
||||
ld.bfd: Error: unable to disambiguate: -no-pie (did you mean --no-pie ?)
|
||||
|
||||
This isn't really a regression in ld.bfd, filing the bug upstream
|
||||
revealed that this never worked as a ld flag [2] - in fact it seems we
|
||||
were by accident setting --nmagic).
|
||||
|
||||
Since it never had the wanted effect this usage of LDFLAGS_NOPIE, should be
|
||||
droppable without any effect. This also is the only use-case of LDFLAGS_NOPIE
|
||||
in .mak, therefore we can also remove it from being added there.
|
||||
|
||||
[1]: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=983d925d
|
||||
[2]: https://sourceware.org/bugzilla/show_bug.cgi?id=27050#c5
|
||||
|
||||
Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
|
||||
Message-Id: <20201214150938.1297512-1-christian.ehrhardt@canonical.com>
|
||||
Cc: qemu-stable@nongnu.org
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
configure | 3 ---
|
||||
pc-bios/optionrom/Makefile | 1 -
|
||||
2 files changed, 4 deletions(-)
|
||||
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -2137,7 +2137,6 @@ EOF
|
||||
# Check we support --no-pie first; we will need this for building ROMs.
|
||||
if compile_prog "-Werror -fno-pie" "-no-pie"; then
|
||||
CFLAGS_NOPIE="-fno-pie"
|
||||
- LDFLAGS_NOPIE="-no-pie"
|
||||
fi
|
||||
|
||||
if test "$static" = "yes"; then
|
||||
@@ -2153,7 +2152,6 @@ if test "$static" = "yes"; then
|
||||
fi
|
||||
elif test "$pie" = "no"; then
|
||||
CONFIGURE_CFLAGS="$CFLAGS_NOPIE $CONFIGURE_CFLAGS"
|
||||
- CONFIGURE_LDFLAGS="$LDFLAGS_NOPIE $CONFIGURE_LDFLAGS"
|
||||
elif compile_prog "-Werror -fPIE -DPIE" "-pie"; then
|
||||
CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
|
||||
CONFIGURE_LDFLAGS="-pie $CONFIGURE_LDFLAGS"
|
||||
@@ -6714,7 +6712,6 @@ echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
|
||||
echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
|
||||
echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
|
||||
echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak
|
||||
-echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
|
||||
echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
|
||||
echo "EXESUF=$EXESUF" >> $config_host_mak
|
||||
echo "HOST_DSOSUF=$HOST_DSOSUF" >> $config_host_mak
|
||||
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
|
||||
index 084fc10f05..30771f8d17 100644
|
||||
--- a/pc-bios/optionrom/Makefile
|
||||
+++ b/pc-bios/optionrom/Makefile
|
||||
@@ -41,7 +41,6 @@ override CFLAGS += $(call cc-option, $(Wa)-32)
|
||||
|
||||
LD_I386_EMULATION ?= elf_i386
|
||||
override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
|
||||
-override LDFLAGS += $(LDFLAGS_NOPIE)
|
||||
|
||||
all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
|
||||
|
||||
--
|
||||
2.30.0
|
||||
|
23
sdk_container/src/third_party/coreos-overlay/app-emulation/qemu/files/qemu-5.2.0-strings.patch
vendored
Normal file
23
sdk_container/src/third_party/coreos-overlay/app-emulation/qemu/files/qemu-5.2.0-strings.patch
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
https://bugs.gentoo.org/759310
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -521,6 +521,7 @@ ld="${LD-${cross_prefix}ld}"
|
||||
ranlib="${RANLIB-${cross_prefix}ranlib}"
|
||||
nm="${NM-${cross_prefix}nm}"
|
||||
strip="${STRIP-${cross_prefix}strip}"
|
||||
+strings="${STRINGS-${cross_prefix}strings}"
|
||||
windres="${WINDRES-${cross_prefix}windres}"
|
||||
pkg_config_exe="${PKG_CONFIG-${cross_prefix}pkg-config}"
|
||||
query_pkg_config() {
|
||||
@@ -2265,9 +2266,9 @@ int main(int argc, char *argv[]) {
|
||||
EOF
|
||||
|
||||
if compile_object ; then
|
||||
- if strings -a $TMPO | grep -q BiGeNdIaN ; then
|
||||
+ if $strings -a $TMPO | grep -q BiGeNdIaN ; then
|
||||
bigendian="yes"
|
||||
- elif strings -a $TMPO | grep -q LiTtLeEnDiAn ; then
|
||||
+ elif $strings -a $TMPO | grep -q LiTtLeEnDiAn ; then
|
||||
bigendian="no"
|
||||
else
|
||||
echo big/little test failed
|
@ -0,0 +1,17 @@
|
||||
Set absolute filename in files like
|
||||
/usr/share/qemu/firmware/50-edk2-x86_64-secure.json
|
||||
|
||||
Bug: https://bugs.gentoo.org/766743
|
||||
Bug: https://bugs.launchpad.net/qemu/+bug/1913012
|
||||
Patch-by: Jannik Glückert
|
||||
--- a/pc-bios/descriptors/meson.build
|
||||
+++ b/pc-bios/descriptors/meson.build
|
||||
@@ -9,7 +9,7 @@ if install_edk2_blobs
|
||||
]
|
||||
configure_file(input: files(f),
|
||||
output: f,
|
||||
- configuration: {'DATADIR': qemu_datadir},
|
||||
+ configuration: {'DATADIR': get_option('prefix') / qemu_datadir},
|
||||
install: get_option('install_blobs'),
|
||||
install_dir: qemu_datadir / 'firmware')
|
||||
endforeach
|
@ -18,7 +18,7 @@
|
||||
<flag name="aio">Enables support for Linux's Async IO</flag>
|
||||
<flag name="alsa">Enable alsa output for sound emulation</flag>
|
||||
<flag name="capstone">Enable disassembly support with <pkg>dev-libs/capstone</pkg></flag>
|
||||
<flag name="curl">Support ISOs / -cdrom directives vis HTTP or HTTPS.</flag>
|
||||
<flag name="curl">Support ISOs / -cdrom directives via HTTP or HTTPS.</flag>
|
||||
<flag name="fdt">Enables firmware device tree support</flag>
|
||||
<flag name="glusterfs">Enables GlusterFS cluster fileystem via
|
||||
<pkg>sys-cluster/glusterfs</pkg></flag>
|
||||
@ -28,6 +28,9 @@
|
||||
<flag name="iscsi">Enable direct iSCSI support via
|
||||
<pkg>net-libs/libiscsi</pkg> instead of indirectly via the Linux
|
||||
block layer that <pkg>sys-block/open-iscsi</pkg> does.</flag>
|
||||
<flag name="io-uring">Enable efficient I/O via <pkg>sys-libs/liburing</pkg>.</flag>
|
||||
<flag name="multipath">Enable multipath persistent reservation passthrough via
|
||||
<pkg>sys-fs/multipath-tools</pkg>.</flag>
|
||||
<flag name="ncurses">Enable the ncurses-based console</flag>
|
||||
<flag name="nfs">Enable NFS support</flag>
|
||||
<flag name="numa">Enable NUMA support</flag>
|
||||
@ -39,12 +42,12 @@
|
||||
<flag name="rbd">Enable rados block device backend support, see http://ceph.newdream.net/wiki/QEMU-RBD</flag>
|
||||
<flag name="sdl">Enable the SDL-based console</flag>
|
||||
<flag name="sdl-image">SDL Image support for icons</flag>
|
||||
<flag name="slirp">Enable TCP/IP in hypervisor via <pkg>net-libs/libslirp</pkg></flag>
|
||||
<flag name="spice">Enable Spice protocol support via <pkg>app-emulation/spice</pkg></flag>
|
||||
<flag name="ssh">Enable SSH based block device support via <pkg>net-libs/libssh2</pkg></flag>
|
||||
<flag name="static-user">Build the User targets as static binaries</flag>
|
||||
<flag name="static">Build the User and Software MMU (system) targets as well as tools as static binaries</flag>
|
||||
<flag name="systemtap">Enable SystemTAP/DTrace tracing</flag>
|
||||
<flag name="tci">Enable the TCG Interpreter which can speed up or slowdown workloads depending on the host and guest CPUs being emulated. In the future it will be a runtime option but for now its compile time.</flag>
|
||||
<flag name="jemalloc">Enable jemalloc allocator support</flag>
|
||||
<flag name="jpeg">Enable jpeg image support for the VNC console server</flag>
|
||||
<flag name="png">Enable png image support for the VNC console server</flag>
|
||||
@ -57,11 +60,9 @@
|
||||
<flag name="virtfs">Enable VirtFS via virtio-9p-pci / fsdev. See http://wiki.qemu.org/Documentation/9psetup</flag>
|
||||
<flag name="vte">Enable terminal support (<pkg>x11-libs/vte</pkg>) in the GTK+ interface</flag>
|
||||
<flag name="xattr">Add support for getting and setting POSIX extended attributes, through
|
||||
<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.
|
||||
</flag>
|
||||
<pkg>sys-apps/attr</pkg>. Requisite for the virtfs backend.</flag>
|
||||
<flag name="xen">Enables support for Xen backends</flag>
|
||||
<flag name="xfs">Support xfsctl() notification and syncing for XFS backed
|
||||
virtual disks.</flag>
|
||||
<flag name="xkb">Depend on x11-libs/libxkbcommon to build qemu-keymap tool for converting xkb keymaps</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
@ -1,13 +1,11 @@
|
||||
# Copyright 1999-2020 Gentoo Authors
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI="7"
|
||||
|
||||
PYTHON_COMPAT=( python{3_6,3_7} )
|
||||
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||
PYTHON_REQ_USE="ncurses,readline"
|
||||
|
||||
PLOCALES="bg de_DE fr_FR hu it tr zh_CN"
|
||||
|
||||
FIRMWARE_ABI_VERSION="4.0.0-r50"
|
||||
|
||||
inherit eutils linux-info toolchain-funcs multilib python-r1 \
|
||||
@ -16,15 +14,16 @@ inherit eutils linux-info toolchain-funcs multilib python-r1 \
|
||||
if [[ ${PV} = *9999* ]]; then
|
||||
EGIT_REPO_URI="https://git.qemu.org/git/qemu.git"
|
||||
EGIT_SUBMODULES=(
|
||||
slirp
|
||||
tests/fp/berkeley-{test,soft}float-3
|
||||
meson
|
||||
tests/fp/berkeley-softfloat-3
|
||||
tests/fp/berkeley-testfloat-3
|
||||
ui/keycodemapdb
|
||||
)
|
||||
inherit git-r3
|
||||
SRC_URI=""
|
||||
else
|
||||
SRC_URI="https://download.qemu.org/${P}.tar.xz"
|
||||
KEYWORDS="amd64 ~arm64 ~ppc ~ppc64 x86"
|
||||
KEYWORDS="amd64 arm64 ~ppc ~ppc64 x86"
|
||||
fi
|
||||
|
||||
DESCRIPTION="QEMU + Kernel-based Virtual Machine userland tools"
|
||||
@ -35,18 +34,20 @@ SLOT="0"
|
||||
|
||||
IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
|
||||
+fdt glusterfs gnutls gtk infiniband iscsi io-uring
|
||||
jemalloc +jpeg kernel_linux
|
||||
kernel_FreeBSD lzo ncurses nfs nls numa opengl +oss +pin-upstream-blobs
|
||||
jack jemalloc +jpeg kernel_linux
|
||||
kernel_FreeBSD lzo multipath
|
||||
ncurses nfs nls numa opengl +oss +pin-upstream-blobs
|
||||
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
|
||||
smartcard snappy spice ssh static static-user systemtap tci test usb
|
||||
+slirp
|
||||
smartcard snappy spice ssh static static-user systemtap test udev usb
|
||||
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
|
||||
xfs +xkb zstd"
|
||||
xfs zstd"
|
||||
|
||||
COMMON_TARGETS="aarch64 alpha arm cris hppa i386 m68k microblaze microblazeel
|
||||
mips mips64 mips64el mipsel nios2 or1k ppc ppc64 riscv32 riscv64 s390x
|
||||
sh4 sh4eb sparc sparc64 x86_64 xtensa xtensaeb"
|
||||
IUSE_SOFTMMU_TARGETS="${COMMON_TARGETS}
|
||||
lm32 moxie rx tricore unicore32"
|
||||
avr lm32 moxie rx tricore unicore32"
|
||||
IUSE_USER_TARGETS="${COMMON_TARGETS}
|
||||
aarch64_be armeb mipsn32 mipsn32el ppc64abi32 ppc64le sparc32plus
|
||||
tilegx"
|
||||
@ -66,10 +67,12 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}
|
||||
qemu_softmmu_targets_ppc? ( fdt )
|
||||
qemu_softmmu_targets_riscv32? ( fdt )
|
||||
qemu_softmmu_targets_riscv64? ( fdt )
|
||||
static? ( static-user !alsa !gtk !opengl !pulseaudio !plugins !rbd !snappy )
|
||||
static? ( static-user !alsa !gtk !jack !opengl !pulseaudio !plugins !rbd !snappy )
|
||||
static-user? ( !plugins )
|
||||
virtfs? ( xattr )
|
||||
vhost-user-fs? ( caps seccomp )
|
||||
virtfs? ( caps xattr )
|
||||
vte? ( gtk )
|
||||
multipath? ( udev )
|
||||
plugins? ( !static !static-user )
|
||||
"
|
||||
|
||||
@ -92,7 +95,6 @@ ALL_DEPEND="
|
||||
# softmmu targets (qemu-system-*).
|
||||
SOFTMMU_TOOLS_DEPEND="
|
||||
dev-libs/libxml2[static-libs(+)]
|
||||
xkb? ( x11-libs/libxkbcommon[static-libs(+)] )
|
||||
>=x11-libs/pixman-0.28.0[static-libs(+)]
|
||||
accessibility? (
|
||||
app-accessibility/brltty[api]
|
||||
@ -120,10 +122,12 @@ SOFTMMU_TOOLS_DEPEND="
|
||||
sys-fabric/librdmacm:=[static-libs(+)]
|
||||
)
|
||||
iscsi? ( net-libs/libiscsi )
|
||||
io-uring? ( sys-libs/liburing[static-libs(+)] )
|
||||
io-uring? ( sys-libs/liburing:=[static-libs(+)] )
|
||||
jack? ( virtual/jack )
|
||||
jemalloc? ( dev-libs/jemalloc )
|
||||
jpeg? ( virtual/jpeg:0=[static-libs(+)] )
|
||||
lzo? ( dev-libs/lzo:2[static-libs(+)] )
|
||||
multipath? ( sys-fs/multipath-tools )
|
||||
ncurses? (
|
||||
sys-libs/ncurses:0=[unicode]
|
||||
sys-libs/ncurses:0=[static-libs(+)]
|
||||
@ -146,6 +150,7 @@ SOFTMMU_TOOLS_DEPEND="
|
||||
)
|
||||
sdl-image? ( media-libs/sdl2-image[static-libs(+)] )
|
||||
seccomp? ( >=sys-libs/libseccomp-2.1.0[static-libs(+)] )
|
||||
slirp? ( net-libs/libslirp[static-libs(+)] )
|
||||
smartcard? ( >=app-emulation/libcacard-2.5.0[static-libs(+)] )
|
||||
snappy? ( app-arch/snappy:= )
|
||||
spice? (
|
||||
@ -153,6 +158,7 @@ SOFTMMU_TOOLS_DEPEND="
|
||||
>=app-emulation/spice-0.12.0[static-libs(+)]
|
||||
)
|
||||
ssh? ( >=net-libs/libssh-0.8.6[static-libs(+)] )
|
||||
udev? ( virtual/libudev[static-libs(+)] )
|
||||
usb? ( >=virtual/libusb-1-r2[static-libs(+)] )
|
||||
usbredir? ( >=sys-apps/usbredir-0.6[static-libs(+)] )
|
||||
vde? ( net-misc/vde[static-libs(+)] )
|
||||
@ -166,17 +172,17 @@ SOFTMMU_TOOLS_DEPEND="
|
||||
X86_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/edk2-ovmf-201905[binary]
|
||||
~sys-firmware/ipxe-1.0.0_p20190728[binary]
|
||||
~sys-firmware/ipxe-1.0.0_p20190728[binary,qemu]
|
||||
~sys-firmware/seabios-1.12.0[binary,seavgabios]
|
||||
~sys-firmware/sgabios-0.1_pre8[binary]
|
||||
)
|
||||
!pin-upstream-blobs? (
|
||||
sys-firmware/edk2-ovmf
|
||||
sys-firmware/ipxe
|
||||
sys-firmware/ipxe[qemu]
|
||||
>=sys-firmware/seabios-1.10.2[seavgabios]
|
||||
sys-firmware/sgabios
|
||||
)"
|
||||
PPC64_FIRMWARE_DEPEND="
|
||||
PPC_FIRMWARE_DEPEND="
|
||||
pin-upstream-blobs? (
|
||||
~sys-firmware/seabios-1.12.0[binary,seavgabios]
|
||||
)
|
||||
@ -204,7 +210,8 @@ CDEPEND="
|
||||
)
|
||||
qemu_softmmu_targets_i386? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_x86_64? ( ${X86_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc64? ( ${PPC64_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
qemu_softmmu_targets_ppc64? ( ${PPC_FIRMWARE_DEPEND} )
|
||||
"
|
||||
DEPEND="${CDEPEND}
|
||||
kernel_linux? ( >=sys-kernel/linux-headers-2.6.35 )
|
||||
@ -219,9 +226,11 @@ RDEPEND="${CDEPEND}
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
|
||||
"${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
|
||||
"${FILESDIR}"/${PN}-4.2.0-cflags.patch
|
||||
"${FILESDIR}"/${PN}-5.0.0-epoll-strace.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-cleaner-werror.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-disable-keymap.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-strings.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-fix-firmware-path.patch
|
||||
"${FILESDIR}"/${PN}-5.2.0-no-pie-ld.patch
|
||||
)
|
||||
|
||||
QA_PREBUILT="
|
||||
@ -229,10 +238,13 @@ QA_PREBUILT="
|
||||
usr/share/qemu/openbios-ppc
|
||||
usr/share/qemu/openbios-sparc64
|
||||
usr/share/qemu/openbios-sparc32
|
||||
usr/share/qemu/opensbi-riscv64-generic-fw_dynamic.elf
|
||||
usr/share/qemu/opensbi-riscv32-generic-fw_dynamic.elf
|
||||
usr/share/qemu/palcode-clipper
|
||||
usr/share/qemu/s390-ccw.img
|
||||
usr/share/qemu/s390-netboot.img
|
||||
usr/share/qemu/u-boot.e500"
|
||||
usr/share/qemu/u-boot.e500
|
||||
"
|
||||
|
||||
QA_WX_LOAD="usr/bin/qemu-i386
|
||||
usr/bin/qemu-x86_64
|
||||
@ -255,7 +267,8 @@ QA_WX_LOAD="usr/bin/qemu-i386
|
||||
usr/bin/qemu-armeb
|
||||
usr/bin/qemu-sparc32plus
|
||||
usr/bin/qemu-s390x
|
||||
usr/bin/qemu-unicore32"
|
||||
usr/bin/qemu-unicore32
|
||||
"
|
||||
|
||||
DOC_CONTENTS="If you don't have kvm compiled into the kernel, make sure you have the
|
||||
kernel module loaded before running kvm. The easiest way to ensure that the
|
||||
@ -280,7 +293,7 @@ For systemd:
|
||||
|
||||
pkg_pretend() {
|
||||
if use kernel_linux && kernel_is lt 2 6 25; then
|
||||
eerror "This version of KVM requres a host kernel of 2.6.25 or higher."
|
||||
eerror "This version of KVM requires a host kernel of 2.6.25 or higher."
|
||||
elif use kernel_linux; then
|
||||
if ! linux_config_exists; then
|
||||
eerror "Unable to check your kernel for KVM support"
|
||||
@ -330,7 +343,7 @@ check_targets() {
|
||||
local var=$1 mak=$2
|
||||
local detected sorted
|
||||
|
||||
pushd "${S}"/default-configs >/dev/null || die
|
||||
pushd "${S}"/default-configs/targets/ >/dev/null || die
|
||||
|
||||
# Force C locale until glibc is updated. #564936
|
||||
detected=$(echo $(printf '%s\n' *-${mak}.mak | sed "s:-${mak}.mak::" | LC_COLLATE=C sort -u))
|
||||
@ -345,29 +358,6 @@ check_targets() {
|
||||
popd >/dev/null
|
||||
}
|
||||
|
||||
handle_locales() {
|
||||
# Make sure locale list is kept up-to-date.
|
||||
local detected sorted
|
||||
detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u))
|
||||
sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u))
|
||||
if [[ ${sorted} != "${detected}" ]] ; then
|
||||
eerror "The ebuild needs to be kept in sync."
|
||||
eerror "PLOCALES: ${sorted}"
|
||||
eerror " po/*.po: ${detected}"
|
||||
die "sync PLOCALES"
|
||||
fi
|
||||
|
||||
# Deal with selective install of locales.
|
||||
if use nls ; then
|
||||
# Delete locales the user does not want. #577814
|
||||
rm_loc() { rm po/$1.po || die; }
|
||||
l10n_for_each_disabled_locale_do rm_loc
|
||||
else
|
||||
# Cheap hack to disable gettext .mo generation.
|
||||
rm -f po/*.po
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
check_targets IUSE_SOFTMMU_TARGETS softmmu
|
||||
check_targets IUSE_USER_TARGETS linux-user
|
||||
@ -375,15 +365,12 @@ src_prepare() {
|
||||
default
|
||||
|
||||
# Use correct toolchain to fix cross-compiling
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB
|
||||
tc-export AR AS LD NM OBJCOPY PKG_CONFIG RANLIB STRINGS
|
||||
export WINDRES=${CHOST}-windres
|
||||
|
||||
# Verbose builds
|
||||
MAKEOPTS+=" V=1"
|
||||
|
||||
# Run after we've applied all patches.
|
||||
handle_locales
|
||||
|
||||
# Remove bundled copy of libfdt
|
||||
rm -r dtc || die
|
||||
}
|
||||
@ -408,11 +395,21 @@ qemu_src_configure() {
|
||||
--datadir=/usr/share
|
||||
--docdir=/usr/share/doc/${PF}/html
|
||||
--mandir=/usr/share/man
|
||||
--with-confsuffix=/qemu
|
||||
--localstatedir=/var
|
||||
--disable-bsd-user
|
||||
--disable-containers # bug #732972
|
||||
--disable-guest-agent
|
||||
--disable-strip
|
||||
|
||||
# bug #746752: TCG interpreter has a few limitations:
|
||||
# - it does not support FPU
|
||||
# - it's generally slower on non-self-modifying code
|
||||
# It's advantage is support for host architectures
|
||||
# where native codegeneration is not implemented.
|
||||
# Gentoo has qemu keyworded only on targets with
|
||||
# native code generation available. Avoid the interpreter.
|
||||
--disable-tcg-interpreter
|
||||
|
||||
--disable-werror
|
||||
# We support gnutls/nettle for crypto operations. It is possible
|
||||
# to use gcrypt when gnutls/nettle are disabled (but not when they
|
||||
@ -426,8 +423,8 @@ qemu_src_configure() {
|
||||
$(use_enable debug debug-info)
|
||||
$(use_enable debug debug-tcg)
|
||||
$(use_enable doc docs)
|
||||
$(use_enable nls gettext)
|
||||
$(use_enable plugins)
|
||||
$(use_enable tci tcg-interpreter)
|
||||
$(use_enable xattr attr)
|
||||
)
|
||||
|
||||
@ -440,6 +437,22 @@ qemu_src_configure() {
|
||||
use_enable "$@"
|
||||
fi
|
||||
}
|
||||
# Enable option only for softmmu build, but not 'user' or 'tools'
|
||||
conf_softmmu() {
|
||||
if [[ ${buildtype} == "softmmu" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
# Enable option only for tools build, but not 'user' or 'softmmu'
|
||||
conf_tools() {
|
||||
if [[ ${buildtype} == "tools" ]] ; then
|
||||
use_enable "$@"
|
||||
else
|
||||
echo "--disable-${2:-$1}"
|
||||
fi
|
||||
}
|
||||
conf_opts+=(
|
||||
$(conf_notuser accessibility brlapi)
|
||||
$(conf_notuser aio linux-aio)
|
||||
@ -459,6 +472,7 @@ qemu_src_configure() {
|
||||
$(conf_notuser jpeg vnc-jpeg)
|
||||
$(conf_notuser kernel_linux kvm)
|
||||
$(conf_notuser lzo)
|
||||
$(conf_notuser multipath mpath)
|
||||
$(conf_notuser ncurses curses)
|
||||
$(conf_notuser nfs libnfs)
|
||||
$(conf_notuser numa)
|
||||
@ -467,17 +481,20 @@ qemu_src_configure() {
|
||||
$(conf_notuser rbd)
|
||||
$(conf_notuser sasl vnc-sasl)
|
||||
$(conf_notuser sdl)
|
||||
$(conf_notuser sdl-image)
|
||||
$(conf_softmmu sdl-image)
|
||||
$(conf_notuser seccomp)
|
||||
$(conf_notuser slirp slirp system)
|
||||
$(conf_notuser smartcard)
|
||||
$(conf_notuser snappy)
|
||||
$(conf_notuser spice)
|
||||
$(conf_notuser ssh libssh)
|
||||
$(conf_notuser udev libudev)
|
||||
$(conf_notuser usb libusb)
|
||||
$(conf_notuser usbredir usb-redir)
|
||||
$(conf_notuser vde)
|
||||
$(conf_notuser vhost-net)
|
||||
$(conf_notuser vhost-user-fs)
|
||||
$(conf_tools vhost-user-fs virtiofsd)
|
||||
$(conf_notuser virgl virglrenderer)
|
||||
$(conf_notuser virtfs)
|
||||
$(conf_notuser vnc)
|
||||
@ -485,7 +502,8 @@ qemu_src_configure() {
|
||||
$(conf_notuser xen)
|
||||
$(conf_notuser xen xen-pci-passthrough)
|
||||
$(conf_notuser xfs xfsctl)
|
||||
$(conf_notuser xkb xkbcommon)
|
||||
# use prebuilt keymaps, bug #759604
|
||||
--disable-xkbcommon
|
||||
$(conf_notuser zstd)
|
||||
)
|
||||
|
||||
@ -501,6 +519,7 @@ qemu_src_configure() {
|
||||
# Note: backend order matters here: #716202
|
||||
# We iterate from higher-level to lower level.
|
||||
$(usex pulseaudio pa "")
|
||||
$(usev jack)
|
||||
$(usev sdl)
|
||||
$(usev alsa)
|
||||
$(usev oss)
|
||||
@ -554,6 +573,10 @@ qemu_src_configure() {
|
||||
tc-enables-pie && conf_opts+=( --enable-pie )
|
||||
fi
|
||||
|
||||
# Plumb through equivalent of EXTRA_ECONF to allow experiments
|
||||
# like bug #747928.
|
||||
conf_opts+=( ${EXTRA_CONF_QEMU} )
|
||||
|
||||
echo "../configure ${conf_opts[*]}"
|
||||
cd "${builddir}"
|
||||
../configure "${conf_opts[@]}" || die "configure failed"
|
||||
@ -721,7 +744,7 @@ src_install() {
|
||||
doins "${FILESDIR}/bridge.conf"
|
||||
|
||||
cd "${S}"
|
||||
dodoc Changelog MAINTAINERS docs/specs/pci-ids.txt
|
||||
dodoc MAINTAINERS docs/specs/pci-ids.txt
|
||||
newdoc pc-bios/README README.pc-bios
|
||||
|
||||
# Disallow stripping of prebuilt firmware files.
|
||||
@ -743,8 +766,8 @@ src_install() {
|
||||
rm "${ED}/usr/share/qemu/vgabios-stdvga.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-virtio.bin"
|
||||
rm "${ED}/usr/share/qemu/vgabios-vmware.bin"
|
||||
# PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc64; then
|
||||
# PPC/PPC64 loads vgabios-stdvga
|
||||
if use qemu_softmmu_targets_x86_64 || use qemu_softmmu_targets_i386 || use qemu_softmmu_targets_ppc || use qemu_softmmu_targets_ppc64; then
|
||||
dosym ../seavgabios/vgabios-isavga.bin /usr/share/qemu/vgabios.bin
|
||||
dosym ../seavgabios/vgabios-cirrus.bin /usr/share/qemu/vgabios-cirrus.bin
|
||||
dosym ../seavgabios/vgabios-qxl.bin /usr/share/qemu/vgabios-qxl.bin
|
Loading…
x
Reference in New Issue
Block a user