configure: add --without-default-features
By default QEMU enables a lot of features if it can probe and find the support libraries. It also enables a bunch of features by default. This patch adds the ability to build --without-default-features which can be paired with a --without-default-devices for a barely functional build. The main use case for this is testing our build assumptions and for minimising the amount of stuff you build if you just want to test a particular feature on your relatively slow emulated test system. On it's own I go from: $ ls -lh qemu-system-aarch64 -rwxr-xr-x 1 alex alex 120M Dec 10 12:45 qemu-system-aarch64* $ ldd qemu-system-aarch64 | wc -l 170 to: $ ls -lh qemu-aarch64 -rwxr-xr-x 1 alex alex 43M Dec 10 12:41 qemu-aarch64* $ ldd qemu-system-aarch64 | wc -l 57 which is still able to run my default Debian ARM64 machine with a lot less fat involved. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Thomas Huth <thuth@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20201210190417.31673-5-alex.bennee@linaro.org>
This commit is contained in:
parent
0e8e77d487
commit
c87ea11631
155
configure
vendored
155
configure
vendored
@ -293,8 +293,19 @@ unset target_list_exclude
|
||||
# Distributions want to ensure that several features are compiled in, and it
|
||||
# is impossible without a --enable-foo that exits if a feature is not found.
|
||||
|
||||
brlapi=""
|
||||
curl=""
|
||||
default_feature=""
|
||||
# parse CC options second
|
||||
for opt do
|
||||
optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
|
||||
case "$opt" in
|
||||
--without-default-features)
|
||||
default_feature="no"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
brlapi="$default_feature"
|
||||
curl="$default_feature"
|
||||
iconv="auto"
|
||||
curses="auto"
|
||||
docs="auto"
|
||||
@ -303,52 +314,52 @@ netmap="no"
|
||||
sdl="auto"
|
||||
sdl_image="auto"
|
||||
virtiofsd="auto"
|
||||
virtfs=""
|
||||
virtfs="$default_feature"
|
||||
libudev="auto"
|
||||
mpath="auto"
|
||||
vnc="enabled"
|
||||
sparse="auto"
|
||||
vde=""
|
||||
vde="$default_feature"
|
||||
vnc_sasl="auto"
|
||||
vnc_jpeg="auto"
|
||||
vnc_png="auto"
|
||||
xkbcommon="auto"
|
||||
xen=""
|
||||
xen_ctrl_version=""
|
||||
xen="$default_feature"
|
||||
xen_ctrl_version="$default_feature"
|
||||
xen_pci_passthrough="auto"
|
||||
linux_aio=""
|
||||
linux_io_uring=""
|
||||
cap_ng=""
|
||||
attr=""
|
||||
libattr=""
|
||||
xfs=""
|
||||
linux_aio="$default_feature"
|
||||
linux_io_uring="$default_feature"
|
||||
cap_ng="$default_feature"
|
||||
attr="$default_feature"
|
||||
libattr="$default_feature"
|
||||
xfs="$default_feature"
|
||||
tcg="enabled"
|
||||
membarrier=""
|
||||
vhost_net=""
|
||||
vhost_crypto=""
|
||||
vhost_scsi=""
|
||||
vhost_vsock=""
|
||||
membarrier="$default_feature"
|
||||
vhost_net="$default_feature"
|
||||
vhost_crypto="$default_feature"
|
||||
vhost_scsi="$default_feature"
|
||||
vhost_vsock="$default_feature"
|
||||
vhost_user="no"
|
||||
vhost_user_blk_server="auto"
|
||||
vhost_user_fs=""
|
||||
vhost_user_fs="$default_feature"
|
||||
kvm="auto"
|
||||
hax="auto"
|
||||
hvf="auto"
|
||||
whpx="auto"
|
||||
rdma=""
|
||||
pvrdma=""
|
||||
rdma="$default_feature"
|
||||
pvrdma="$default_feature"
|
||||
gprof="no"
|
||||
debug_tcg="no"
|
||||
debug="no"
|
||||
sanitizers="no"
|
||||
tsan="no"
|
||||
fortify_source=""
|
||||
fortify_source="$default_feature"
|
||||
strip_opt="yes"
|
||||
tcg_interpreter="no"
|
||||
bigendian="no"
|
||||
mingw32="no"
|
||||
gcov="no"
|
||||
EXESUF=""
|
||||
EXESUF="$default_feature"
|
||||
HOST_DSOSUF=".so"
|
||||
modules="no"
|
||||
module_upgrades="no"
|
||||
@ -370,81 +381,81 @@ pie=""
|
||||
qom_cast_debug="yes"
|
||||
trace_backends="log"
|
||||
trace_file="trace"
|
||||
spice=""
|
||||
rbd=""
|
||||
smartcard=""
|
||||
spice="$default_feature"
|
||||
rbd="$default_feature"
|
||||
smartcard="$default_feature"
|
||||
u2f="auto"
|
||||
libusb=""
|
||||
usb_redir=""
|
||||
opengl=""
|
||||
libusb="$default_feature"
|
||||
usb_redir="$default_feature"
|
||||
opengl="$default_feature"
|
||||
opengl_dmabuf="no"
|
||||
cpuid_h="no"
|
||||
avx2_opt=""
|
||||
avx2_opt="$default_feature"
|
||||
capstone="auto"
|
||||
lzo=""
|
||||
snappy=""
|
||||
bzip2=""
|
||||
lzfse=""
|
||||
zstd=""
|
||||
guest_agent=""
|
||||
lzo="$default_feature"
|
||||
snappy="$default_feature"
|
||||
bzip2="$default_feature"
|
||||
lzfse="$default_feature"
|
||||
zstd="$default_feature"
|
||||
guest_agent="$default_feature"
|
||||
guest_agent_with_vss="no"
|
||||
guest_agent_ntddscsi="no"
|
||||
guest_agent_msi=""
|
||||
vss_win32_sdk=""
|
||||
guest_agent_msi="$default_feature"
|
||||
vss_win32_sdk="$default_feature"
|
||||
win_sdk="no"
|
||||
want_tools=""
|
||||
libiscsi=""
|
||||
libnfs=""
|
||||
want_tools="$default_feature"
|
||||
libiscsi="$default_feature"
|
||||
libnfs="$default_feature"
|
||||
coroutine=""
|
||||
coroutine_pool=""
|
||||
coroutine_pool="$default_feature"
|
||||
debug_stack_usage="no"
|
||||
crypto_afalg="no"
|
||||
seccomp=""
|
||||
glusterfs=""
|
||||
seccomp="$default_feature"
|
||||
glusterfs="$default_feature"
|
||||
glusterfs_xlator_opt="no"
|
||||
glusterfs_discard="no"
|
||||
glusterfs_fallocate="no"
|
||||
glusterfs_zerofill="no"
|
||||
glusterfs_ftruncate_has_stat="no"
|
||||
glusterfs_iocb_has_stat="no"
|
||||
gtk=""
|
||||
gtk="$default_feature"
|
||||
gtk_gl="no"
|
||||
tls_priority="NORMAL"
|
||||
gnutls=""
|
||||
nettle=""
|
||||
gnutls="$default_feature"
|
||||
nettle="$default_feature"
|
||||
nettle_xts="no"
|
||||
gcrypt=""
|
||||
gcrypt="$default_feature"
|
||||
gcrypt_hmac="no"
|
||||
gcrypt_xts="no"
|
||||
qemu_private_xts="yes"
|
||||
auth_pam=""
|
||||
vte=""
|
||||
virglrenderer=""
|
||||
tpm=""
|
||||
libssh=""
|
||||
live_block_migration="yes"
|
||||
numa=""
|
||||
auth_pam="$default_feature"
|
||||
vte="$default_feature"
|
||||
virglrenderer="$default_feature"
|
||||
tpm="$default_feature"
|
||||
libssh="$default_feature"
|
||||
live_block_migration=${default_feature:-yes}
|
||||
numa="$default_feature"
|
||||
tcmalloc="no"
|
||||
jemalloc="no"
|
||||
replication="yes"
|
||||
bochs="yes"
|
||||
cloop="yes"
|
||||
dmg="yes"
|
||||
qcow1="yes"
|
||||
vdi="yes"
|
||||
vvfat="yes"
|
||||
qed="yes"
|
||||
parallels="yes"
|
||||
replication=${default_feature:-yes}
|
||||
bochs=${default_feature:-yes}
|
||||
cloop=${default_feature:-yes}
|
||||
dmg=${default_feature:-yes}
|
||||
qcow1=${default_feature:-yes}
|
||||
vdi=${default_feature:-yes}
|
||||
vvfat=${default_feature:-yes}
|
||||
qed=${default_feature:-yes}
|
||||
parallels=${default_feature:-yes}
|
||||
sheepdog="no"
|
||||
libxml2=""
|
||||
libxml2="$default_feature"
|
||||
debug_mutex="no"
|
||||
libpmem=""
|
||||
libpmem="$default_feature"
|
||||
default_devices="yes"
|
||||
plugins="no"
|
||||
fuzzing="no"
|
||||
rng_none="no"
|
||||
secret_keyring=""
|
||||
libdaxctl=""
|
||||
secret_keyring="$default_feature"
|
||||
libdaxctl="$default_feature"
|
||||
meson=""
|
||||
ninja=""
|
||||
skip_meson=no
|
||||
@ -455,7 +466,7 @@ fuse_lseek="auto"
|
||||
bogus_os="no"
|
||||
malloc_trim="auto"
|
||||
|
||||
# parse CC options first
|
||||
# parse CC options second
|
||||
for opt do
|
||||
optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
|
||||
case "$opt" in
|
||||
@ -798,7 +809,7 @@ Linux)
|
||||
audio_possible_drivers="oss alsa sdl pa"
|
||||
linux="yes"
|
||||
linux_user="yes"
|
||||
vhost_user="yes"
|
||||
vhost_user=${default_feature:-yes}
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -942,6 +953,8 @@ for opt do
|
||||
;;
|
||||
--without-default-devices) default_devices="no"
|
||||
;;
|
||||
--without-default-features) # processed above
|
||||
;;
|
||||
--enable-gprof) gprof="yes"
|
||||
;;
|
||||
--enable-gcov) gcov="yes"
|
||||
@ -1747,7 +1760,8 @@ Advanced options (experts only):
|
||||
--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:
|
||||
disabled with --disable-FEATURE, default is enabled if available
|
||||
(unless built with --without-default-features):
|
||||
|
||||
system all system emulation targets
|
||||
user supported user emulation targets
|
||||
@ -6958,6 +6972,7 @@ NINJA=$ninja $meson setup \
|
||||
-Ddocs=$docs -Dsphinx_build=$sphinx_build -Dinstall_blobs=$blobs \
|
||||
-Dvhost_user_blk_server=$vhost_user_blk_server \
|
||||
-Dfuse=$fuse -Dfuse_lseek=$fuse_lseek \
|
||||
$(if test "$default_features" = no; then echo "-Dauto_features=disabled"; fi) \
|
||||
$cross_arg \
|
||||
"$PWD" "$source_path"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user