diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 199 |
1 files changed, 141 insertions, 58 deletions
@@ -134,9 +134,9 @@ vnc_tls="" vnc_sasl="" vnc_jpeg="" vnc_png="" -vnc_thread="no" xen="" xen_ctrl_version="" +xen_pci_passthrough="" linux_aio="" cap_ng="" attr="" @@ -666,10 +666,6 @@ for opt do ;; --enable-vnc-png) vnc_png="yes" ;; - --disable-vnc-thread) vnc_thread="no" - ;; - --enable-vnc-thread) vnc_thread="yes" - ;; --disable-slirp) slirp="no" ;; --disable-uuid) uuid="no" @@ -684,6 +680,10 @@ for opt do ;; --enable-xen) xen="yes" ;; + --disable-xen-pci-passthrough) xen_pci_passthrough="no" + ;; + --enable-xen-pci-passthrough) xen_pci_passthrough="yes" + ;; --disable-brlapi) brlapi="no" ;; --enable-brlapi) brlapi="yes" @@ -924,6 +924,7 @@ mips-softmmu \ mipsel-softmmu \ mips64-softmmu \ mips64el-softmmu \ +or32-softmmu \ ppc-softmmu \ ppcemb-softmmu \ ppc64-softmmu \ @@ -950,6 +951,7 @@ microblaze-linux-user \ microblazeel-linux-user \ mips-linux-user \ mipsel-linux-user \ +or32-linux-user \ ppc-linux-user \ ppc64-linux-user \ ppc64abi32-linux-user \ @@ -1031,6 +1033,8 @@ echo " (affects only QEMU, not qemu-img)" echo " --enable-mixemu enable mixer emulation" echo " --disable-xen disable xen backend driver support" echo " --enable-xen enable xen backend driver support" +echo " --disable-xen-pci-passthrough" +echo " --enable-xen-pci-passthrough" echo " --disable-brlapi disable BrlAPI" echo " --enable-brlapi enable BrlAPI" echo " --disable-vnc-tls disable TLS encryption for VNC server" @@ -1041,8 +1045,6 @@ echo " --disable-vnc-jpeg disable JPEG lossy compression for VNC server" echo " --enable-vnc-jpeg enable JPEG lossy compression for VNC server" echo " --disable-vnc-png disable PNG compression for VNC server (default)" echo " --enable-vnc-png enable PNG compression for VNC server" -echo " --disable-vnc-thread disable threaded VNC server" -echo " --enable-vnc-thread enable threaded VNC server" echo " --disable-curses disable curses output" echo " --enable-curses enable curses output" echo " --disable-curl disable curl connectivity" @@ -1139,10 +1141,27 @@ else exit 1 fi +# Consult white-list to determine whether to enable werror +# by default. Only enable by default for git builds +z_version=`cut -f3 -d. $source_path/VERSION` + +if test -z "$werror" ; then + if test "$z_version" = "50" -a \ + "$linux" = "yes" ; then + werror="yes" + else + werror="no" + fi +fi + 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="-fstack-protector-all -Wendif-labels $gcc_flags" +# Note that we do not add -Werror to gcc_flags here, because that would +# enable it for all configure tests. If a configure test failed due +# to -Werror this would just silently disable some features, +# so it's too error prone. cat > $TMPC << EOF int main(void) { return 0; } EOF @@ -1365,7 +1384,6 @@ if test "$xen" != "no" ; then # Xen (any) cat > $TMPC <<EOF #include <xenctrl.h> -#include <xs.h> int main(void) { return 0; } @@ -1378,10 +1396,10 @@ EOF xen=no # Xen unstable - elif ( - cat > $TMPC <<EOF + elif + cat > $TMPC <<EOF && #include <xenctrl.h> -#include <xs.h> +#include <xenstore.h> #include <stdint.h> #include <xen/hvm/hvm_info_table.h> #if !defined(HVM_MAX_VCPUS) @@ -1399,12 +1417,12 @@ int main(void) { } EOF compile_prog "" "$xen_libs" - ) ; then + then xen_ctrl_version=420 xen=yes - elif ( - cat > $TMPC <<EOF + elif + cat > $TMPC <<EOF && #include <xenctrl.h> #include <xs.h> #include <stdint.h> @@ -1413,9 +1431,8 @@ EOF # error HVM_MAX_VCPUS not defined #endif int main(void) { - xc_interface *xc; xs_daemon_open(); - xc = xc_interface_open(0, 0, 0); + xc_interface_open(0, 0, 0); xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); xc_gnttab_open(NULL, 0); xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0); @@ -1423,13 +1440,13 @@ int main(void) { } EOF compile_prog "" "$xen_libs" - ) ; then + then xen_ctrl_version=410 xen=yes # Xen 4.0.0 - elif ( - cat > $TMPC <<EOF + elif + cat > $TMPC <<EOF && #include <xenctrl.h> #include <xs.h> #include <stdint.h> @@ -1450,13 +1467,13 @@ int main(void) { } EOF compile_prog "" "$xen_libs" - ) ; then + then xen_ctrl_version=400 xen=yes # Xen 3.4.0 - elif ( - cat > $TMPC <<EOF + elif + cat > $TMPC <<EOF && #include <xenctrl.h> #include <xs.h> int main(void) { @@ -1472,13 +1489,13 @@ int main(void) { } EOF compile_prog "" "$xen_libs" - ) ; then + then xen_ctrl_version=340 xen=yes # Xen 3.3.0 - elif ( - cat > $TMPC <<EOF + elif + cat > $TMPC <<EOF && #include <xenctrl.h> #include <xs.h> int main(void) { @@ -1490,7 +1507,7 @@ int main(void) { } EOF compile_prog "" "$xen_libs" - ) ; then + then xen_ctrl_version=330 xen=yes @@ -1507,6 +1524,25 @@ EOF fi fi +if test "$xen_pci_passthrough" != "no"; then + if test "$xen" = "yes" && test "$linux" = "yes" && + test "$xen_ctrl_version" -ge 340; then + xen_pci_passthrough=yes + else + if test "$xen_pci_passthrough" = "yes"; then + echo "ERROR" + echo "ERROR: User requested feature Xen PCI Passthrough" + echo "ERROR: but this feature require /sys from Linux" + if test "$xen_ctrl_version" -lt 340; then + echo "ERROR: This feature does not work with Xen 3.3" + fi + echo "ERROR" + exit 1; + fi + xen_pci_passthrough=no + fi +fi + ########################################## # pkg-config probe @@ -1691,7 +1727,7 @@ cat > $TMPC <<EOF int main(void) { png_structp png_ptr; png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - return 0; + return png_ptr != 0; } EOF if $pkg_config libpng --modversion >/dev/null 2>&1; then @@ -1784,7 +1820,8 @@ if test "$vde" != "no" ; then int main(void) { struct vde_open_args a = {0, 0, 0}; - vde_open("", "", &a); + char s[] = ""; + vde_open(s, s, &a); return 0; } EOF @@ -1853,7 +1890,7 @@ for drv in $audio_drv_list; do case $drv in alsa) audio_drv_probe $drv alsa/asoundlib.h -lasound \ - "snd_pcm_t **handle; return snd_pcm_close(*handle);" + "return snd_pcm_close((snd_pcm_t *)0);" libs_softmmu="-lasound $libs_softmmu" ;; @@ -2047,7 +2084,7 @@ if test "$cap" != "no" ; then cat > $TMPC <<EOF #include <stdio.h> #include <sys/capability.h> -int main(void) { cap_t caps; caps = cap_init(); } +int main(void) { cap_t caps; caps = cap_init(); return caps != NULL; } EOF if compile_prog "" "-lcap" ; then cap=yes @@ -2304,6 +2341,7 @@ cat > $TMPC << EOF #define _ATFILE_SOURCE #include <stddef.h> #include <fcntl.h> +#include <sys/stat.h> int main(void) { @@ -2554,7 +2592,7 @@ if test "$libiscsi" != "no" ; then #include <iscsi/iscsi.h> int main(void) { iscsi_unmap_sync(NULL,0,0,0,NULL,0); return 0; } EOF - if compile_prog "-Werror" "-liscsi" ; then + if compile_prog "" "-liscsi" ; then libiscsi="yes" LIBS="$LIBS -liscsi" else @@ -2618,13 +2656,22 @@ if test "$smartcard" != "no" ; then #include <pk11pub.h> int main(void) { PK11_FreeSlot(0); return 0; } EOF - smartcard_cflags="-I\$(SRC_PATH)/libcacard" + smartcard_includes="-I\$(SRC_PATH)/libcacard" libcacard_libs="$($pkg_config --libs nss 2>/dev/null) $glib_libs" libcacard_cflags="$($pkg_config --cflags nss 2>/dev/null) $glib_cflags" + test_cflags="$libcacard_cflags" + # The header files in nss < 3.13.3 have a bug which causes them to + # emit a warning. If we're going to compile QEMU with -Werror, then + # test that the headers don't have this bug. Otherwise we would pass + # the configure test but fail to compile QEMU later. + if test "$werror" = "yes"; then + test_cflags="-Werror $test_cflags" + fi if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 && \ - compile_prog "$smartcard_cflags $libcacard_cflags" "$libcacard_libs"; then + compile_prog "$test_cflags" "$libcacard_libs"; then smartcard_nss="yes" - QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags" + QEMU_CFLAGS="$QEMU_CFLAGS $libcacard_cflags" + QEMU_INCLUDES="$QEMU_INCLUDES $smartcard_includes" libs_softmmu="$libcacard_libs $libs_softmmu" else if test "$smartcard_nss" = "yes"; then @@ -2753,7 +2800,7 @@ fi # specification is necessary if test "$vhost_net" = "yes" && test "$cpu" = "i386"; then cat > $TMPC << EOF -int sfaa(unsigned *ptr) +static int sfaa(int *ptr) { return __sync_fetch_and_and(ptr, 0); } @@ -2766,7 +2813,7 @@ int main(int argc, char **argv) } EOF if ! compile_prog "" "" ; then - CFLAGS+="-march=i486" + QEMU_CFLAGS="-march=i486 $QEMU_CFLAGS" fi fi @@ -2808,7 +2855,7 @@ fi ########################################## # check if we have open_by_handle_at -open_by_hande_at=no +open_by_handle_at=no cat > $TMPC << EOF #include <fcntl.h> #if !defined(AT_EMPTY_PATH) @@ -2836,6 +2883,37 @@ if compile_prog "" "" ; then fi ######################################## +# check whether we can disable the -Wunused-but-set-variable +# option with a pragma (this is needed to silence a warning in +# some versions of the valgrind VALGRIND_STACK_DEREGISTER macro.) +# This test has to be compiled with -Werror as otherwise an +# unknown pragma is only a warning. +pragma_disable_unused_but_set=no +cat > $TMPC << EOF +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +int main(void) { + return 0; +} +EOF +if compile_prog "-Werror" "" ; then + pragma_disable_unused_but_set=yes +fi + +######################################## +# check if we have valgrind/valgrind.h + +valgrind_h=no +cat > $TMPC << EOF +#include <valgrind/valgrind.h> +int main(void) { + return 0; +} +EOF +if compile_prog "" "" ; then + valgrind_h=yes +fi + +######################################## # check if environ is declared has_environ=no @@ -2858,19 +2936,6 @@ if test "$debug" = "no" ; then CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS" fi -# Consult white-list to determine whether to enable werror -# by default. Only enable by default for git builds -z_version=`cut -f3 -d. $source_path/VERSION` - -if test -z "$werror" ; then - if test "$z_version" = "50" -a \ - "$linux" = "yes" ; then - werror="yes" - else - werror="no" - fi -fi - # Disable zero malloc errors for official releases unless explicitly told to # enable/disable if test -z "$zero_malloc" ; then @@ -2881,7 +2946,8 @@ if test -z "$zero_malloc" ; then fi fi -if test "$werror" = "yes" ; then +# Now we've finished running tests it's OK to add -Werror to the compiler flags +if test "$werror" = "yes"; then QEMU_CFLAGS="-Werror $QEMU_CFLAGS" fi @@ -2998,7 +3064,6 @@ if test "$vnc" = "yes" ; then echo "VNC SASL support $vnc_sasl" echo "VNC JPEG support $vnc_jpeg" echo "VNC PNG support $vnc_png" - echo "VNC thread $vnc_thread" fi if test -n "$sparc_cpu"; then echo "Target Sparc Arch $sparc_cpu" @@ -3174,9 +3239,6 @@ if test "$vnc_png" = "yes" ; then echo "CONFIG_VNC_PNG=y" >> $config_host_mak echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak fi -if test "$vnc_thread" = "yes" ; then - echo "CONFIG_VNC_THREAD=y" >> $config_host_mak -fi if test "$fnmatch" = "yes" ; then echo "CONFIG_FNMATCH=y" >> $config_host_mak fi @@ -3365,6 +3427,14 @@ if test "$linux_magic_h" = "yes" ; then echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak fi +if test "$pragma_disable_unused_but_set" = "yes" ; then + echo "CONFIG_PRAGMA_DISABLE_UNUSED_BUT_SET=y" >> $config_host_mak +fi + +if test "$valgrind_h" = "yes" ; then + echo "CONFIG_VALGRIND_H=y" >> $config_host_mak +fi + if test "$has_environ" = "yes" ; then echo "CONFIG_HAS_ENVIRON=y" >> $config_host_mak fi @@ -3465,6 +3535,7 @@ done # use included Linux headers if test "$linux" = "yes" ; then + mkdir -p linux-headers case "$cpu" in i386|x86_64) symlink "$source_path/linux-headers/asm-x86" linux-headers/asm @@ -3485,7 +3556,7 @@ target_arch2=`echo $target | cut -d '-' -f 1` target_bigendian="no" case "$target_arch2" in - armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb) + armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|or32|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb) target_bigendian=yes ;; esac @@ -3555,7 +3626,7 @@ case "$target_arch2" in bflt="yes" target_nptl="yes" gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" - target_phys_bits=32 + target_phys_bits=64 target_llong_alignment=4 target_libs_softmmu="$fdt_libs" ;; @@ -3601,6 +3672,11 @@ case "$target_arch2" in target_phys_bits=64 target_long_alignment=8 ;; + or32) + TARGET_ARCH=openrisc + TARGET_BASE_ARCH=openrisc + target_phys_bits=32 + ;; ppc) gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" target_phys_bits=64 @@ -3679,7 +3755,7 @@ symlink "$source_path/Makefile.target" "$target_dir/Makefile" case "$target_arch2" in - alpha | sparc* | xtensa* | ppc*) + alpha | or32 | sparc* | xtensa* | ppc*) echo "CONFIG_TCG_PASS_AREG0=y" >> $config_target_mak ;; esac @@ -3702,6 +3778,9 @@ case "$target_arch2" in if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then target_phys_bits=64 echo "CONFIG_XEN=y" >> $config_target_mak + if test "$xen_pci_passthrough" = yes; then + echo "CONFIG_XEN_PCI_PASSTHROUGH=y" >> "$config_target_mak" + fi else echo "CONFIG_NO_XEN=y" >> $config_target_mak fi @@ -3850,6 +3929,10 @@ for i in $ARCH $TARGET_BASE_ARCH ; do echo "CONFIG_MIPS_DIS=y" >> $config_target_mak echo "CONFIG_MIPS_DIS=y" >> $libdis_config_mak ;; + or32) + echo "CONFIG_OPENRISC_DIS=y" >> $config_target_mak + echo "CONFIG_OPENRISC_DIS=y" >> $libdis_config_mak + ;; ppc*) echo "CONFIG_PPC_DIS=y" >> $config_target_mak echo "CONFIG_PPC_DIS=y" >> $libdis_config_mak |