TMPC="${TMPDIR1}/${TMPB}.c"
TMPO="${TMPDIR1}/${TMPB}.o"
TMPCXX="${TMPDIR1}/${TMPB}.cxx"
-TMPL="${TMPDIR1}/${TMPB}.lo"
-TMPA="${TMPDIR1}/lib${TMPB}.la"
TMPE="${TMPDIR1}/${TMPB}.exe"
TMPMO="${TMPDIR1}/${TMPB}.mo"
vhost_scsi="no"
vhost_vsock="no"
kvm="no"
-colo="yes"
+hax="no"
rdma=""
gprof="no"
debug_tcg="no"
glusterfs_xlator_opt="no"
glusterfs_discard="no"
glusterfs_zerofill="no"
-archipelago="no"
gtk=""
gtkabi=""
gtk_gl="no"
nettle=""
nettle_kdf="no"
gcrypt=""
+gcrypt_hmac="no"
gcrypt_kdf="no"
vte=""
virglrenderer=""
jemalloc="no"
replication="yes"
+supported_cpu="no"
+supported_os="no"
+
# parse CC options first
for opt do
optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)')
# Normalise host CPU name and set ARCH.
# Note that this case should only have supported host CPUs, not guests.
case "$cpu" in
- ia64|ppc|ppc64|s390|s390x|sparc64|x32)
+ ppc|ppc64|s390|s390x|x32)
+ cpu="$cpu"
+ supported_cpu="yes"
+ ;;
+ ia64|sparc64)
cpu="$cpu"
;;
i386|i486|i586|i686|i86pc|BePC)
cpu="i386"
+ supported_cpu="yes"
;;
x86_64|amd64)
cpu="x86_64"
+ supported_cpu="yes"
;;
armv*b|armv*l|arm)
cpu="arm"
+ supported_cpu="yes"
;;
aarch64)
cpu="aarch64"
+ supported_cpu="yes"
;;
mips*)
cpu="mips"
+ supported_cpu="yes"
;;
sparc|sun4[cdmuv])
cpu="sparc"
HOST_VARIANT_DIR=""
case $targetos in
-CYGWIN*)
- mingw32="yes"
- QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
- audio_possible_drivers="sdl"
- audio_drv_list="sdl"
-;;
MINGW32*)
mingw32="yes"
+ hax="yes"
audio_possible_drivers="dsound sdl"
if check_include dsound.h; then
audio_drv_list="dsound"
else
audio_drv_list=""
fi
+ supported_os="yes"
;;
GNU/kFreeBSD)
bsd="yes"
libs_qga="-lutil $libs_qga"
netmap="" # enable netmap autodetect
HOST_VARIANT_DIR="freebsd"
+ supported_os="yes"
;;
DragonFly)
bsd="yes"
Darwin)
bsd="yes"
darwin="yes"
+ hax="yes"
LDFLAGS_SHARED="-bundle -undefined dynamic_lookup"
if [ "$cpu" = "x86_64" ] ; then
QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
# won't work when we're compiling with gcc as a C compiler.
QEMU_CFLAGS="-DOS_OBJECT_USE_OBJC=0 $QEMU_CFLAGS"
HOST_VARIANT_DIR="darwin"
+ supported_os="yes"
;;
SunOS)
solaris="yes"
QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
LIBS="-lposix_error_mapper -lnetwork $LIBS"
;;
-*)
+Linux)
audio_drv_list="oss"
audio_possible_drivers="oss alsa sdl pa"
linux="yes"
vhost_scsi="yes"
vhost_vsock="yes"
QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES"
+ supported_os="yes"
+;;
+*)
+ error_exit "Unsupported host OS $targetos"
;;
esac
;;
--enable-kvm) kvm="yes"
;;
- --disable-colo) colo="no"
+ --disable-hax) hax="no"
;;
- --enable-colo) colo="yes"
+ --enable-hax) hax="yes"
;;
--disable-tcg-interpreter) tcg_interpreter="no"
;;
;;
--enable-glusterfs) glusterfs="yes"
;;
- --disable-archipelago) archipelago="no"
- ;;
- --enable-archipelago) archipelago="yes"
- ;;
--disable-virtio-blk-data-plane|--enable-virtio-blk-data-plane)
echo "$0: $opt is obsolete, virtio-blk data-plane is always on" >&2
;;
--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
+ --enable-gprof QEMU profiling with gprof
+ --enable-profiler profiler support
+ --enable-xen-pv-domain-build
+ xen pv domain builder
+ --enable-debug-stack-usage
+ track the maximum stack usage of stacks created by qemu_alloc_stack
Optional features, enabled with --enable-FEATURE and
disabled with --disable-FEATURE, default is enabled if available:
fdt fdt device tree
bluez bluez stack connectivity
kvm KVM acceleration support
- colo COarse-grain LOck-stepping VM for Non-stop Service
+ hax HAX acceleration support
rdma RDMA-based migration support
vde support for vde network
netmap support for netmap network
seccomp seccomp support
coroutine-pool coroutine freelist (better performance)
glusterfs GlusterFS backend
- archipelago Archipelago backend
tpm TPM support
libssh2 ssh block device support
numa libnuma support
tcmalloc tcmalloc support
jemalloc jemalloc support
replication replication support
+ vhost-vsock virtio sockets device 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-image tools
NOTE: The object files are built at the place where configure is launched
EOF
gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
-gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
+gcc_flags="-Wno-missing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
gcc_flags="-Wendif-labels -Wno-shift-negative-value $gcc_flags"
gcc_flags="-Wno-initializer-overrides $gcc_flags"
gcc_flags="-Wno-string-plus-int $gcc_flags"
if compile_prog "$gcrypt_cflags" "$gcrypt_libs" ; then
gcrypt_kdf=yes
fi
+
+ cat > $TMPC << EOF
+#include <gcrypt.h>
+int main(void) {
+ gcry_mac_hd_t handle;
+ gcry_mac_open(&handle, GCRY_MAC_HMAC_MD5,
+ GCRY_MAC_FLAG_SECURE, NULL);
+ return 0;
+}
+EOF
+ if compile_prog "$gcrypt_cflags" "$gcrypt_libs" ; then
+ gcrypt_hmac=yes
+ fi
else
if test "$gcrypt" = "yes"; then
feature_not_found "gcrypt" "Install gcrypt devel"
fi
##########################################
-# xfsctl() probe, used for raw-posix
+# xfsctl() probe, used for file-posix.c
if test "$xfs" != "no" ; then
cat > $TMPC << EOF
#include <stddef.h> /* NULL */
audio_pt_int="yes"
;;
+ sdl)
+ if test "$sdl" = "no"; then
+ error_exit "sdl not found or disabled, can not use sdl audio driver"
+ fi
+ ;;
+
coreaudio)
libs_softmmu="-framework CoreAudio $libs_softmmu"
;;
libs_softmmu="$oss_lib $libs_softmmu"
;;
- sdl|wav)
- # XXX: Probes for CoreAudio, DirectSound, SDL(?)
+ wav)
+ # XXX: Probes for CoreAudio, DirectSound
;;
*)
# g_test_trap_subprocess added in 2.38. Used by some tests.
glib_subprocess=yes
-if test "$mingw32" = "yes" || ! $pkg_config --atleast-version=2.38 glib-2.0; then
+if ! $pkg_config --atleast-version=2.38 glib-2.0; then
glib_subprocess=no
fi
fdt_required=no
for target in $target_list; do
case $target in
- aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu)
+ aarch64*-softmmu|arm*-softmmu|ppc*-softmmu|microblaze*-softmmu|mips64el-softmmu)
fdt_required=yes
;;
esac
if test "$fdt" != "no" ; then
fdt_libs="-lfdt"
# explicitly check for libfdt_env.h as it is missing in some stable installs
- # and test for required functions to make sure we are on a version >= 1.4.0
+ # and test for required functions to make sure we are on a version >= 1.4.2
cat > $TMPC << EOF
#include <libfdt.h>
#include <libfdt_env.h>
-int main(void) { fdt_get_property_by_offset(0, 0, 0); return 0; }
+int main(void) { fdt_first_subnode(0, 0); return 0; }
EOF
if compile_prog "" "$fdt_libs" ; then
# system DTC is good - use it
fdt_libs="-L\$(BUILD_DIR)/dtc/libfdt $fdt_libs"
elif test "$fdt" = "yes" ; then
# have neither and want - prompt for system/submodule install
- error_exit "DTC (libfdt) version >= 1.4.0 not present. Your options:" \
+ error_exit "DTC (libfdt) version >= 1.4.2 not present. Your options:" \
" (1) Preferred: Install the DTC (libfdt) devel package" \
" (2) Fetch the DTC submodule, using:" \
" git submodule update --init dtc"
if test "$gtk" = "yes" && $pkg_config --exists "$gtkpackage >= 3.16"; then
gtk_gl="yes"
fi
+ QEMU_CFLAGS="$QEMU_CFLAGS $opengl_cflags"
else
if test "$opengl" = "yes" ; then
feature_not_found "opengl" "Please install opengl (mesa) devel pkgs: $opengl_pkgs"
fi
fi
-##########################################
-# archipelago probe
-if test "$archipelago" != "no" ; then
- cat > $TMPC <<EOF
-#include <stdio.h>
-#include <xseg/xseg.h>
-#include <xseg/protocol.h>
-int main(void) {
- xseg_initialize();
- return 0;
-}
-EOF
- archipelago_libs=-lxseg
- if compile_prog "" "$archipelago_libs"; then
- archipelago="yes"
- libs_tools="$archipelago_libs $libs_tools"
- libs_softmmu="$archipelago_libs $libs_softmmu"
-
- echo "WARNING: Please check the licenses of QEMU and libxseg carefully."
- echo "GPLv3 versions of libxseg may not be compatible with QEMU's"
- echo "license and therefore prevent redistribution."
- echo
- echo "To disable Archipelago, use --disable-archipelago"
- else
- if test "$archipelago" = "yes" ; then
- feature_not_found "Archipelago backend support" "Install libxseg devel"
- fi
- archipelago="no"
- fi
-fi
-
##########################################
# glusterfs probe
if ! compile_object ""; then
error_exit "Failed to compile object file for LD_REL_FLAGS test"
fi
-if do_cc -nostdlib -Wl,-r -Wl,--no-relax -o $TMPMO $TMPO; then
- LD_REL_FLAGS="-Wl,--no-relax"
+for i in '-Wl,-r -Wl,--no-relax' -Wl,-r -r; do
+ if do_cc -nostdlib $i -o $TMPMO $TMPO; then
+ LD_REL_FLAGS=$i
+ break
+ fi
+done
+if test "$modules" = "yes" && test "$LD_REL_FLAGS" = ""; then
+ feature_not_found "modules" "Cannot find how to build relocatable objects"
+fi
+
+##########################################
+# check for sysmacros.h
+
+have_sysmacros=no
+cat > $TMPC << EOF
+#include <sys/sysmacros.h>
+int main(void) {
+ return makedev(0, 0);
+}
+EOF
+if compile_prog "" "" ; then
+ have_sysmacros=yes
fi
##########################################
echo "ATTR/XATTR support $attr"
echo "Install blobs $blobs"
echo "KVM support $kvm"
-echo "COLO support $colo"
+echo "HAX support $hax"
echo "RDMA support $rdma"
echo "TCG interpreter $tcg_interpreter"
echo "fdt support $fdt"
echo "coroutine pool $coroutine_pool"
echo "debug stack usage $debug_stack_usage"
echo "GlusterFS support $glusterfs"
-echo "Archipelago support $archipelago"
echo "gcov $gcov_tool"
echo "gcov enabled $gcov"
echo "TPM support $tpm"
echo "-> Your SDL version is too old - please upgrade to have SDL support"
fi
+if test "$supported_cpu" = "no"; then
+ echo
+ echo "WARNING: SUPPORT FOR THIS HOST CPU WILL GO AWAY IN FUTURE RELEASES!"
+ echo
+ echo "CPU host architecture $cpu support is not currently maintained."
+ echo "The QEMU project intends to remove support for this host CPU in"
+ echo "a future release if nobody volunteers to maintain it and to"
+ echo "provide a build host for our continuous integration setup."
+ echo "configure has succeeded and you can continue to build, but"
+ echo "if you care about QEMU on this platform you should contact"
+ echo "us upstream at qemu-devel@nongnu.org."
+fi
+
+if test "$supported_os" = "no"; then
+ echo
+ echo "WARNING: SUPPORT FOR THIS HOST OS WILL GO AWAY IN FUTURE RELEASES!"
+ echo
+ echo "Host OS $targetos support is not currently maintained."
+ echo "The QEMU project intends to remove support for this host OS in"
+ echo "a future release if nobody volunteers to maintain it and to"
+ echo "provide a build host for our continuous integration setup."
+ echo "configure has succeeded and you can continue to build, but"
+ echo "if you care about QEMU on this platform you should contact"
+ echo "us upstream at qemu-devel@nongnu.org."
+fi
+
config_host_mak="config-host.mak"
echo "# Automatically generated by configure - do not modify" >config-all-disas.mak
fi
if test "$gcrypt" = "yes" ; then
echo "CONFIG_GCRYPT=y" >> $config_host_mak
+ if test "$gcrypt_hmac" = "yes" ; then
+ echo "CONFIG_GCRYPT_HMAC=y" >> $config_host_mak
+ fi
if test "$gcrypt_kdf" = "yes" ; then
echo "CONFIG_GCRYPT_KDF=y" >> $config_host_mak
fi
if test "$opengl" = "yes" ; then
echo "CONFIG_OPENGL=y" >> $config_host_mak
- echo "OPENGL_CFLAGS=$opengl_cflags" >> $config_host_mak
echo "OPENGL_LIBS=$opengl_libs" >> $config_host_mak
if test "$opengl_dmabuf" = "yes" ; then
echo "CONFIG_OPENGL_DMABUF=y" >> $config_host_mak
echo "CONFIG_GLUSTERFS_ZEROFILL=y" >> $config_host_mak
fi
-if test "$archipelago" = "yes" ; then
- echo "CONFIG_ARCHIPELAGO=m" >> $config_host_mak
- echo "ARCHIPELAGO_LIBS=$archipelago_libs" >> $config_host_mak
-fi
-
if test "$libssh2" = "yes" ; then
echo "CONFIG_LIBSSH2=m" >> $config_host_mak
echo "LIBSSH2_CFLAGS=$libssh2_cflags" >> $config_host_mak
fi
echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
-if test "$colo" = "yes"; then
- echo "CONFIG_COLO=y" >> $config_host_mak
-fi
-
if test "$rdma" = "yes" ; then
echo "CONFIG_RDMA=y" >> $config_host_mak
fi
echo "CONFIG_AF_VSOCK=y" >> $config_host_mak
fi
+if test "$have_sysmacros" = "yes" ; then
+ echo "CONFIG_SYSMACROS=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
target_bigendian="no"
case "$target_name" in
- armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|moxie|or32|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb)
+ armeb|hppa|lm32|m68k|microblaze|mips|mipsn32|mips64|moxie|or1k|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb)
target_bigendian=yes
;;
esac
echo "# Automatically generated by configure - do not modify" > $config_target_mak
bflt="no"
+mttcg="no"
interp_prefix1=$(echo "$interp_prefix" | sed "s/%M/$target_name/g")
gdb_xml_files=""
TARGET_BASE_ARCH=i386
;;
alpha)
+ mttcg="yes"
;;
arm|armeb)
TARGET_ARCH=arm
bflt="yes"
+ mttcg="yes"
gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
;;
aarch64)
TARGET_BASE_ARCH=arm
bflt="yes"
+ mttcg="yes"
gdb_xml_files="aarch64-core.xml aarch64-fpu.xml arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
;;
cris)
;;
+ hppa)
+ ;;
lm32)
;;
m68k)
;;
moxie)
;;
- or32)
+ nios2)
+ ;;
+ or1k)
TARGET_ARCH=openrisc
TARGET_BASE_ARCH=openrisc
;;
fi
fi
esac
+if test "$hax" = "yes" ; then
+ if test "$target_softmmu" = "yes" ; then
+ case "$target_name" in
+ i386|x86_64)
+ echo "CONFIG_HAX=y" >> $config_target_mak
+ ;;
+ esac
+ fi
+fi
if test "$target_bigendian" = "yes" ; then
echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
fi
if test "$target_softmmu" = "yes" ; then
echo "CONFIG_SOFTMMU=y" >> $config_target_mak
+ if test "$mttcg" = "yes" ; then
+ echo "TARGET_SUPPORTS_MTTCG=y" >> $config_target_mak
+ fi
fi
if test "$target_user_only" = "yes" ; then
echo "CONFIG_USER_ONLY=y" >> $config_target_mak
cris)
disas_config "CRIS"
;;
+ hppa)
+ disas_config "HPPA"
+ ;;
i386|x86_64|x32)
disas_config "I386"
;;
moxie*)
disas_config "MOXIE"
;;
- or32)
+ nios2)
+ disas_config "NIOS2"
+ ;;
+ or1k)
disas_config "OPENRISC"
;;
ppc*)
# build tree in object directory in case the source is not in the current directory
DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests"
-DIRS="$DIRS fsdev"
+DIRS="$DIRS docs fsdev"
DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw"
DIRS="$DIRS roms/seabios roms/vgabios"
DIRS="$DIRS qapi-generated"