X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure;h=4b3b5cd6bcb6d14441755277d4859cf533545613;hb=b8a68728b6a3fad86f15aa5efdc31ea0b3cb8a62;hp=091ae0585d09f5441e5ee89681ac4f769d2108e9;hpb=b0cb0a66d6d535112aa513568ef21dcb1ad283ed;p=mirror_qemu.git diff --git a/configure b/configure index 091ae0585d..4b3b5cd6bc 100755 --- a/configure +++ b/configure @@ -301,7 +301,6 @@ glusterfs="" glusterfs_xlator_opt="no" glusterfs_discard="no" glusterfs_zerofill="no" -archipelago="no" gtk="" gtkabi="" gtk_gl="no" @@ -322,6 +321,10 @@ tcmalloc="no" jemalloc="no" replication="yes" +supported_cpu="no" +supported_os="no" +bogus_os="no" + # parse CC options first for opt do optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)') @@ -518,26 +521,36 @@ ARCH= # 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|sparc64|x32) + cpu="$cpu" + supported_cpu="yes" + ;; + ia64) 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" + supported_cpu="yes" ;; *) # This will result in either an error or falling back to TCI later @@ -554,12 +567,6 @@ fi 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" @@ -569,6 +576,7 @@ MINGW32*) else audio_drv_list="" fi + supported_os="yes" ;; GNU/kFreeBSD) bsd="yes" @@ -586,6 +594,7 @@ FreeBSD) libs_qga="-lutil $libs_qga" netmap="" # enable netmap autodetect HOST_VARIANT_DIR="freebsd" + supported_os="yes" ;; DragonFly) bsd="yes" @@ -627,6 +636,7 @@ Darwin) # 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" @@ -673,7 +683,7 @@ Haiku) 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" @@ -683,6 +693,13 @@ Haiku) vhost_scsi="yes" vhost_vsock="yes" QEMU_INCLUDES="-I\$(SRC_PATH)/linux-headers -I$(pwd)/linux-headers $QEMU_INCLUDES" + supported_os="yes" +;; +*) + # This is a fatal error, but don't report it yet, because we + # might be going to just print the --help text, or it might + # be the result of a missing compiler. + bogus_os="yes" ;; esac @@ -1101,10 +1118,6 @@ for opt do ;; --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 ;; @@ -1335,6 +1348,12 @@ Advanced options (experts only): --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: @@ -1396,13 +1415,18 @@ disabled with --disable-FEATURE, default is enabled if available: 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 @@ -1441,6 +1465,14 @@ if ! compile_prog ; then error_exit "\"$cc\" cannot build an executable (is your linker broken?)" fi +if test "$bogus_os" = "yes"; then + # Now that we know that we're not printing the help and that + # the compiler works (so the results of the check_defines we used + # to identify the OS are reliable), if we didn't recognize the + # host OS we should stop now. + error_exit "Unrecognized host OS $targetos" +fi + # Check that the C++ compiler exists and works with the C compiler if has $cxx; then cat > $TMPC <= 1.4.0 + # and test for required functions to make sure we are on a version >= 1.4.2 cat > $TMPC << EOF #include #include -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 @@ -3418,7 +3463,7 @@ EOF 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" @@ -3443,6 +3488,7 @@ if test "$opengl" != "no" ; then 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" @@ -3466,37 +3512,6 @@ EOF fi fi -########################################## -# archipelago probe -if test "$archipelago" != "no" ; then - cat > $TMPC < -#include -#include -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 @@ -4747,6 +4762,20 @@ 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 +int main(void) { + return makedev(0, 0); +} +EOF +if compile_prog "" "" ; then + have_sysmacros=yes +fi + ########################################## # End of CC checks # After here, no more $cc or $ld runs @@ -5099,7 +5128,6 @@ echo "coroutine backend $coroutine" 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" @@ -5119,6 +5147,32 @@ if test "$sdl_too_old" = "yes"; then 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 @@ -5515,7 +5569,6 @@ 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 @@ -5640,11 +5693,6 @@ if test "$glusterfs_zerofill" = "yes" ; then 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 @@ -5719,6 +5767,10 @@ if test "$have_af_vsock" = "yes" ; then 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 @@ -5843,7 +5895,7 @@ target_name=$(echo $target | cut -d '-' -f 1) 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 @@ -5879,6 +5931,7 @@ mkdir -p $target_dir 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="" @@ -5893,19 +5946,24 @@ case "$target_name" in 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) @@ -5933,7 +5991,9 @@ case "$target_name" in ;; moxie) ;; - or32) + nios2) + ;; + or1k) TARGET_ARCH=openrisc TARGET_BASE_ARCH=openrisc ;; @@ -6062,6 +6122,9 @@ if test "$target_bigendian" = "yes" ; then 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 @@ -6114,6 +6177,9 @@ for i in $ARCH $TARGET_BASE_ARCH ; do cris) disas_config "CRIS" ;; + hppa) + disas_config "HPPA" + ;; i386|x86_64|x32) disas_config "I386" ;; @@ -6135,7 +6201,10 @@ for i in $ARCH $TARGET_BASE_ARCH ; do moxie*) disas_config "MOXIE" ;; - or32) + nios2) + disas_config "NIOS2" + ;; + or1k) disas_config "OPENRISC" ;; ppc*) @@ -6205,7 +6274,7 @@ fi # 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"