summaryrefslogtreecommitdiff
path: root/app-emulation/qemu
diff options
context:
space:
mode:
Diffstat (limited to 'app-emulation/qemu')
-rw-r--r--app-emulation/qemu/Manifest10
-rw-r--r--app-emulation/qemu/files/qemu-5.1.0-usb-host-workaround-libusb-bug.patch82
-rw-r--r--app-emulation/qemu/files/qemu-9999-cflags.patch12
-rw-r--r--app-emulation/qemu/metadata.xml1
-rw-r--r--app-emulation/qemu/qemu-5.1.0-r2.ebuild (renamed from app-emulation/qemu/qemu-5.1.0-r1.ebuild)23
-rw-r--r--app-emulation/qemu/qemu-5.1.0-r3.ebuild (renamed from app-emulation/qemu/qemu-5.1.0.ebuild)25
-rw-r--r--app-emulation/qemu/qemu-9999.ebuild26
7 files changed, 144 insertions, 35 deletions
diff --git a/app-emulation/qemu/Manifest b/app-emulation/qemu/Manifest
index de7391f7d8a4..b587c3bf4787 100644
--- a/app-emulation/qemu/Manifest
+++ b/app-emulation/qemu/Manifest
@@ -4,12 +4,12 @@ AUX qemu-2.11.1-capstone_include_path.patch 264 BLAKE2B 955b498c0ea2657ee4c9d005
AUX qemu-4.0.0-mkdir_systemtap.patch 333 BLAKE2B e7e35e7fe510e7e1a86005f3d51384a81d1de7705f3b856656ec71cc0a2a29626e94918b3cc23b32e47c8073b77b62b498e71c3e956549e25ee5f4da1a8ac9cf SHA512 de48a7d663bd78051ed8a1f62d8b0b8e3bfe58d8a0001daf12518dbd087be3154e766be11c607485e7dd851b08d5675c4fb2a2fe5cf18f3b900164a4d93eab10
AUX qemu-4.2.0-cflags.patch 508 BLAKE2B 86724caca22a4bd2b21db306d04d8c0f6a542a15b82bb4e340f3ddb8471f47e854276ff33adee7bd5682ecb797efdb048e9d028d954a064712d1e817e1eb6e26 SHA512 5bfb8f0e739d7bb260b5b5b0a2d28f30b97833b8037227c511f55c9bd9502241c891e7e3780e750598ccfd7fb01615254f1c7f6634787fec67539a61a217e18d
AUX qemu-5.1.0-pixman-for-vhost-user-gpu.patch 1788 BLAKE2B 9eddc15909cac5eb3357eb4e16921b8b51ba1107eaf272ce48e6f89705fa246ad3a8cd02abc534329671de3849f83a8515d22c39437961b5de25459f697d4600 SHA512 8df97af001e9d5c671da7ba1d651fae7ddca2f16337741ffa551227ae86bc627b6cbf37332beb0a6c9ee2444b7f40474804c4a7b79140d3e2b1dfe310a0b2502
+AUX qemu-5.1.0-usb-host-workaround-libusb-bug.patch 2625 BLAKE2B 273ba203e765866d91c592388eee695163c947b4b2f077354985e0ce18206ce018e3c223cc0eee5d02b8867e5615817979854039d472da958da2dd9df3e6bbe7 SHA512 b2143cf0c62db0462ceb0d2e5e9210706f27ac9216e2ee7e0a96ec66818e5a425e68463b3a0d167128b10e5bb4f04b16576c4ae050520690bda268de295b74f0
AUX qemu-5.1.0-usb-oob-CVE-2020-14364.patch 3210 BLAKE2B f812f4bb18e540ebafeb9bf7e95423b48696b639c26525244e7d783eb5ef46453b263831b325b78b90bbb86a585e4f90a3b8ee9c379d52051a2c051891566363 SHA512 08f6fedba9e30eb00a31a0b73a6a7fe11dd215692064330bed5f5701479e1ef63a374460d04b843175b216aee0ca9fc25d8f52987f0680f244583dd8ad75b538
-AUX qemu-9999-cflags.patch 228 BLAKE2B e7e7235cf2bccddf80c62f7154ab672fa0056e5bc3e4c12f036edcb87473f49185a6986ccc0e3485ff0faa76705beaa41461658975c5a2491fa6ae14014ec7c9 SHA512 213902b383d5801731d78acb9ab680f167216ebf3a0d11b430200c872efcd7acab9441cb48ae92f47c659eac994ca410741f224a4f1a1dd3648e10f1420c8d53
AUX qemu-binfmt.initd.head 1442 BLAKE2B 23aa5338914aa7c47f9b1cc1d28291abd0ea037a33cca81f990decfafac2907c86c042350c9dd45591d16330846d4e11d2c8a2a409a68ad81656d9c2c51964c0 SHA512 3fec8946a37bfbd2089f5d95089ed5987a198fc0139ee7482d4bb38c2ffa0e165667a7853afcf2b458bc3e2a6540f172c929ca5a334a00db47e2d0f881382c0e
AUX qemu-binfmt.initd.tail 245 BLAKE2B dd59f2944c6e3f0c4d282b94b687a9b5c51dd77c5103fb9889bd9ce56874495397676ae6c8375d9e9e23094828477240778d9e0f361e68cdd63fdad574851561 SHA512 bcca16805f8380d52cc591ea3d65a8f6e5de456730618f6aee301510edb75d235a22d4d7aeed224882210392840adb403eb53234b6cb76a4cb24533852a8b737
DIST qemu-5.1.0.tar.xz 62911540 BLAKE2B 6a3ecbda2d9274f2736ffbc88d2006be31f153e7687e1425c1a297975f0e828cd2eafc11d11b589991acda87a489dd256ccf5a8947f91bb9431e515e979d8f29 SHA512 e213edb71d93d5167ddce7546220ecb7b52a7778586a4f476f65bd1e510c9cfc6d1876238a7b501d9cc3fd31cc2ae4b7fb9e753bc3f12cc17cd16dfce2a96ba3
-EBUILD qemu-5.1.0-r1.ebuild 24885 BLAKE2B 6e49a4f349771ba6c99062d53741d21f49911ad1e3ff33f05fd64638d0f5ed759cdc2ff8f8590ca3ad008517c56b1c4f7be9f5cb71108898c0c97d1bc28db985 SHA512 d86ee125a166491811bd1c29b97f20e6d0175af3a4344c6c24beb2a43d2b61531021d1e9e9e08d2c7279e5ecb0b8d84afb039dfa6953e7939cc7e98056fb4f57
-EBUILD qemu-5.1.0.ebuild 24819 BLAKE2B 1833e4956a763e59cdd455a55ae53fdb772864b4e25039292d6d0318b08451726aa3bcaa804140838b785b0672400f2d307195f1eb9178851c4156b78f7faec3 SHA512 f1423c3134cd514fbacc0b38fc9b8641d07b5fb787b1d32a829f84db93344f0364dae5792bfabd6457b08e9a0956b0c75c2d7353a1821b6c95f006b9bb4dbb5a
-EBUILD qemu-9999.ebuild 24905 BLAKE2B 2dc2db5e4d1104b19a2309797a268cac37a3024710c9300f40bb94354bc4ea1d1c9e933f5ddc7259ee17eb91b0500150be820afb6ccd2ac9d9dd3f44a8a55bc0 SHA512 23767d3f707b76df48e1e1c39db63d26ef46dc4c6c80994dbd5a2f0aa75d0363eb887f65b55268c00299cc170301f4e39a427da739e03f013db9e6b948aa8f92
-MISC metadata.xml 4677 BLAKE2B 82b6a32773d1ab6ffbb7be0461c0f53b916621d470290d2b2ec986346eb8d8c283ae2dd95a94f5a56d3ff59e602be1d7d5f53c0a41e722df20cc266172ca5805 SHA512 edd256d976b9f3bc5f0e37802286a859a069e07458491e8a12ff4333291f76477f1ab6c4a733ca3778121cc52b237c5fcbaa0645546dbdc3afc51217b55162ac
+EBUILD qemu-5.1.0-r2.ebuild 25351 BLAKE2B c3624676180d440ec6393a90448df6b19c7b8cd5c31ecd306aec08855db631eaf32a23b2ca0e8d754ba910579dd7ed127b5d34cc98032a7bd1bdb2603b46702f SHA512 cede20b3a6e7b2777a1bc11eccb66bc407b2ec5476826c952e98f431939b3ba90d2a409409e422dfb1cc036584ac2a6d8ee820a11ffc02d72366f1a003b965af
+EBUILD qemu-5.1.0-r3.ebuild 25427 BLAKE2B 467d899116d0ae97a06a07087b6b46b79062ad6e355748dbe3370ea9b1f0aed83ebab72dc0bec07daa3698256253c5dfe2faea6613ced5e8bdd0a464fb028627 SHA512 fd4296097c84d76747a9dd86717bdf6264cfded314c05fff57f253abad430d4d627e3ad4acaf9a717669177adfdbf63e96d065af9625f572ac33337d7bc3c570
+EBUILD qemu-9999.ebuild 25343 BLAKE2B 0d52b5cbed012cf93359a2395eb4f250909d4e0475f0422ca5e8554eadab5212b5b4518a081ec8afcdafada119a08ff4d73334bd42ea3f96abcee730ab89d676 SHA512 759677892efee099ee8f64a0af464bfa4959e6aa185a70af509ad9c4b3f0908d3c8f159d303bc95e165b4aefbce2dc25d74f3983c4b200cbbf56e432e02b132d
+MISC metadata.xml 4458 BLAKE2B 521a9c7b7c3371ca4352decbaf2324ef22822a176bf22b4f26761dfc40535cb4a6d6438f39ae6803804fdac8891bd2ded0f972279eec9076b80803826946f954 SHA512 9ba9e2805b6fa423fad3da849f57fdc328e8d6276a0a3d15a8970fc117d8174a76a20be96cf9eaa2a92149de922aa0c9b807cd4f2412f335375088dc32a79b61
diff --git a/app-emulation/qemu/files/qemu-5.1.0-usb-host-workaround-libusb-bug.patch b/app-emulation/qemu/files/qemu-5.1.0-usb-host-workaround-libusb-bug.patch
new file mode 100644
index 000000000000..34a50a9bfb58
--- /dev/null
+++ b/app-emulation/qemu/files/qemu-5.1.0-usb-host-workaround-libusb-bug.patch
@@ -0,0 +1,82 @@
+From 202d69a715a4b1824dcd7ec1683d027ed2bae6d3 Mon Sep 17 00:00:00 2001
+Message-Id: <202d69a715a4b1824dcd7ec1683d027ed2bae6d3.1606202550.git.mprivozn@redhat.com>
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Mon, 24 Aug 2020 13:00:57 +0200
+Subject: [PATCH] usb-host: workaround libusb bug
+
+libusb_get_device_speed() does not work for
+libusb_wrap_sys_device() devices in v1.0.23.
+
+Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1871090
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+Message-id: 20200824110057.32089-1-kraxel@redhat.com
+Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
+---
+ hw/usb/host-libusb.c | 37 ++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 36 insertions(+), 1 deletion(-)
+
+diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c
+index c474551d84..08604f787f 100644
+--- a/hw/usb/host-libusb.c
++++ b/hw/usb/host-libusb.c
+@@ -39,6 +39,11 @@
+ #endif
+ #include <libusb.h>
+
++#ifdef CONFIG_LINUX
++#include <sys/ioctl.h>
++#include <linux/usbdevice_fs.h>
++#endif
++
+ #include "qapi/error.h"
+ #include "migration/vmstate.h"
+ #include "monitor/monitor.h"
+@@ -885,6 +890,7 @@ static void usb_host_ep_update(USBHostDevice *s)
+ static int usb_host_open(USBHostDevice *s, libusb_device *dev, int hostfd)
+ {
+ USBDevice *udev = USB_DEVICE(s);
++ int libusb_speed;
+ int bus_num = 0;
+ int addr = 0;
+ int rc;
+@@ -935,7 +941,36 @@ static int usb_host_open(USBHostDevice *s, libusb_device *dev, int hostfd)
+ usb_ep_init(udev);
+ usb_host_ep_update(s);
+
+- udev->speed = speed_map[libusb_get_device_speed(dev)];
++ libusb_speed = libusb_get_device_speed(dev);
++#ifdef CONFIG_LINUX
++ if (hostfd && libusb_speed == 0) {
++ /*
++ * Workaround libusb bug: libusb_get_device_speed() does not
++ * work for libusb_wrap_sys_device() devices in v1.0.23.
++ *
++ * Speeds are defined in linux/usb/ch9.h, file not included
++ * due to name conflicts.
++ */
++ int rc = ioctl(hostfd, USBDEVFS_GET_SPEED, NULL);
++ switch (rc) {
++ case 1: /* low */
++ libusb_speed = LIBUSB_SPEED_LOW;
++ break;
++ case 2: /* full */
++ libusb_speed = LIBUSB_SPEED_FULL;
++ break;
++ case 3: /* high */
++ case 4: /* wireless */
++ libusb_speed = LIBUSB_SPEED_HIGH;
++ break;
++ case 5: /* super */
++ case 6: /* super plus */
++ libusb_speed = LIBUSB_SPEED_SUPER;
++ break;
++ }
++ }
++#endif
++ udev->speed = speed_map[libusb_speed];
+ usb_host_speed_compat(s);
+
+ if (s->ddesc.iProduct) {
+--
+2.26.2
+
diff --git a/app-emulation/qemu/files/qemu-9999-cflags.patch b/app-emulation/qemu/files/qemu-9999-cflags.patch
deleted file mode 100644
index 1c732a453a91..000000000000
--- a/app-emulation/qemu/files/qemu-9999-cflags.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/configure
-+++ b/configure
-@@ -6349,9 +6349,6 @@ if test "$debug_info" = "yes"; then
- CFLAGS="-g $CFLAGS"
- LDFLAGS="-g $LDFLAGS"
- fi
--if test "$debug" = "no"; then
-- CFLAGS="-O2 $CFLAGS"
--fi
-
- case "$ARCH" in
- alpha)
diff --git a/app-emulation/qemu/metadata.xml b/app-emulation/qemu/metadata.xml
index 465aadf67d46..930ce2797949 100644
--- a/app-emulation/qemu/metadata.xml
+++ b/app-emulation/qemu/metadata.xml
@@ -48,7 +48,6 @@
<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>
diff --git a/app-emulation/qemu/qemu-5.1.0-r1.ebuild b/app-emulation/qemu/qemu-5.1.0-r2.ebuild
index 369d862dc879..65945dedff58 100644
--- a/app-emulation/qemu/qemu-5.1.0-r1.ebuild
+++ b/app-emulation/qemu/qemu-5.1.0-r2.ebuild
@@ -3,7 +3,7 @@
EAPI="7"
-PYTHON_COMPAT=( python{3_6,3_7,3_8} )
+PYTHON_COMPAT=( python3_{6,7,8,9} )
PYTHON_REQ_USE="ncurses,readline"
PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN"
@@ -23,7 +23,7 @@ if [[ ${PV} = *9999* ]]; then
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"
@@ -39,7 +39,7 @@ IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
ncurses nfs nls numa opengl +oss +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
- smartcard snappy spice ssh static static-user systemtap tci test usb
+ smartcard snappy spice ssh static static-user systemtap test usb
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
xfs +xkb zstd"
@@ -121,7 +121,7 @@ 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(+)] )
@@ -419,6 +419,16 @@ qemu_src_configure() {
--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
@@ -433,7 +443,6 @@ qemu_src_configure() {
$(use_enable debug debug-tcg)
$(use_enable doc docs)
$(use_enable plugins)
- $(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
@@ -563,6 +572,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"
diff --git a/app-emulation/qemu/qemu-5.1.0.ebuild b/app-emulation/qemu/qemu-5.1.0-r3.ebuild
index 526069649ec0..c273d6d0b851 100644
--- a/app-emulation/qemu/qemu-5.1.0.ebuild
+++ b/app-emulation/qemu/qemu-5.1.0-r3.ebuild
@@ -3,7 +3,7 @@
EAPI="7"
-PYTHON_COMPAT=( python{3_6,3_7,3_8} )
+PYTHON_COMPAT=( python3_{6,7,8,9} )
PYTHON_REQ_USE="ncurses,readline"
PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN"
@@ -23,7 +23,7 @@ if [[ ${PV} = *9999* ]]; then
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"
@@ -39,7 +39,7 @@ IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
ncurses nfs nls numa opengl +oss +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
- smartcard snappy spice ssh static static-user systemtap tci test usb
+ smartcard snappy spice ssh static static-user systemtap test usb
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
xfs +xkb zstd"
@@ -121,7 +121,7 @@ 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(+)] )
@@ -226,6 +226,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-4.0.0-mkdir_systemtap.patch #684902
"${FILESDIR}"/${PN}-4.2.0-cflags.patch
"${FILESDIR}"/${PN}-5.1.0-pixman-for-vhost-user-gpu.patch
+ "${FILESDIR}"/${PN}-5.1.0-usb-oob-CVE-2020-14364.patch #743649
+ "${FILESDIR}"/${PN}-5.1.0-usb-host-workaround-libusb-bug.patch #753305
)
QA_PREBUILT="
@@ -418,6 +420,16 @@ qemu_src_configure() {
--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
@@ -432,7 +444,6 @@ qemu_src_configure() {
$(use_enable debug debug-tcg)
$(use_enable doc docs)
$(use_enable plugins)
- $(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
@@ -562,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"
diff --git a/app-emulation/qemu/qemu-9999.ebuild b/app-emulation/qemu/qemu-9999.ebuild
index c46858db4978..700a2c1abe08 100644
--- a/app-emulation/qemu/qemu-9999.ebuild
+++ b/app-emulation/qemu/qemu-9999.ebuild
@@ -3,7 +3,7 @@
EAPI="7"
-PYTHON_COMPAT=( python{3_6,3_7,3_8} )
+PYTHON_COMPAT=( python3_{6,7,8,9} )
PYTHON_REQ_USE="ncurses,readline"
PLOCALES="bg de_DE fr_FR hu it sv tr zh_CN"
@@ -41,7 +41,7 @@ IUSE="accessibility +aio alsa bzip2 capstone +caps +curl debug doc
ncurses nfs nls numa opengl +oss +pin-upstream-blobs
plugins +png pulseaudio python rbd sasl +seccomp sdl sdl-image selinux
+slirp
- smartcard snappy spice ssh static static-user systemtap tci test usb
+ smartcard snappy spice ssh static static-user systemtap test usb
usbredir vde +vhost-net vhost-user-fs virgl virtfs +vnc vte xattr xen
xfs +xkb zstd"
@@ -123,7 +123,7 @@ 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(+)] )
@@ -225,7 +225,6 @@ RDEPEND="${CDEPEND}
PATCHES=(
"${FILESDIR}"/${PN}-2.11.1-capstone_include_path.patch
- "${FILESDIR}"/${PN}-9999-cflags.patch
)
QA_PREBUILT="
@@ -334,7 +333,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))
@@ -417,6 +416,16 @@ qemu_src_configure() {
--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
@@ -431,7 +440,6 @@ qemu_src_configure() {
$(use_enable debug debug-tcg)
$(use_enable doc docs)
$(use_enable plugins)
- $(use_enable tci tcg-interpreter)
$(use_enable xattr attr)
)
@@ -444,7 +452,7 @@ qemu_src_configure() {
use_enable "$@"
fi
}
- # Ennable option only for softmmu build, but not 'user' or 'tools'
+ # Enable option only for softmmu build, but not 'user' or 'tools'
conf_softmmu() {
if [[ ${buildtype} == "softmmu" ]] ; then
use_enable "$@"
@@ -569,6 +577,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"