aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure1269
1 files changed, 62 insertions, 1207 deletions
diff --git a/configure b/configure
index e2750810e2..039467c04b 100755
--- a/configure
+++ b/configure
@@ -216,10 +216,6 @@ version_ge () {
done
}
-have_backend () {
- echo "$trace_backends" | grep "$1" >/dev/null
-}
-
glob() {
eval test -z '"${1#'"$2"'}"'
}
@@ -240,12 +236,11 @@ interp_prefix="/usr/gnemul/qemu-%M"
static="no"
cross_compile="no"
cross_prefix=""
-audio_drv_list=""
+audio_drv_list="default"
block_drv_rw_whitelist=""
block_drv_ro_whitelist=""
block_drv_whitelist_tools="no"
host_cc="cc"
-audio_win_int=""
libs_qga=""
debug_info="yes"
lto="false"
@@ -291,36 +286,8 @@ for opt do
esac
done
-brlapi="auto"
-curl="auto"
-iconv="auto"
-curses="auto"
-docs="auto"
-fdt="auto"
-netmap="no"
-sdl="auto"
-sdl_image="auto"
-coreaudio="auto"
-virtiofsd="auto"
-virtfs="auto"
-libudev="auto"
-mpath="auto"
-vnc="auto"
-sparse="auto"
-vde="$default_feature"
-vnc_sasl="auto"
-vnc_jpeg="auto"
-vnc_png="auto"
-xkbcommon="auto"
-xen=${default_feature:+disabled}
xen_ctrl_version="$default_feature"
-xen_pci_passthrough="auto"
-linux_aio="$default_feature"
-linux_io_uring="auto"
-cap_ng="auto"
-attr="auto"
xfs="$default_feature"
-tcg="enabled"
membarrier="$default_feature"
vhost_kernel="$default_feature"
vhost_net="$default_feature"
@@ -328,15 +295,8 @@ vhost_crypto="$default_feature"
vhost_scsi="$default_feature"
vhost_vsock="$default_feature"
vhost_user="no"
-vhost_user_blk_server="auto"
vhost_user_fs="$default_feature"
vhost_vdpa="$default_feature"
-bpf="auto"
-kvm="auto"
-hax="auto"
-hvf="auto"
-whpx="auto"
-nvmm="auto"
rdma="$default_feature"
pvrdma="$default_feature"
gprof="no"
@@ -346,79 +306,43 @@ sanitizers="no"
tsan="no"
fortify_source="$default_feature"
strip_opt="yes"
-tcg_interpreter="false"
-bigendian="no"
mingw32="no"
gcov="no"
EXESUF=""
-HOST_DSOSUF=".so"
modules="no"
module_upgrades="no"
prefix="/usr/local"
qemu_suffix="qemu"
-slirp="auto"
-oss_lib=""
bsd="no"
linux="no"
solaris="no"
profiler="no"
-cocoa="auto"
softmmu="yes"
linux_user="no"
bsd_user="no"
-blobs="true"
pkgversion=""
pie=""
qom_cast_debug="yes"
trace_backends="log"
trace_file="trace"
-spice="$default_feature"
-spice_protocol="auto"
-rbd="auto"
-smartcard="auto"
-u2f="auto"
-libusb="auto"
-usb_redir="auto"
opengl="$default_feature"
cpuid_h="no"
avx2_opt="$default_feature"
-capstone="auto"
-lzo="auto"
-snappy="auto"
-bzip2="auto"
-lzfse="auto"
-zstd="auto"
guest_agent="$default_feature"
guest_agent_with_vss="no"
guest_agent_ntddscsi="no"
-guest_agent_msi="auto"
vss_win32_sdk="$default_feature"
win_sdk="no"
want_tools="$default_feature"
-libiscsi="auto"
-libnfs="auto"
coroutine=""
coroutine_pool="$default_feature"
debug_stack_usage="no"
crypto_afalg="no"
-cfi="false"
-cfi_debug="false"
-seccomp="auto"
-glusterfs="auto"
-gtk="auto"
tls_priority="NORMAL"
-gnutls="auto"
-nettle="auto"
-gcrypt="auto"
-auth_pam="auto"
-vte="auto"
-virglrenderer="auto"
tpm="$default_feature"
libssh="$default_feature"
live_block_migration=${default_feature:-yes}
numa="$default_feature"
-tcmalloc="no"
-jemalloc="no"
replication=${default_feature:-yes}
bochs=${default_feature:-yes}
cloop=${default_feature:-yes}
@@ -428,26 +352,34 @@ vdi=${default_feature:-yes}
vvfat=${default_feature:-yes}
qed=${default_feature:-yes}
parallels=${default_feature:-yes}
-libxml2="auto"
debug_mutex="no"
-libpmem="auto"
-default_devices="true"
plugins="$default_feature"
-fuzzing="no"
rng_none="no"
secret_keyring="$default_feature"
-libdaxctl="auto"
meson=""
+meson_args=""
ninja=""
+gio="$default_feature"
skip_meson=no
-gettext="auto"
-fuse="auto"
-fuse_lseek="auto"
-multiprocess="auto"
slirp_smbd="$default_feature"
-malloc_trim="auto"
-gio="$default_feature"
+# The following Meson options are handled manually (still they
+# are included in the automatically generated help message)
+
+# 1. Track which submodules are needed
+capstone="auto"
+fdt="auto"
+slirp="auto"
+
+# 2. Support --with/--without option
+default_devices="true"
+
+# 3. Automatically enable/disable other options
+tcg="enabled"
+cfi="false"
+
+# 4. Detection partly done in configure
+xen=${default_feature:+disabled}
# parse CC options second
for opt do
@@ -563,15 +495,6 @@ int main(void) { return 0; }
EOF
}
-write_c_fuzzer_skeleton() {
- cat > $TMPC <<EOF
-#include <stdint.h>
-#include <sys/types.h>
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size);
-int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { return 0; }
-EOF
-}
-
if check_define __linux__ ; then
targetos="Linux"
elif check_define _WIN32 ; then
@@ -604,9 +527,6 @@ fi
# cross-compiling to one of these OSes then you'll need to specify
# the correct CPU with the --cpu option.
case $targetos in
-Darwin)
- HOST_DSOSUF=".dylib"
- ;;
SunOS)
# $(uname -m) returns i86pc even on an x86_64 box, so default based on isainfo
if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then
@@ -704,54 +624,34 @@ fi
case $targetos in
MINGW32*)
mingw32="yes"
- audio_possible_drivers="dsound sdl"
- if check_include dsound.h; then
- audio_drv_list="dsound"
- else
- audio_drv_list=""
- fi
supported_os="yes"
plugins="no"
pie="no"
;;
GNU/kFreeBSD)
bsd="yes"
- audio_drv_list="oss try-sdl"
- audio_possible_drivers="oss sdl pa"
;;
FreeBSD)
bsd="yes"
bsd_user="yes"
make="${MAKE-gmake}"
- audio_drv_list="oss try-sdl"
- audio_possible_drivers="oss sdl pa"
# needed for kinfo_getvmmap(3) in libutil.h
- netmap="" # enable netmap autodetect
;;
DragonFly)
bsd="yes"
make="${MAKE-gmake}"
- audio_drv_list="oss try-sdl"
- audio_possible_drivers="oss sdl pa"
;;
NetBSD)
bsd="yes"
make="${MAKE-gmake}"
- audio_drv_list="oss try-sdl"
- audio_possible_drivers="oss sdl"
- oss_lib="-lossaudio"
;;
OpenBSD)
bsd="yes"
make="${MAKE-gmake}"
- audio_drv_list="try-sdl"
- audio_possible_drivers="sdl"
;;
Darwin)
bsd="yes"
darwin="yes"
- audio_drv_list="try-coreaudio try-sdl"
- audio_possible_drivers="coreaudio sdl"
# Disable attempts to use ObjectiveC features in os/object.h since they
# won't work when we're compiling with gcc as a C compiler.
QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
@@ -760,10 +660,6 @@ SunOS)
solaris="yes"
make="${MAKE-gmake}"
smbd="${SMBD-/usr/sfw/sbin/smbd}"
- if test -f /usr/include/sys/soundcard.h ; then
- audio_drv_list="oss try-sdl"
- fi
- audio_possible_drivers="oss sdl"
# needed for CMSG_ macros in sys/socket.h
QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
# needed for TIOCWIN* defines in termios.h
@@ -775,8 +671,6 @@ Haiku)
QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS -D_BSD_SOURCE -fPIC $QEMU_CFLAGS"
;;
Linux)
- audio_drv_list="try-pa oss"
- audio_possible_drivers="oss alsa sdl pa"
linux="yes"
linux_user="yes"
vhost_user=${default_feature:-yes}
@@ -820,7 +714,6 @@ fi
if test "$mingw32" = "yes" ; then
EXESUF=".exe"
- HOST_DSOSUF=".dll"
# MinGW needs -mthreads for TLS and macro _MT.
CONFIGURE_CFLAGS="-mthreads $CONFIGURE_CFLAGS"
write_c_skeleton;
@@ -831,6 +724,18 @@ fi
werror=""
+. $source_path/scripts/meson-buildoptions.sh
+
+meson_options=
+meson_option_parse() {
+ meson_options="$meson_options $(_meson_option_parse "$@")"
+ if test $? -eq 1; then
+ echo "ERROR: unknown option $1"
+ echo "Try '$0 --help' for more information"
+ exit 1
+ fi
+}
+
for opt do
optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
case "$opt" in
@@ -904,11 +809,6 @@ for opt do
error_exit "Can't mix --target-list-exclude with --target-list"
fi
;;
- --enable-trace-backends=*) trace_backends="$optarg"
- ;;
- # XXX: backwards compatibility
- --enable-trace-backend=*) trace_backends="$optarg"
- ;;
--with-trace-file=*) trace_file="$optarg"
;;
--with-default-devices) default_devices="true"
@@ -971,44 +871,10 @@ for opt do
# configure to be used by RPM and similar macros that set
# lots of directory switches by default.
;;
- --disable-sdl) sdl="disabled"
- ;;
- --enable-sdl) sdl="enabled"
- ;;
- --disable-sdl-image) sdl_image="disabled"
- ;;
- --enable-sdl-image) sdl_image="enabled"
- ;;
--disable-qom-cast-debug) qom_cast_debug="no"
;;
--enable-qom-cast-debug) qom_cast_debug="yes"
;;
- --disable-virtfs) virtfs="disabled"
- ;;
- --enable-virtfs) virtfs="enabled"
- ;;
- --disable-libudev) libudev="disabled"
- ;;
- --enable-libudev) libudev="enabled"
- ;;
- --disable-virtiofsd) virtiofsd="disabled"
- ;;
- --enable-virtiofsd) virtiofsd="enabled"
- ;;
- --disable-mpath) mpath="disabled"
- ;;
- --enable-mpath) mpath="enabled"
- ;;
- --disable-vnc) vnc="disabled"
- ;;
- --enable-vnc) vnc="enabled"
- ;;
- --disable-gettext) gettext="disabled"
- ;;
- --enable-gettext) gettext="enabled"
- ;;
- --oss-lib=*) oss_lib="$optarg"
- ;;
--audio-drv-list=*) audio_drv_list="$optarg"
;;
--block-drv-rw-whitelist=*|--block-drv-whitelist=*) block_drv_rw_whitelist=$(echo "$optarg" | sed -e 's/,/ /g')
@@ -1039,115 +905,27 @@ for opt do
;;
--disable-tsan) tsan="no"
;;
- --enable-sparse) sparse="enabled"
- ;;
- --disable-sparse) sparse="disabled"
- ;;
--disable-strip) strip_opt="no"
;;
- --disable-vnc-sasl) vnc_sasl="disabled"
- ;;
- --enable-vnc-sasl) vnc_sasl="enabled"
- ;;
- --disable-vnc-jpeg) vnc_jpeg="disabled"
- ;;
- --enable-vnc-jpeg) vnc_jpeg="enabled"
- ;;
- --disable-vnc-png) vnc_png="disabled"
- ;;
- --enable-vnc-png) vnc_png="enabled"
- ;;
--disable-slirp) slirp="disabled"
;;
--enable-slirp) slirp="enabled"
;;
--enable-slirp=git) slirp="internal"
;;
- --enable-slirp=system) slirp="system"
- ;;
- --disable-vde) vde="no"
- ;;
- --enable-vde) vde="yes"
- ;;
- --disable-netmap) netmap="no"
- ;;
- --enable-netmap) netmap="yes"
+ --enable-slirp=*) slirp="$optarg"
;;
--disable-xen) xen="disabled"
;;
--enable-xen) xen="enabled"
;;
- --disable-xen-pci-passthrough) xen_pci_passthrough="disabled"
- ;;
- --enable-xen-pci-passthrough) xen_pci_passthrough="enabled"
- ;;
- --disable-brlapi) brlapi="disabled"
- ;;
- --enable-brlapi) brlapi="enabled"
- ;;
- --disable-kvm) kvm="disabled"
- ;;
- --enable-kvm) kvm="enabled"
- ;;
- --disable-hax) hax="disabled"
- ;;
- --enable-hax) hax="enabled"
- ;;
- --disable-hvf) hvf="disabled"
- ;;
- --enable-hvf) hvf="enabled"
- ;;
- --disable-nvmm) nvmm="disabled"
- ;;
- --enable-nvmm) nvmm="enabled"
- ;;
- --disable-whpx) whpx="disabled"
- ;;
- --enable-whpx) whpx="enabled"
- ;;
- --disable-tcg-interpreter) tcg_interpreter="false"
- ;;
- --enable-tcg-interpreter) tcg_interpreter="true"
- ;;
- --disable-cap-ng) cap_ng="disabled"
- ;;
- --enable-cap-ng) cap_ng="enabled"
- ;;
--disable-tcg) tcg="disabled"
plugins="no"
;;
--enable-tcg) tcg="enabled"
;;
- --disable-malloc-trim) malloc_trim="disabled"
- ;;
- --enable-malloc-trim) malloc_trim="enabled"
- ;;
- --disable-spice) spice="no"
- ;;
- --enable-spice)
- spice_protocol="yes"
- spice="yes"
- ;;
- --disable-spice-protocol)
- spice_protocol="no"
- spice="no"
- ;;
- --enable-spice-protocol) spice_protocol="yes"
- ;;
- --disable-libiscsi) libiscsi="disabled"
- ;;
- --enable-libiscsi) libiscsi="enabled"
- ;;
- --disable-libnfs) libnfs="disabled"
- ;;
- --enable-libnfs) libnfs="enabled"
- ;;
--enable-profiler) profiler="yes"
;;
- --disable-cocoa) cocoa="disabled"
- ;;
- --enable-cocoa) cocoa="enabled"
- ;;
--disable-system) softmmu="no"
;;
--enable-system) softmmu="yes"
@@ -1191,52 +969,18 @@ for opt do
;;
--disable-cfi) cfi="false"
;;
- --enable-cfi-debug) cfi_debug="true"
- ;;
- --disable-cfi-debug) cfi_debug="false"
- ;;
- --disable-curses) curses="disabled"
- ;;
- --enable-curses) curses="enabled"
- ;;
- --disable-iconv) iconv="disabled"
- ;;
- --enable-iconv) iconv="enabled"
- ;;
- --disable-curl) curl="disabled"
- ;;
- --enable-curl) curl="enabled"
- ;;
--disable-fdt) fdt="disabled"
;;
--enable-fdt) fdt="enabled"
;;
--enable-fdt=git) fdt="internal"
;;
- --enable-fdt=system) fdt="system"
- ;;
- --disable-linux-aio) linux_aio="no"
- ;;
- --enable-linux-aio) linux_aio="yes"
- ;;
- --disable-linux-io-uring) linux_io_uring="disabled"
- ;;
- --enable-linux-io-uring) linux_io_uring="enabled"
- ;;
- --disable-attr) attr="disabled"
- ;;
- --enable-attr) attr="enabled"
+ --enable-fdt=*) fdt="$optarg"
;;
--disable-membarrier) membarrier="no"
;;
--enable-membarrier) membarrier="yes"
;;
- --disable-bpf) bpf="disabled"
- ;;
- --enable-bpf) bpf="enabled"
- ;;
- --disable-blobs) blobs="false"
- ;;
--with-pkgversion=*) pkgversion="$optarg"
;;
--with-coroutine=*) coroutine="$optarg"
@@ -1251,10 +995,6 @@ for opt do
;;
--disable-crypto-afalg) crypto_afalg="no"
;;
- --disable-docs) docs="disabled"
- ;;
- --enable-docs) docs="enabled"
- ;;
--disable-vhost-net) vhost_net="no"
;;
--enable-vhost-net) vhost_net="yes"
@@ -1271,10 +1011,6 @@ for opt do
;;
--enable-vhost-vsock) vhost_vsock="yes"
;;
- --disable-vhost-user-blk-server) vhost_user_blk_server="disabled"
- ;;
- --enable-vhost-user-blk-server) vhost_user_blk_server="enabled"
- ;;
--disable-vhost-user-fs) vhost_user_fs="no"
;;
--enable-vhost-user-fs) vhost_user_fs="yes"
@@ -1283,60 +1019,16 @@ for opt do
;;
--enable-opengl) opengl="yes"
;;
- --disable-rbd) rbd="disabled"
- ;;
- --enable-rbd) rbd="enabled"
- ;;
--disable-xfsctl) xfs="no"
;;
--enable-xfsctl) xfs="yes"
;;
- --disable-smartcard) smartcard="disabled"
- ;;
- --enable-smartcard) smartcard="enabled"
- ;;
- --disable-u2f) u2f="disabled"
- ;;
- --enable-u2f) u2f="enabled"
- ;;
- --disable-libusb) libusb="disabled"
- ;;
- --enable-libusb) libusb="enabled"
- ;;
- --disable-usb-redir) usb_redir="disabled"
- ;;
- --enable-usb-redir) usb_redir="enabled"
- ;;
--disable-zlib-test)
;;
- --disable-lzo) lzo="disabled"
- ;;
- --enable-lzo) lzo="enabled"
- ;;
- --disable-snappy) snappy="disabled"
- ;;
- --enable-snappy) snappy="enabled"
- ;;
- --disable-bzip2) bzip2="disabled"
- ;;
- --enable-bzip2) bzip2="enabled"
- ;;
- --enable-lzfse) lzfse="enabled"
- ;;
- --disable-lzfse) lzfse="disabled"
- ;;
- --disable-zstd) zstd="disabled"
- ;;
- --enable-zstd) zstd="enabled"
- ;;
--enable-guest-agent) guest_agent="yes"
;;
--disable-guest-agent) guest_agent="no"
;;
- --enable-guest-agent-msi) guest_agent_msi="enabled"
- ;;
- --disable-guest-agent-msi) guest_agent_msi="disabled"
- ;;
--with-vss-sdk) vss_win32_sdk=""
;;
--with-vss-sdk=*) vss_win32_sdk="$optarg"
@@ -1353,12 +1045,6 @@ for opt do
;;
--disable-tools) want_tools="no"
;;
- --enable-seccomp) seccomp="enabled"
- ;;
- --disable-seccomp) seccomp="disabled"
- ;;
- --disable-glusterfs) glusterfs="disabled"
- ;;
--disable-avx2) avx2_opt="no"
;;
--enable-avx2) avx2_opt="yes"
@@ -1367,9 +1053,6 @@ for opt do
;;
--enable-avx512f) avx512f_opt="yes"
;;
-
- --enable-glusterfs) glusterfs="enabled"
- ;;
--disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane)
echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2
;;
@@ -1379,28 +1062,8 @@ for opt do
--enable-uuid|--disable-uuid)
echo "$0: $opt is obsolete, UUID support is always built" >&2
;;
- --disable-gtk) gtk="disabled"
- ;;
- --enable-gtk) gtk="enabled"
- ;;
--tls-priority=*) tls_priority="$optarg"
;;
- --disable-gnutls) gnutls="disabled"
- ;;
- --enable-gnutls) gnutls="enabled"
- ;;
- --disable-nettle) nettle="disabled"
- ;;
- --enable-nettle) nettle="enabled"
- ;;
- --disable-gcrypt) gcrypt="disabled"
- ;;
- --enable-gcrypt) gcrypt="enabled"
- ;;
- --disable-auth-pam) auth_pam="disabled"
- ;;
- --enable-auth-pam) auth_pam="enabled"
- ;;
--enable-rdma) rdma="yes"
;;
--disable-rdma) rdma="no"
@@ -1409,14 +1072,6 @@ for opt do
;;
--disable-pvrdma) pvrdma="no"
;;
- --disable-vte) vte="disabled"
- ;;
- --enable-vte) vte="enabled"
- ;;
- --disable-virglrenderer) virglrenderer="disabled"
- ;;
- --enable-virglrenderer) virglrenderer="enabled"
- ;;
--disable-tpm) tpm="no"
;;
--enable-tpm) tpm="yes"
@@ -1433,18 +1088,6 @@ for opt do
;;
--enable-numa) numa="yes"
;;
- --disable-libxml2) libxml2="disabled"
- ;;
- --enable-libxml2) libxml2="enabled"
- ;;
- --disable-tcmalloc) tcmalloc="no"
- ;;
- --enable-tcmalloc) tcmalloc="yes"
- ;;
- --disable-jemalloc) jemalloc="no"
- ;;
- --enable-jemalloc) jemalloc="yes"
- ;;
--disable-replication) replication="no"
;;
--enable-replication) replication="yes"
@@ -1499,18 +1142,10 @@ for opt do
;;
--enable-capstone=git) capstone="internal"
;;
- --enable-capstone=system) capstone="system"
+ --enable-capstone=*) capstone="$optarg"
;;
--with-git=*) git="$optarg"
;;
- --enable-git-update)
- git_submodules_action="update"
- echo "--enable-git-update deprecated, use --with-git-submodules=update"
- ;;
- --disable-git-update)
- git_submodules_action="validate"
- echo "--disable-git-update deprecated, use --with-git-submodules=validate"
- ;;
--with-git-submodules=*)
git_submodules_action="$optarg"
;;
@@ -1518,14 +1153,6 @@ for opt do
;;
--disable-debug-mutex) debug_mutex=no
;;
- --enable-libpmem) libpmem="enabled"
- ;;
- --disable-libpmem) libpmem="disabled"
- ;;
- --enable-xkbcommon) xkbcommon="enabled"
- ;;
- --disable-xkbcommon) xkbcommon="disabled"
- ;;
--enable-plugins) if test "$mingw32" = "yes"; then
error_exit "TCG plugins not currently supported on Windows platforms"
else
@@ -1538,10 +1165,6 @@ for opt do
;;
--disable-containers) use_containers="no"
;;
- --enable-fuzzing) fuzzing=yes
- ;;
- --disable-fuzzing) fuzzing=no
- ;;
--gdb=*) gdb_bin="$optarg"
;;
--enable-rng-none) rng_none=yes
@@ -1552,29 +1175,25 @@ for opt do
;;
--disable-keyring) secret_keyring="no"
;;
- --enable-libdaxctl) libdaxctl="enabled"
- ;;
- --disable-libdaxctl) libdaxctl="disabled"
- ;;
- --enable-fuse) fuse="enabled"
+ --enable-gio) gio=yes
;;
- --disable-fuse) fuse="disabled"
+ --disable-gio) gio=no
;;
- --enable-fuse-lseek) fuse_lseek="enabled"
+ --enable-slirp-smbd) slirp_smbd=yes
;;
- --disable-fuse-lseek) fuse_lseek="disabled"
+ --disable-slirp-smbd) slirp_smbd=no
;;
- --enable-multiprocess) multiprocess="enabled"
+ # backwards compatibility options
+ --enable-trace-backend=*) meson_option_parse "--enable-trace-backends=$optarg" "$optarg"
;;
- --disable-multiprocess) multiprocess="disabled"
+ --disable-blobs) meson_option_parse --disable-install-blobs ""
;;
- --enable-gio) gio=yes
+ --enable-tcmalloc) meson_option_parse --enable-malloc=tcmalloc tcmalloc
;;
- --disable-gio) gio=no
+ --enable-jemalloc) meson_option_parse --enable-malloc=jemalloc jemalloc
;;
- --enable-slirp-smbd) slirp_smbd=yes
- ;;
- --disable-slirp-smbd) slirp_smbd=no
+ # everything else has the same name in configure and meson
+ --enable-* | --disable-*) meson_option_parse "$opt" "$optarg"
;;
*)
echo "ERROR: unknown option $opt"
@@ -1730,9 +1349,6 @@ for config in $mak_wilds; do
fi
done
-# Enumerate public trace backends for --help output
-trace_backend_list=$(echo $(grep -le '^PUBLIC = True$' "$source_path"/scripts/tracetool/backend/*.py | sed -e 's/^.*\/\(.*\)\.py$/\1/'))
-
if test x"$show_help" = x"yes" ; then
cat << EOF
@@ -1799,8 +1415,7 @@ Advanced options (experts only):
--disable-strip disable stripping binaries
--disable-werror disable compilation abort on warning
--disable-stack-protector disable compiler-provided stack protection
- --audio-drv-list=LIST set audio drivers list:
- Available drivers: $audio_possible_drivers
+ --audio-drv-list=LIST set audio drivers list
--block-drv-whitelist=L Same as --block-drv-rw-whitelist=L
--block-drv-rw-whitelist=L
set block driver read-write whitelist
@@ -1810,19 +1425,12 @@ Advanced options (experts only):
(by default affects only QEMU, not tools like qemu-img)
--enable-block-drv-whitelist-in-tools
use block whitelist also in tools instead of only QEMU
- --enable-trace-backends=B Set trace backend
- Available backends: $trace_backend_list
--with-trace-file=NAME Full PATH,NAME of file to store traces
Default:trace-<pid>
- --disable-slirp disable SLIRP userspace network connectivity
- --enable-tcg-interpreter enable TCI (TCG with bytecode interpreter, experimental and slow)
- --enable-malloc-trim enable libc malloc_trim() for memory optimization
- --oss-lib path to OSS library
--cpu=CPU Build for host CPU [$cpu]
--with-coroutine=BACKEND coroutine backend. Supported options:
ucontext, sigaltstack, windows
--enable-gcov enable test coverage analysis with gcov
- --disable-blobs disable installing provided firmware blobs
--with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent
--with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb)
--tls-priority default TLS protocol/cipher priority string
@@ -1834,113 +1442,41 @@ Advanced options (experts only):
enable plugins via shared library loading
--disable-containers don't use containers for cross-building
--gdb=GDB-path gdb to use for gdbstub tests [$gdb_bin]
-
-Optional features, enabled with --enable-FEATURE and
-disabled with --disable-FEATURE, default is enabled if available
-(unless built with --without-default-features):
-
+EOF
+ meson_options_help
+cat << EOF
system all system emulation targets
user supported user emulation targets
linux-user all linux usermode emulation targets
bsd-user all BSD usermode emulation targets
- docs build documentation
guest-agent build the QEMU Guest Agent
- guest-agent-msi build guest agent Windows MSI installation package
pie Position Independent Executables
modules modules support (non-Windows)
module-upgrades try to load modules from alternate paths for upgrades
debug-tcg TCG debugging (default is disabled)
debug-info debugging information
lto Enable Link-Time Optimization.
- sparse sparse checker
safe-stack SafeStack Stack Smash Protection. Depends on
clang/llvm >= 3.7 and requires coroutine backend ucontext.
- cfi Enable Control-Flow Integrity for indirect function calls.
- In case of a cfi violation, QEMU is terminated with SIGILL
- Depends on lto and is incompatible with modules
- Automatically enables Link-Time Optimization (lto)
- cfi-debug In case of a cfi violation, a message containing the line that
- triggered the error is written to stderr. After the error,
- QEMU is still terminated with SIGILL
- gnutls GNUTLS cryptography support
- nettle nettle cryptography support
- gcrypt libgcrypt cryptography support
- auth-pam PAM access control
- sdl SDL UI
- sdl-image SDL Image support for icons
- gtk gtk UI
- vte vte support for the gtk UI
- curses curses UI
- iconv font glyph conversion support
- vnc VNC UI support
- vnc-sasl SASL encryption for VNC server
- vnc-jpeg JPEG lossy compression for VNC server
- vnc-png PNG compression for VNC server
- cocoa Cocoa UI (Mac OS X only)
- virtfs VirtFS
- virtiofsd build virtiofs daemon (virtiofsd)
- libudev Use libudev to enumerate host devices
- mpath Multipath persistent reservation passthrough
- xen xen backend driver support
- xen-pci-passthrough PCI passthrough support for Xen
- brlapi BrlAPI (Braile)
- curl curl connectivity
membarrier membarrier system call (for Linux 4.14+ or Windows)
- fdt fdt device tree
- kvm KVM acceleration support
- hax HAX acceleration support
- hvf Hypervisor.framework acceleration support
- nvmm NVMM acceleration support
- whpx Windows Hypervisor Platform acceleration support
rdma Enable RDMA-based migration
pvrdma Enable PVRDMA support
- vde support for vde network
- netmap support for netmap network
- linux-aio Linux AIO support
- linux-io-uring Linux io_uring support
- cap-ng libcap-ng support
- attr attr and xattr support
vhost-net vhost-net kernel acceleration support
vhost-vsock virtio sockets device support
vhost-scsi vhost-scsi kernel target support
vhost-crypto vhost-user-crypto backend support
vhost-kernel vhost kernel backend support
vhost-user vhost-user backend support
- vhost-user-blk-server vhost-user-blk server support
vhost-vdpa vhost-vdpa kernel backend support
- bpf BPF kernel support
- spice spice
- spice-protocol spice-protocol
- rbd rados block device (rbd)
- libiscsi iscsi support
- libnfs nfs support
- smartcard smartcard support (libcacard)
- u2f U2F support (u2f-emu)
- libusb libusb (for usb passthrough)
live-block-migration Block migration in the main migration stream
- usb-redir usb network redirection support
- lzo support of lzo compression library
- snappy support of snappy compression library
- bzip2 support of bzip2 compression library
- (for reading bzip2-compressed dmg images)
- lzfse support of lzfse compression library
- (for reading lzfse-compressed dmg images)
- zstd support for zstd compression library
- (for migration compression and qcow2 cluster compression)
- seccomp seccomp support
coroutine-pool coroutine freelist (better performance)
- glusterfs GlusterFS backend
tpm TPM support
libssh ssh block device support
numa libnuma support
- libxml2 for Parallels image format
- tcmalloc tcmalloc support
- jemalloc jemalloc support
avx2 AVX2 optimization support
avx512f AVX512F optimization support
replication replication support
opengl opengl support
- virglrenderer virgl rendering support
xfsctl xfsctl support
qom-cast-debug cast debugging support
tools build qemu-io, qemu-nbd and qemu-img tools
@@ -1953,15 +1489,8 @@ disabled with --disable-FEATURE, default is enabled if available
qed qed image format support
parallels parallels image format support
crypto-afalg Linux AF_ALG crypto backend driver
- capstone capstone disassembler support
debug-mutex mutex debugging support
- libpmem libpmem support
- xkbcommon xkbcommon support
rng-none dummy RNG, avoid using /dev/(u)random and getrandom()
- libdaxctl libdaxctl support
- fuse FUSE block device export
- fuse-lseek SEEK_HOLE/SEEK_DATA support for FUSE exports
- multiprocess Out of process device emulation support
gio libgio support
slirp-smbd use smbd (at path --smbd=*) in slirp networking
@@ -2302,21 +1831,6 @@ EOF
fi
fi
-#########################################
-# Solaris specific configure tool chain decisions
-
-if test "$solaris" = "yes" ; then
- if has ar; then
- :
- else
- if test -f /usr/ccs/bin/ar ; then
- error_exit "No path includes ar" \
- "Add /usr/ccs/bin to your path and rerun configure"
- fi
- error_exit "No path includes ar"
- fi
-fi
-
if test "$tcg" = "enabled"; then
git_submodules="$git_submodules tests/fp/berkeley-testfloat-3"
git_submodules="$git_submodules tests/fp/berkeley-softfloat-3"
@@ -2405,12 +1919,6 @@ if test -z "$want_tools"; then
fi
##########################################
-# Disable features only meaningful for system-mode emulation
-if test "$softmmu" = "no"; then
- audio_drv_list=""
-fi
-
-##########################################
# L2TPV3 probe
cat > $TMPC <<EOF
@@ -2424,18 +1932,6 @@ else
l2tpv3=no
fi
-cat > $TMPC <<EOF
-#include <sys/mman.h>
-int main(int argc, char *argv[]) {
- return mlockall(MCL_FUTURE);
-}
-EOF
-if compile_prog "" "" ; then
- have_mlockall=yes
-else
- have_mlockall=no
-fi
-
#########################################
# vhost interdependencies and host support
@@ -2937,183 +2433,6 @@ EOF
fi
##########################################
-# vde libraries probe
-if test "$vde" != "no" ; then
- vde_libs="-lvdeplug"
- cat > $TMPC << EOF
-#include <libvdeplug.h>
-int main(void)
-{
- struct vde_open_args a = {0, 0, 0};
- char s[] = "";
- vde_open(s, s, &a);
- return 0;
-}
-EOF
- if compile_prog "" "$vde_libs" ; then
- vde=yes
- else
- if test "$vde" = "yes" ; then
- feature_not_found "vde" "Install vde (Virtual Distributed Ethernet) devel"
- fi
- vde=no
- fi
-fi
-
-##########################################
-# netmap support probe
-# Apart from looking for netmap headers, we make sure that the host API version
-# supports the netmap backend (>=11). The upper bound (15) is meant to simulate
-# a minor/major version number. Minor new features will be marked with values up
-# to 15, and if something happens that requires a change to the backend we will
-# move above 15, submit the backend fixes and modify this two bounds.
-if test "$netmap" != "no" ; then
- cat > $TMPC << EOF
-#include <inttypes.h>
-#include <net/if.h>
-#include <net/netmap.h>
-#include <net/netmap_user.h>
-#if (NETMAP_API < 11) || (NETMAP_API > 15)
-#error
-#endif
-int main(void) { return 0; }
-EOF
- if compile_prog "" "" ; then
- netmap=yes
- else
- if test "$netmap" = "yes" ; then
- feature_not_found "netmap"
- fi
- netmap=no
- fi
-fi
-
-##########################################
-# detect CoreAudio
-if test "$coreaudio" != "no" ; then
- coreaudio_libs="-framework CoreAudio"
- cat > $TMPC << EOF
-#include <CoreAudio/CoreAudio.h>
-int main(void)
-{
- return (int)AudioGetCurrentHostTime();
-}
-EOF
- if compile_prog "" "$coreaudio_libs" ; then
- coreaudio=yes
- else
- coreaudio=no
- fi
-fi
-
-##########################################
-# Sound support libraries probe
-
-audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/,/ /g')
-for drv in $audio_drv_list; do
- case $drv in
- alsa | try-alsa)
- if $pkg_config alsa --exists; then
- alsa_libs=$($pkg_config alsa --libs)
- alsa_cflags=$($pkg_config alsa --cflags)
- alsa=yes
- if test "$drv" = "try-alsa"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-alsa/alsa/')
- fi
- else
- if test "$drv" = "try-alsa"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-alsa//')
- else
- error_exit "$drv check failed" \
- "Make sure to have the $drv libs and headers installed."
- fi
- fi
- ;;
-
- pa | try-pa)
- if $pkg_config libpulse --exists; then
- libpulse=yes
- pulse_libs=$($pkg_config libpulse --libs)
- pulse_cflags=$($pkg_config libpulse --cflags)
- if test "$drv" = "try-pa"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-pa/pa/')
- fi
- else
- if test "$drv" = "try-pa"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-pa//')
- else
- error_exit "$drv check failed" \
- "Make sure to have the $drv libs and headers installed."
- fi
- fi
- ;;
-
- sdl)
- if test "$sdl" = "no"; then
- error_exit "sdl not found or disabled, can not use sdl audio driver"
- fi
- ;;
-
- try-sdl)
- if test "$sdl" = "no"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-sdl//')
- else
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-sdl/sdl/')
- fi
- ;;
-
- coreaudio | try-coreaudio)
- if test "$coreaudio" = "no"; then
- if test "$drv" = "try-coreaudio"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-coreaudio//')
- else
- error_exit "$drv check failed" \
- "Make sure to have the $drv is available."
- fi
- else
- coreaudio_libs="-framework CoreAudio"
- if test "$drv" = "try-coreaudio"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-coreaudio/coreaudio/')
- fi
- fi
- ;;
-
- dsound)
- dsound_libs="-lole32 -ldxguid"
- audio_win_int="yes"
- ;;
-
- oss)
- oss_libs="$oss_lib"
- ;;
-
- jack | try-jack)
- if $pkg_config jack --exists; then
- libjack=yes
- jack_libs=$($pkg_config jack --libs)
- if test "$drv" = "try-jack"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-jack/jack/')
- fi
- else
- if test "$drv" = "try-jack"; then
- audio_drv_list=$(echo "$audio_drv_list" | sed -e 's/try-jack//')
- else
- error_exit "$drv check failed" \
- "Make sure to have the $drv libs and headers installed."
- fi
- fi
- ;;
-
- *)
- echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
- error_exit "Unknown driver '$drv' selected" \
- "Possible drivers are: $audio_possible_drivers"
- }
- ;;
- esac
-done
-
-##########################################
# plugin linker support probe
if test "$plugins" != "no"; then
@@ -3307,71 +2626,6 @@ if test "$modules" = yes; then
fi
##########################################
-# pthread probe
-PTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2"
-
-pthread=no
-cat > $TMPC << EOF
-#include <pthread.h>
-static void *f(void *p) { return NULL; }
-int main(void) {
- pthread_t thread;
- pthread_create(&thread, 0, f, 0);
- return 0;
-}
-EOF
-if compile_prog "" "" ; then
- pthread=yes
-else
- for pthread_lib in $PTHREADLIBS_LIST; do
- if compile_prog "" "$pthread_lib" ; then
- pthread=yes
- break
- fi
- done
-fi
-
-if test "$mingw32" != yes && test "$pthread" = no; then
- error_exit "pthread check failed" \
- "Make sure to have the pthread libs and headers installed."
-fi
-
-# check for pthread_setname_np with thread id
-pthread_setname_np_w_tid=no
-cat > $TMPC << EOF
-#include <pthread.h>
-
-static void *f(void *p) { return NULL; }
-int main(void)
-{
- pthread_t thread;
- pthread_create(&thread, 0, f, 0);
- pthread_setname_np(thread, "QEMU");
- return 0;
-}
-EOF
-if compile_prog "" "$pthread_lib" ; then
- pthread_setname_np_w_tid=yes
-fi
-
-# check for pthread_setname_np without thread id
-pthread_setname_np_wo_tid=no
-cat > $TMPC << EOF
-#include <pthread.h>
-
-static void *f(void *p) { pthread_setname_np("QEMU"); return NULL; }
-int main(void)
-{
- pthread_t thread;
- pthread_create(&thread, 0, f, 0);
- return 0;
-}
-EOF
-if compile_prog "" "$pthread_lib" ; then
- pthread_setname_np_wo_tid=yes
-fi
-
-##########################################
# libssh probe
if test "$libssh" != "no" ; then
if $pkg_config --exists "libssh >= 0.8.7"; then
@@ -3387,26 +2641,6 @@ if test "$libssh" != "no" ; then
fi
##########################################
-# linux-aio probe
-
-if test "$linux_aio" != "no" ; then
- cat > $TMPC <<EOF
-#include <libaio.h>
-#include <sys/eventfd.h>
-#include <stddef.h>
-int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
-EOF
- if compile_prog "" "-laio" ; then
- linux_aio=yes
- else
- if test "$linux_aio" = "yes" ; then
- feature_not_found "linux AIO" "Install libaio devel"
- fi
- linux_aio=no
- fi
-fi
-
-##########################################
# TPM emulation is only on POSIX
if test "$tpm" = ""; then
@@ -3422,19 +2656,6 @@ elif test "$tpm" = "yes"; then
fi
##########################################
-# iovec probe
-cat > $TMPC <<EOF
-#include <sys/types.h>
-#include <sys/uio.h>
-#include <unistd.h>
-int main(void) { return sizeof(struct iovec); }
-EOF
-iovec=no
-if compile_prog "" "" ; then
- iovec=yes
-fi
-
-##########################################
# fdt probe
case "$fdt" in
@@ -3493,16 +2714,6 @@ 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
-elif test "$tcmalloc" = "yes" ; then
- malloc=tcmalloc
-elif test "$jemalloc" = "yes" ; then
- malloc=jemalloc
-fi
-
# check for usbfs
have_usbfs=no
if test "$linux_user" = "yes"; then
@@ -3528,41 +2739,6 @@ EOF
fi
##########################################
-# spice probe
-if test "$spice_protocol" != "no" ; then
- spice_protocol_cflags=$($pkg_config --cflags spice-protocol 2>/dev/null)
- if $pkg_config --atleast-version=0.12.3 spice-protocol; then
- spice_protocol="yes"
- else
- if test "$spice_protocol" = "yes" ; then
- feature_not_found "spice_protocol" \
- "Install spice-protocol(>=0.12.3) devel"
- fi
- spice_protocol="no"
- fi
-fi
-
-if test "$spice" != "no" ; then
- cat > $TMPC << EOF
-#include <spice.h>
-int main(void) { spice_server_new(); return 0; }
-EOF
- spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
- spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
- if $pkg_config --atleast-version=0.12.5 spice-server && \
- test "$spice_protocol" = "yes" && \
- compile_prog "$spice_cflags" "$spice_libs" ; then
- spice="yes"
- else
- if test "$spice" = "yes" ; then
- feature_not_found "spice" \
- "Install spice-server(>=0.12.5) devel"
- fi
- spice="no"
- fi
-fi
-
-##########################################
# check if we have VSS SDK headers for win
if test "$mingw32" = "yes" && test "$guest_agent" != "no" && \
@@ -3651,56 +2827,6 @@ case "$capstone" in
esac
##########################################
-# check if we have posix_syslog
-
-posix_syslog=no
-cat > $TMPC << EOF
-#include <syslog.h>
-int main(void) { openlog("qemu", LOG_PID, LOG_DAEMON); syslog(LOG_INFO, "configure"); return 0; }
-EOF
-if compile_prog "" "" ; then
- posix_syslog=yes
-fi
-
-##########################################
-# check if trace backend exists
-
-$python "$source_path/scripts/tracetool.py" "--backends=$trace_backends" --check-backends > /dev/null 2> /dev/null
-if test "$?" -ne 0 ; then
- error_exit "invalid trace backends" \
- "Please choose supported trace backends."
-fi
-
-##########################################
-# For 'ust' backend, test if ust headers are present
-if have_backend "ust"; then
- if $pkg_config lttng-ust --exists; then
- lttng_ust_libs=$($pkg_config --libs lttng-ust)
- else
- error_exit "Trace backend 'ust' missing lttng-ust header files"
- fi
-fi
-
-##########################################
-# For 'dtrace' backend, test if 'dtrace' command is present
-if have_backend "dtrace"; then
- if ! has 'dtrace' ; then
- error_exit "dtrace command is not found in PATH $PATH"
- fi
- trace_backend_stap="no"
- if has 'stap' ; then
- trace_backend_stap="yes"
-
- # Workaround to avoid dtrace(1) producing a file with 'hidden' symbol
- # visibility. Define STAP_SDT_V2 to produce 'default' symbol visibility
- # instead. QEMU --enable-modules depends on this because the SystemTap
- # semaphores are linked into the main binary and not the module's shared
- # object.
- QEMU_CFLAGS="$QEMU_CFLAGS -DSTAP_SDT_V2"
- fi
-fi
-
-##########################################
# check and set a backend for coroutine
# We prefer ucontext, but it's not always possible. The fallback
@@ -3960,42 +3086,6 @@ EOF
fi
fi
-#########################################
-# See if 64-bit atomic operations are supported.
-# Note that without __atomic builtins, we can only
-# assume atomic loads/stores max at pointer size.
-
-cat > $TMPC << EOF
-#include <stdint.h>
-int main(void)
-{
- uint64_t x = 0, y = 0;
- y = __atomic_load_n(&x, __ATOMIC_RELAXED);
- __atomic_store_n(&x, y, __ATOMIC_RELAXED);
- __atomic_compare_exchange_n(&x, &y, x, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
- __atomic_exchange_n(&x, y, __ATOMIC_RELAXED);
- __atomic_fetch_add(&x, y, __ATOMIC_RELAXED);
- return 0;
-}
-EOF
-if compile_prog "" "" ; then
- atomic64=yes
-fi
-
-########################################
-# check if getauxval is available.
-
-getauxval=no
-cat > $TMPC << EOF
-#include <sys/auxv.h>
-int main(void) {
- return getauxval(AT_HWCAP) == 0;
-}
-EOF
-if compile_prog "" "" ; then
- getauxval=yes
-fi
-
########################################
# check if ccache is interfering with
# semantic analysis of macros
@@ -4039,21 +3129,6 @@ if test "$fortify_source" != "no"; then
fi
##########################################
-# check if struct fsxattr is available via linux/fs.h
-
-have_fsxattr=no
-cat > $TMPC << EOF
-#include <linux/fs.h>
-struct fsxattr foo;
-int main(void) {
- return 0;
-}
-EOF
-if compile_prog "" "" ; then
- have_fsxattr=yes
-fi
-
-##########################################
# check for usable membarrier system call
if test "$membarrier" = "yes"; then
have_membarrier=no
@@ -4085,33 +3160,6 @@ else
fi
##########################################
-# check for usable AF_VSOCK environment
-have_af_vsock=no
-cat > $TMPC << EOF
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#if !defined(AF_VSOCK)
-# error missing AF_VSOCK flag
-#endif
-#include <linux/vm_sockets.h>
-int main(void) {
- int sock, ret;
- struct sockaddr_vm svm;
- socklen_t len = sizeof(svm);
- sock = socket(AF_VSOCK, SOCK_STREAM, 0);
- ret = getpeername(sock, (struct sockaddr *)&svm, &len);
- if ((ret == -1) && (errno == ENOTCONN)) {
- return 0;
- }
- return -1;
-}
-EOF
-if compile_prog "" "" ; then
- have_af_vsock=yes
-fi
-
-##########################################
# check for usable AF_ALG environment
have_afalg=no
cat > $TMPC << EOF
@@ -4184,26 +3232,6 @@ EOF
fi
fi
-##########################################
-# checks for fuzzer
-if test "$fuzzing" = "yes" ; then
- write_c_fuzzer_skeleton
- if test -z "${LIB_FUZZING_ENGINE+xxx}"; then
- if compile_prog "$CPU_CFLAGS -Werror -fsanitize=fuzzer" ""; then
- have_fuzzer=yes
- else
- error_exit "Your compiler doesn't support -fsanitize=fuzzer"
- exit 1
- fi
- fi
-
- have_clang_coverage_filter=no
- echo > $TMPTXT
- if compile_prog "$CPU_CFLAGS -Werror -fsanitize=fuzzer -fsanitize-coverage-allowlist=$TMPTXT" ""; then
- have_clang_coverage_filter=yes
- fi
-fi
-
# Thread sanitizer is, for now, much noisier than the other sanitizers;
# keep it separate until that is not the case.
if test "$tsan" = "yes" && test "$sanitizers" = "yes"; then
@@ -4479,9 +3507,6 @@ fi
if test "$strip_opt" = "yes" ; then
echo "STRIP=${strip}" >> $config_host_mak
fi
-if test "$bigendian" = "yes" ; then
- echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
-fi
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=y" >> $config_host_mak
if test "$guest_agent_with_vss" = "yes" ; then
@@ -4530,44 +3555,12 @@ if test "$slirp_smbd" = "yes" ; then
echo "CONFIG_SLIRP_SMBD=y" >> $config_host_mak
echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak
fi
-if test "$vde" = "yes" ; then
- echo "CONFIG_VDE=y" >> $config_host_mak
- echo "VDE_LIBS=$vde_libs" >> $config_host_mak
-fi
-if test "$netmap" = "yes" ; then
- echo "CONFIG_NETMAP=y" >> $config_host_mak
-fi
if test "$l2tpv3" = "yes" ; then
echo "CONFIG_L2TPV3=y" >> $config_host_mak
fi
if test "$gprof" = "yes" ; then
echo "CONFIG_GPROF=y" >> $config_host_mak
fi
-echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
-for drv in $audio_drv_list; do
- def=CONFIG_AUDIO_$(echo $drv | LC_ALL=C tr '[a-z]' '[A-Z]')
- echo "$def=y" >> $config_host_mak
-done
-if test "$alsa" = "yes" ; then
- echo "CONFIG_ALSA=y" >> $config_host_mak
-fi
-echo "ALSA_LIBS=$alsa_libs" >> $config_host_mak
-echo "ALSA_CFLAGS=$alsa_cflags" >> $config_host_mak
-if test "$libpulse" = "yes" ; then
- echo "CONFIG_LIBPULSE=y" >> $config_host_mak
-fi
-echo "PULSE_LIBS=$pulse_libs" >> $config_host_mak
-echo "PULSE_CFLAGS=$pulse_cflags" >> $config_host_mak
-echo "COREAUDIO_LIBS=$coreaudio_libs" >> $config_host_mak
-echo "DSOUND_LIBS=$dsound_libs" >> $config_host_mak
-echo "OSS_LIBS=$oss_libs" >> $config_host_mak
-if test "$libjack" = "yes" ; then
- echo "CONFIG_LIBJACK=y" >> $config_host_mak
-fi
-echo "JACK_LIBS=$jack_libs" >> $config_host_mak
-if test "$audio_win_int" = "yes" ; then
- echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
-fi
echo "CONFIG_BDRV_RW_WHITELIST=$block_drv_rw_whitelist" >> $config_host_mak
echo "CONFIG_BDRV_RO_WHITELIST=$block_drv_ro_whitelist" >> $config_host_mak
if test "$block_drv_whitelist_tools" = "yes" ; then
@@ -4602,22 +3595,12 @@ if test "$gdbus_codegen" != "" ; then
fi
echo "CONFIG_TLS_PRIORITY=\"$tls_priority\"" >> $config_host_mak
-# Work around a system header bug with some kernel/XFS header
-# versions where they both try to define 'struct fsxattr':
-# xfs headers will not try to redefine structs from linux headers
-# if this macro is set.
-if test "$have_fsxattr" = "yes" ; then
- echo "HAVE_FSXATTR=y" >> $config_host_mak
-fi
if test "$xen" = "enabled" ; then
echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak
echo "XEN_CFLAGS=$xen_cflags" >> $config_host_mak
echo "XEN_LIBS=$xen_libs" >> $config_host_mak
fi
-if test "$linux_aio" = "yes" ; then
- echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
-fi
if test "$vhost_scsi" = "yes" ; then
echo "CONFIG_VHOST_SCSI=y" >> $config_host_mak
fi
@@ -4651,9 +3634,6 @@ fi
if test "$vhost_user_fs" = "yes" ; then
echo "CONFIG_VHOST_USER_FS=y" >> $config_host_mak
fi
-if test "$iovec" = "yes" ; then
- echo "CONFIG_IOVEC=y" >> $config_host_mak
-fi
if test "$membarrier" = "yes" ; then
echo "CONFIG_MEMBARRIER=y" >> $config_host_mak
fi
@@ -4661,16 +3641,6 @@ if test "$tcg" = "enabled" -a "$tcg_interpreter" = "true" ; then
echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak
fi
-if test "$spice_protocol" = "yes" ; then
- echo "CONFIG_SPICE_PROTOCOL=y" >> $config_host_mak
- echo "SPICE_PROTOCOL_CFLAGS=$spice_protocol_cflags" >> $config_host_mak
-fi
-if test "$spice" = "yes" ; then
- echo "CONFIG_SPICE=y" >> $config_host_mak
- echo "SPICE_CFLAGS=$spice_cflags $spice_protocol_cflags" >> $config_host_mak
- echo "SPICE_LIBS=$spice_libs" >> $config_host_mak
-fi
-
if test "$opengl" = "yes" ; then
echo "CONFIG_OPENGL=y" >> $config_host_mak
echo "OPENGL_CFLAGS=$opengl_cflags" >> $config_host_mak
@@ -4733,14 +3703,6 @@ if test "$cmpxchg128" = "yes" ; then
echo "CONFIG_CMPXCHG128=y" >> $config_host_mak
fi
-if test "$atomic64" = "yes" ; then
- echo "CONFIG_ATOMIC64=y" >> $config_host_mak
-fi
-
-if test "$getauxval" = "yes" ; then
- echo "CONFIG_GETAUXVAL=y" >> $config_host_mak
-fi
-
if test "$libssh" = "yes" ; then
echo "CONFIG_LIBSSH=y" >> $config_host_mak
echo "LIBSSH_CFLAGS=$libssh_cflags" >> $config_host_mak
@@ -4755,44 +3717,6 @@ if test "$tpm" = "yes"; then
echo 'CONFIG_TPM=y' >> $config_host_mak
fi
-echo "TRACE_BACKENDS=$trace_backends" >> $config_host_mak
-if have_backend "nop"; then
- echo "CONFIG_TRACE_NOP=y" >> $config_host_mak
-fi
-if have_backend "simple"; then
- echo "CONFIG_TRACE_SIMPLE=y" >> $config_host_mak
- # Set the appropriate trace file.
- trace_file="\"$trace_file-\" FMT_pid"
-fi
-if have_backend "log"; then
- echo "CONFIG_TRACE_LOG=y" >> $config_host_mak
-fi
-if have_backend "ust"; then
- echo "CONFIG_TRACE_UST=y" >> $config_host_mak
- echo "LTTNG_UST_LIBS=$lttng_ust_libs" >> $config_host_mak
-fi
-if have_backend "dtrace"; then
- echo "CONFIG_TRACE_DTRACE=y" >> $config_host_mak
- if test "$trace_backend_stap" = "yes" ; then
- echo "CONFIG_TRACE_SYSTEMTAP=y" >> $config_host_mak
- fi
-fi
-if have_backend "ftrace"; then
- if test "$linux" = "yes" ; then
- echo "CONFIG_TRACE_FTRACE=y" >> $config_host_mak
- else
- feature_not_found "ftrace(trace backend)" "ftrace requires Linux"
- fi
-fi
-if have_backend "syslog"; then
- if test "$posix_syslog" = "yes" ; then
- echo "CONFIG_TRACE_SYSLOG=y" >> $config_host_mak
- else
- feature_not_found "syslog(trace backend)" "syslog not available"
- fi
-fi
-echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
-
if test "$rdma" = "yes" ; then
echo "CONFIG_RDMA=y" >> $config_host_mak
echo "RDMA_LIBS=$rdma_libs" >> $config_host_mak
@@ -4806,27 +3730,10 @@ if test "$replication" = "yes" ; then
echo "CONFIG_REPLICATION=y" >> $config_host_mak
fi
-if test "$have_af_vsock" = "yes" ; then
- echo "CONFIG_AF_VSOCK=y" >> $config_host_mak
-fi
-
if test "$debug_mutex" = "yes" ; then
echo "CONFIG_DEBUG_MUTEX=y" >> $config_host_mak
fi
-# Hold two types of flag:
-# CONFIG_THREAD_SETNAME_BYTHREAD - we've got a way of setting the name on
-# a thread we have a handle to
-# CONFIG_PTHREAD_SETNAME_NP_W_TID - A way of doing it on a particular
-# platform
-if test "$pthread_setname_np_w_tid" = "yes" ; then
- echo "CONFIG_THREAD_SETNAME_BYTHREAD=y" >> $config_host_mak
- echo "CONFIG_PTHREAD_SETNAME_NP_W_TID=y" >> $config_host_mak
-elif test "$pthread_setname_np_wo_tid" = "yes" ; then
- echo "CONFIG_THREAD_SETNAME_BYTHREAD=y" >> $config_host_mak
- echo "CONFIG_PTHREAD_SETNAME_NP_WO_TID=y" >> $config_host_mak
-fi
-
if test "$bochs" = "yes" ; then
echo "CONFIG_BOCHS=y" >> $config_host_mak
fi
@@ -4851,37 +3758,6 @@ fi
if test "$parallels" = "yes" ; then
echo "CONFIG_PARALLELS=y" >> $config_host_mak
fi
-if test "$have_mlockall" = "yes" ; then
- echo "HAVE_MLOCKALL=y" >> $config_host_mak
-fi
-if test "$fuzzing" = "yes" ; then
- # If LIB_FUZZING_ENGINE is set, assume we are running on OSS-Fuzz, and the
- # needed CFLAGS have already been provided
- if test -z "${LIB_FUZZING_ENGINE+xxx}" ; then
- # Add CFLAGS to tell clang to add fuzzer-related instrumentation to all the
- # compiled code.
- QEMU_CFLAGS="$QEMU_CFLAGS -fsanitize=fuzzer-no-link"
- # To build non-fuzzer binaries with --enable-fuzzing, link everything with
- # fsanitize=fuzzer-no-link. Otherwise, the linker will be unable to bind
- # the fuzzer-related callbacks added by instrumentation.
- QEMU_LDFLAGS="$QEMU_LDFLAGS -fsanitize=fuzzer-no-link"
- # For the actual fuzzer binaries, we need to link against the libfuzzer
- # library. Provide the flags for doing this in FUZZ_EXE_LDFLAGS. The meson
- # rule for the fuzzer adds these to the link_args. They need to be
- # configurable, to support OSS-Fuzz
- FUZZ_EXE_LDFLAGS="-fsanitize=fuzzer"
- else
- FUZZ_EXE_LDFLAGS="$LIB_FUZZING_ENGINE"
- fi
-
- # Specify a filter to only instrument code that is directly related to
- # virtual-devices.
- if test "$have_clang_coverage_filter" = "yes" ; then
- cp "$source_path/scripts/oss-fuzz/instrumentation-filter-template" \
- instrumentation-filter
- QEMU_CFLAGS="$QEMU_CFLAGS -fsanitize-coverage-allowlist=instrumentation-filter"
- fi
-fi
if test "$plugins" = "yes" ; then
echo "CONFIG_PLUGIN=y" >> $config_host_mak
@@ -4939,16 +3815,7 @@ echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $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
echo "LIBS_QGA=$libs_qga" >> $config_host_mak
-if test "$gcov" = "yes" ; then
- echo "CONFIG_GCOV=y" >> $config_host_mak
-fi
-
-if test "$fuzzing" != "no"; then
- echo "CONFIG_FUZZ=y" >> $config_host_mak
-fi
-echo "FUZZ_EXE_LDFLAGS=$FUZZ_EXE_LDFLAGS" >> $config_host_mak
if test "$rng_none" = "yes"; then
echo "CONFIG_RNG_NONE=y" >> $config_host_mak
@@ -5165,7 +4032,8 @@ if test "$skip_meson" = no; then
mv $cross config-meson.cross
rm -rf meson-private meson-info meson-logs
- NINJA=$ninja $meson setup \
+ run_meson() {
+ NINJA=$ninja $meson setup \
--prefix "$prefix" \
--libdir "$libdir" \
--libexecdir "$libexecdir" \
@@ -5176,39 +4044,26 @@ if test "$skip_meson" = no; then
--sysconfdir "$sysconfdir" \
--localedir "$localedir" \
--localstatedir "$local_statedir" \
+ -Daudio_drv_list=$audio_drv_list \
+ -Ddefault_devices=$default_devices \
-Ddocdir="$docdir" \
-Dqemu_firmwarepath="$firmwarepath" \
-Dqemu_suffix="$qemu_suffix" \
+ -Dsphinx_build="$sphinx_build" \
+ -Dtrace_file="$trace_file" \
-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) \
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
-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) \
- -Db_lto=$lto -Dcfi=$cfi -Dcfi_debug=$cfi_debug \
- -Dmalloc=$malloc -Dmalloc_trim=$malloc_trim -Dsparse=$sparse \
- -Dkvm=$kvm -Dhax=$hax -Dwhpx=$whpx -Dhvf=$hvf -Dnvmm=$nvmm \
- -Dxen=$xen -Dxen_pci_passthrough=$xen_pci_passthrough -Dtcg=$tcg \
- -Dcocoa=$cocoa -Dgtk=$gtk -Dmpath=$mpath -Dsdl=$sdl -Dsdl_image=$sdl_image \
- -Dlibusb=$libusb -Dsmartcard=$smartcard -Dusb_redir=$usb_redir -Dvte=$vte \
- -Dvnc=$vnc -Dvnc_sasl=$vnc_sasl -Dvnc_jpeg=$vnc_jpeg -Dvnc_png=$vnc_png \
- -Dgettext=$gettext -Dxkbcommon=$xkbcommon -Du2f=$u2f -Dvirtiofsd=$virtiofsd \
- -Dcapstone=$capstone -Dslirp=$slirp -Dfdt=$fdt -Dbrlapi=$brlapi \
- -Dcurl=$curl -Dglusterfs=$glusterfs -Dbzip2=$bzip2 -Dlibiscsi=$libiscsi \
- -Dlibnfs=$libnfs -Diconv=$iconv -Dcurses=$curses -Dlibudev=$libudev\
- -Drbd=$rbd -Dlzo=$lzo -Dsnappy=$snappy -Dlzfse=$lzfse -Dlibxml2=$libxml2 \
- -Dlibdaxctl=$libdaxctl -Dlibpmem=$libpmem -Dlinux_io_uring=$linux_io_uring \
- -Dgnutls=$gnutls -Dnettle=$nettle -Dgcrypt=$gcrypt -Dauth_pam=$auth_pam \
- -Dzstd=$zstd -Dseccomp=$seccomp -Dvirtfs=$virtfs -Dcap_ng=$cap_ng \
- -Dattr=$attr -Ddefault_devices=$default_devices -Dvirglrenderer=$virglrenderer \
- -Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
- -Dvhost_user_blk_server=$vhost_user_blk_server -Dmultiprocess=$multiprocess \
- -Dfuse=$fuse -Dfuse_lseek=$fuse_lseek -Dguest_agent_msi=$guest_agent_msi -Dbpf=$bpf\
+ -Db_lto=$lto -Dcfi=$cfi -Dtcg=$tcg -Dxen=$xen \
+ -Dcapstone=$capstone -Dfdt=$fdt -Dslirp=$slirp \
+ $(test -n "${LIB_FUZZING_ENGINE+xxx}" && echo "-Dfuzzing_engine=$LIB_FUZZING_ENGINE") \
$(if test "$default_feature" = no; then echo "-Dauto_features=disabled"; fi) \
- -Dtcg_interpreter=$tcg_interpreter \
- $cross_arg \
- "$PWD" "$source_path"
-
+ "$@" $cross_arg "$PWD" "$source_path"
+ }
+ eval run_meson $meson_options
if test "$?" -ne 0 ; then
error_exit "meson setup failed"
fi