summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorPeter Maydell2020-10-01 13:23:19 +0200
committerPeter Maydell2020-10-01 13:23:19 +0200
commit37a712a0f969ca2df7f01182409a6c4825cebfb5 (patch)
tree6eeb0b7f0bde4c8a0f8e1115b990530c5c62e9fe /configure
parentMerge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (diff)
parenthw/net/can: Correct Kconfig dependencies (diff)
downloadqemu-37a712a0f969ca2df7f01182409a6c4825cebfb5.tar.gz
qemu-37a712a0f969ca2df7f01182409a6c4825cebfb5.tar.xz
qemu-37a712a0f969ca2df7f01182409a6c4825cebfb5.zip
Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging
* SCSI fix (Dmitry, Li Feng, Li Qiang) * memory API fixes (Eduardo) * removal of deprecated '-numa node', 'cpu-add', '-smp' (Igor) * ACPI fix for VMBus (Jon) * relocatable install (myself) * always remove docker containers (myself) * serial cleanups (Philippe) * vmware cpuid leaf for tsc and apic frequency (Sunil) * KVM_FEATURE_ASYNC_PF_INT support (Vitaly) * i386 XSAVE bugfix (Xiaoyao) * QOM developer documentation in docs/devel (Eduardo) * new checkpatch tests (Dov) * x86_64 syscall fix (Douglas) * interrupt-based APF fix (Vitaly) * always create kvmclock (Vitaly) * fix bios-tables-test (Eduardo) * KVM PV features cleanup (myself) * CAN FD (Pavel) meson: * fixes (Marc-André, Max, Stefan, Alexander, myself) * moved libmpathpersist, cocoa, malloc tests (myself) * support for 0.56 introspected test dependencies (myself) # gpg: Signature made Wed 30 Sep 2020 18:11:45 BST # gpg: using RSA key F13338574B662389866C7682BFFBD25F78C7AE83 # gpg: issuer "pbonzini@redhat.com" # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full] # gpg: aka "Paolo Bonzini <pbonzini@redhat.com>" [full] # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4 E2F7 7E15 100C CD36 69B1 # Subkey fingerprint: F133 3857 4B66 2389 866C 7682 BFFB D25F 78C7 AE83 * remotes/bonzini-gitlab/tags/for-upstream: (86 commits) hw/net/can: Correct Kconfig dependencies hw/net/can: Documentation for CTU CAN FD IP open hardware core emulation. hw/net/can: CTU CAN FD IP open hardware core emulation. hw/net/can/ctucafd: Add CTU CAN FD core register definitions. net/can: Add can_dlc2len and can_len2dlc for CAN FD. hw/net/can: sja1000 ignore CAN FD frames net/can: Initial host SocketCan support for CAN FD. target/i386: kvm: do not use kvm_check_extension to find paravirtual capabilities bios-tables-test: Remove kernel-irqchip=off option target/i386: always create kvmclock device target/i386: Fix VM migration when interrupt based APF is enabled helper_syscall x86_64: clear exception_is_int checkpatch: Detect '%#' or '%0#' in printf-style format strings typedefs: Restrict PCMachineState to 'hw/i386/pc.h' hw/xen: Split x86-specific declaration from generic hardware ones stubs: Split accelerator / hardware related stubs sysemu/xen: Add missing 'exec/cpu-common.h' header for ram_addr_t type hw/i386/xen: Rename X86/PC specific function as xen_hvm_init_pc() docs: Move object.h overview doc comment to qom.rst docs: Create docs/devel/qom.rst ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure237
1 files changed, 41 insertions, 196 deletions
diff --git a/configure b/configure
index ecc8e90e8b..ca9b458ea0 100755
--- a/configure
+++ b/configure
@@ -403,7 +403,7 @@ netmap="no"
sdl="auto"
sdl_image="auto"
virtfs=""
-mpath=""
+mpath="auto"
vnc="enabled"
sparse="no"
vde=""
@@ -457,7 +457,7 @@ bsd="no"
linux="no"
solaris="no"
profiler="no"
-cocoa="no"
+cocoa="auto"
softmmu="yes"
linux_user="no"
bsd_user="no"
@@ -549,7 +549,7 @@ skip_meson=no
gettext=""
bogus_os="no"
-malloc_trim=""
+malloc_trim="auto"
# parse CC options first
for opt do
@@ -870,12 +870,12 @@ Darwin)
bsd="yes"
darwin="yes"
hax="yes"
- hvf="yes"
+ hvf=""
if [ "$cpu" = "x86_64" ] ; then
QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
QEMU_LDFLAGS="-arch x86_64 $QEMU_LDFLAGS"
fi
- cocoa="yes"
+ cocoa="enabled"
audio_drv_list="coreaudio try-sdl"
audio_possible_drivers="coreaudio sdl"
QEMU_LDFLAGS="-framework CoreFoundation -framework IOKit $QEMU_LDFLAGS"
@@ -908,7 +908,6 @@ Linux)
linux_user="yes"
kvm="yes"
QEMU_INCLUDES="-isystem ${source_path}/linux-headers -Ilinux-headers $QEMU_INCLUDES"
- libudev="yes"
;;
esac
@@ -970,7 +969,7 @@ if test "$mingw32" = "yes" ; then
# MinGW needs -mthreads for TLS and macro _MT.
CFLAGS="-mthreads $CFLAGS"
write_c_skeleton;
- prefix="c:/Program Files/QEMU"
+ prefix="/qemu"
qemu_suffix=""
libs_qga="-lws2_32 -lwinmm -lpowrprof -lwtsapi32 -lwininet -liphlpapi -lnetapi32 $libs_qga"
fi
@@ -1117,9 +1116,9 @@ for opt do
;;
--enable-virtfs) virtfs="yes"
;;
- --disable-mpath) mpath="no"
+ --disable-mpath) mpath="disabled"
;;
- --enable-mpath) mpath="yes"
+ --enable-mpath) mpath="enabled"
;;
--disable-vnc) vnc="disabled"
;;
@@ -1229,9 +1228,9 @@ for opt do
;;
--enable-tcg) tcg="yes"
;;
- --disable-malloc-trim) malloc_trim="no"
+ --disable-malloc-trim) malloc_trim="disabled"
;;
- --enable-malloc-trim) malloc_trim="yes"
+ --enable-malloc-trim) malloc_trim="enabled"
;;
--disable-spice) spice="no"
;;
@@ -1247,10 +1246,10 @@ for opt do
;;
--enable-profiler) profiler="yes"
;;
- --disable-cocoa) cocoa="no"
+ --disable-cocoa) cocoa="disabled"
;;
--enable-cocoa)
- cocoa="yes" ;
+ cocoa="enabled" ;
audio_drv_list="coreaudio $(echo $audio_drv_list | sed s,coreaudio,,g)"
;;
--disable-system) softmmu="no"
@@ -2016,7 +2015,7 @@ case "$meson" in
fi
meson="$python ${source_path}/meson/meson.py"
;;
- *) meson=$(command -v meson) ;;
+ *) meson=$(command -v "$meson") ;;
esac
# Probe for ninja (used for compdb)
@@ -2392,8 +2391,8 @@ fi
# cocoa implies not SDL or GTK
# (the cocoa UI code currently assumes it is always the active UI
# and doesn't interact well with other UI frontend code)
-if test "$cocoa" = "yes"; then
- if test "$sdl" = "yes"; then
+if test "$cocoa" = "enabled"; then
+ if test "$sdl" = "enabled"; then
error_exit "Cocoa and SDL UIs cannot both be enabled at once"
fi
if test "$gtk" = "yes"; then
@@ -2986,7 +2985,10 @@ fi
##########################################
# Windows Hypervisor Platform accelerator (WHPX) check
-if test "$whpx" != "no" ; then
+if test "$whpx" = "yes" && test "$ARCH" != "x86_64"; then
+ error_exit "WHPX requires 64-bit host"
+fi
+if test "$whpx" != "no" && test "$ARCH" = "x86_64"; then
if check_include "WinHvPlatform.h" && check_include "WinHvEmulation.h"; then
whpx="yes"
else
@@ -3851,57 +3853,6 @@ if test "$modules" = yes; then
fi
##########################################
-# libmpathpersist probe
-
-if test "$mpath" != "no" ; then
- # probe for the new API
- cat > $TMPC <<EOF
-#include <libudev.h>
-#include <mpath_persist.h>
-unsigned mpath_mx_alloc_len = 1024;
-int logsink;
-static struct config *multipath_conf;
-extern struct udev *udev;
-extern struct config *get_multipath_config(void);
-extern void put_multipath_config(struct config *conf);
-struct udev *udev;
-struct config *get_multipath_config(void) { return multipath_conf; }
-void put_multipath_config(struct config *conf) { }
-
-int main(void) {
- udev = udev_new();
- multipath_conf = mpath_lib_init();
- return 0;
-}
-EOF
- if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
- mpathpersist=yes
- mpathpersist_new_api=yes
- else
- # probe for the old API
- cat > $TMPC <<EOF
-#include <libudev.h>
-#include <mpath_persist.h>
-unsigned mpath_mx_alloc_len = 1024;
-int logsink;
-int main(void) {
- struct udev *udev = udev_new();
- mpath_lib_init(udev);
- return 0;
-}
-EOF
- if compile_prog "" "-ludev -lmultipath -lmpathpersist" ; then
- mpathpersist=yes
- mpathpersist_new_api=no
- else
- mpathpersist=no
- fi
- fi
-else
- mpathpersist=no
-fi
-
-##########################################
# pthread probe
PTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2"
@@ -4433,77 +4384,14 @@ EOF
fi
fi
+malloc=system
if test "$tcmalloc" = "yes" && test "$jemalloc" = "yes" ; then
echo "ERROR: tcmalloc && jemalloc can't be used at the same time"
exit 1
-fi
-
-# Even if malloc_trim() is available, these non-libc memory allocators
-# do not support it.
-if test "$tcmalloc" = "yes" || test "$jemalloc" = "yes" ; then
- if test "$malloc_trim" = "yes" ; then
- echo "Disabling malloc_trim with non-libc memory allocator"
- fi
- malloc_trim="no"
-fi
-
-#######################################
-# malloc_trim
-
-if test "$malloc_trim" != "no" ; then
- cat > $TMPC << EOF
-#include <malloc.h>
-int main(void) { malloc_trim(0); return 0; }
-EOF
- if compile_prog "" "" ; then
- malloc_trim="yes"
- else
- malloc_trim="no"
- fi
-fi
-
-##########################################
-# tcmalloc probe
-
-if test "$tcmalloc" = "yes" ; then
- cat > $TMPC << EOF
-#include <stdlib.h>
-int main(void) {
- void *tmp = malloc(1);
- if (tmp != NULL) {
- return 0;
- }
- return 1;
-}
-EOF
-
- if compile_prog "" "-ltcmalloc" ; then
- LIBS="-ltcmalloc $LIBS"
- else
- feature_not_found "tcmalloc" "install gperftools devel"
- fi
-fi
-
-##########################################
-# jemalloc probe
-
-if test "$jemalloc" = "yes" ; then
- cat > $TMPC << EOF
-#include <stdlib.h>
-int main(void) {
- void *tmp = malloc(1);
- if (tmp != NULL) {
- return 0;
- }
- return 1;
-}
-EOF
-
- if compile_prog "" "-ljemalloc" ; then
- LIBS="-ljemalloc $LIBS"
- else
- feature_not_found "jemalloc" "install jemalloc devel"
- fi
+elif test "$tcmalloc" = "yes" ; then
+ malloc=tcmalloc
+elif test "$jemalloc" = "yes" ; then
+ malloc=jemalloc
fi
##########################################
@@ -5935,16 +5823,18 @@ fi
#################################################
# Check to see if we have the Hypervisor framework
-if [ "$darwin" = "yes" ] ; then
+if [ "$hvf" != "no" ] ; then
cat > $TMPC << EOF
#include <Hypervisor/hv.h>
int main() { return 0;}
EOF
if ! compile_object ""; then
+ if test "$hvf" = "yes"; then
+ error_exit "Hypervisor.framework not available"
+ fi
hvf='no'
else
hvf='yes'
- QEMU_LDFLAGS="-framework Hypervisor $QEMU_LDFLAGS"
fi
fi
@@ -6284,15 +6174,6 @@ if test "$libnfs" != "no" ; then
fi
##########################################
-# Do we have libudev
-if test "$libudev" != "no" ; then
- if $pkg_config libudev && test "$static" != "yes"; then
- libudev="yes"
- libudev_libs=$($pkg_config --libs libudev)
- else
- libudev="no"
- fi
-fi
# Exclude --warn-common with TSan to suppress warnings from the TSan libraries.
if test "$solaris" = "no" && test "$tsan" = "no"; then
@@ -6344,23 +6225,11 @@ if test "$softmmu" = yes ; then
fi
virtfs=no
fi
- if test "$mpath" != no && test "$mpathpersist" = yes ; then
- mpath=yes
- else
- if test "$mpath" = yes; then
- error_exit "Multipath requires libmpathpersist devel"
- fi
- mpath=no
- fi
else
if test "$virtfs" = yes; then
error_exit "VirtFS is supported only on Linux"
fi
virtfs=no
- if test "$mpath" = yes; then
- error_exit "Multipath is supported only on Linux"
- fi
- mpath=no
fi
fi
@@ -6567,7 +6436,7 @@ if test "$mingw32" = "yes" ; then
echo "CONFIG_QGA_NTDDSCSI=y" >> $config_host_mak
fi
if test "$guest_agent_msi" = "yes"; then
- echo "QEMU_GA_MSI_ENABLED=yes" >> $config_host_mak
+ echo "CONFIG_QGA_MSI=y" >> $config_host_mak
echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak
echo "QEMU_GA_MSI_WITH_VSS=${QEMU_GA_MSI_WITH_VSS}" >> $config_host_mak
echo "QEMU_GA_MSI_ARCH=${QEMU_GA_MSI_ARCH}" >> $config_host_mak
@@ -6683,9 +6552,6 @@ if test "$have_x11" = "yes" && test "$need_x11" = "yes"; then
echo "X11_CFLAGS=$x11_cflags" >> $config_host_mak
echo "X11_LIBS=$x11_libs" >> $config_host_mak
fi
-if test "$cocoa" = "yes" ; then
- echo "CONFIG_COCOA=y" >> $config_host_mak
-fi
if test "$iconv" = "yes" ; then
echo "CONFIG_ICONV=y" >> $config_host_mak
echo "ICONV_CFLAGS=$iconv_cflags" >> $config_host_mak
@@ -6901,12 +6767,6 @@ fi
if test "$virtfs" = "yes" ; then
echo "CONFIG_VIRTFS=y" >> $config_host_mak
fi
-if test "$mpath" = "yes" ; then
- echo "CONFIG_MPATH=y" >> $config_host_mak
- if test "$mpathpersist_new_api" = "yes"; then
- echo "CONFIG_MPATH_NEW_API=y" >> $config_host_mak
- fi
-fi
if test "$vhost_scsi" = "yes" ; then
echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
fi
@@ -7021,10 +6881,6 @@ if test "$gbm" = "yes" ; then
fi
-if test "$malloc_trim" = "yes" ; then
- echo "CONFIG_MALLOC_TRIM=y" >> $config_host_mak
-fi
-
if test "$avx2_opt" = "yes" ; then
echo "CONFIG_AVX2_OPT=y" >> $config_host_mak
fi
@@ -7453,10 +7309,6 @@ if test "$gcov" = "yes" ; then
echo "CONFIG_GCOV=y" >> $config_host_mak
fi
-if test "$libudev" != "no"; then
- echo "CONFIG_LIBUDEV=y" >> $config_host_mak
- echo "LIBUDEV_LIBS=$libudev_libs" >> $config_host_mak
-fi
if test "$fuzzing" != "no"; then
echo "CONFIG_FUZZ=y" >> $config_host_mak
fi
@@ -7943,17 +7795,9 @@ echo "strip = $(meson_quote $strip)" >> $cross
echo "windres = $(meson_quote $windres)" >> $cross
if test -n "$cross_prefix"; then
cross_arg="--cross-file config-meson.cross"
- # Hack: Meson expects an absolute path for the *build* machine
- # for the prefix, so add a slash in front of a Windows path that
- # includes a drive letter.
- #
- # See https://github.com/mesonbuild/meson/issues/7577.
echo "[host_machine]" >> $cross
if test "$mingw32" = "yes" ; then
echo "system = 'windows'" >> $cross
- case $prefix in
- ?:*) pre_prefix=/ ;;
- esac
fi
if test "$linux" = "yes" ; then
echo "system = 'linux'" >> $cross
@@ -7982,16 +7826,16 @@ mv $cross config-meson.cross
rm -rf meson-private meson-info meson-logs
NINJA=${ninja:-$PWD/ninjatool} $meson setup \
- --prefix "${pre_prefix}$prefix" \
- --libdir "${pre_prefix}$libdir" \
- --libexecdir "${pre_prefix}$libexecdir" \
- --bindir "${pre_prefix}$bindir" \
- --includedir "${pre_prefix}$includedir" \
- --datadir "${pre_prefix}$datadir" \
- --mandir "${pre_prefix}$mandir" \
- --sysconfdir "${pre_prefix}$sysconfdir" \
- --localstatedir "${pre_prefix}$local_statedir" \
- -Ddocdir="${pre_prefix}$docdir" \
+ --prefix "$prefix" \
+ --libdir "$libdir" \
+ --libexecdir "$libexecdir" \
+ --bindir "$bindir" \
+ --includedir "$includedir" \
+ --datadir "$datadir" \
+ --mandir "$mandir" \
+ --sysconfdir "$sysconfdir" \
+ --localstatedir "$local_statedir" \
+ -Ddocdir="$docdir" \
-Dqemu_suffix="$qemu_suffix" \
-Doptimization=$(if test "$debug" = yes; then echo 0; else echo 2; fi) \
-Ddebug=$(if test "$debug_info" = yes; then echo true; else echo false; fi) \
@@ -7999,7 +7843,8 @@ NINJA=${ninja:-$PWD/ninjatool} $meson setup \
-Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
-Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
- -Dsdl=$sdl -Dsdl_image=$sdl_image \
+ -Dmalloc=$malloc -Dmalloc_trim=$malloc_trim \
+ -Dcocoa=$cocoa -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
-Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
-Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f\
$cross_arg \