X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=configure;h=69a5502b66db169a1a00d26670191db169acc22c;hb=e3936fa574d9fbe241acdc76b5195b048567537e;hp=6a37d6e72765140fb228fdcc6ab68707b56d537a;hpb=4ffcedb674469fb18bae562974fff610e9d4d8c7;p=qemu.git diff --git a/configure b/configure index 6a37d6e72..69a5502b6 100755 --- a/configure +++ b/configure @@ -177,22 +177,34 @@ esac # to ensure that several features are compiled in, and it is impossible without a # --enable-foo that exits if feature is not found +bluez="" brlapi="" +curl="" +curses="" +docs="" +fdt="" +kvm="" +nptl="" +sdl="" +sparse="no" +uuid="" +vde="" +vnc_tls="" +vnc_sasl="" +xen="" +linux_aio="" + gprof="no" debug_tcg="no" debug="no" -sparse="no" strip_opt="yes" bigendian="no" mingw32="no" EXESUF="" slirp="yes" -vde="yes" fmod_lib="" fmod_inc="" oss_lib="" -vnc_tls="yes" -vnc_sasl="yes" bsd="no" linux="no" solaris="no" @@ -203,22 +215,15 @@ linux_user="no" darwin_user="no" bsd_user="no" guest_base="" -build_docs="yes" uname_release="" -curses="yes" -curl="yes" io_thread="no" -nptl="yes" mixemu="no" -bluez="yes" -kvm="no" kerneldir="" aix="no" blobs="yes" -fdt="yes" -sdl="yes" -xen="yes" pkgversion="" +check_utests="no" +user_pie="no" # OS specific if check_define __linux__ ; then @@ -295,6 +300,7 @@ SunOS) solaris="yes" make="gmake" install="ginstall" + ld="gld" needs_libsunmath="no" solarisrev=`uname -r | cut -f2 -d.` # have to select again, because `uname -m` returns i86pc @@ -323,6 +329,10 @@ SunOS) audio_drv_list="oss" 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 + QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS" QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS" LIBS="-lsocket -lnsl -lresolv $LIBS" ;; @@ -336,7 +346,6 @@ AIX) linux="yes" linux_user="yes" usb="linux" - kvm="yes" if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then audio_possible_drivers="$audio_possible_drivers fmod" fi @@ -406,6 +415,8 @@ for opt do ;; --disable-sdl) sdl="no" ;; + --enable-sdl) sdl="yes" + ;; --fmod-lib=*) fmod_lib="$optarg" ;; --fmod-inc=*) fmod_inc="$optarg" @@ -434,22 +445,38 @@ for opt do ;; --disable-vnc-tls) vnc_tls="no" ;; + --enable-vnc-tls) vnc_tls="yes" + ;; --disable-vnc-sasl) vnc_sasl="no" ;; + --enable-vnc-sasl) vnc_sasl="yes" + ;; --disable-slirp) slirp="no" ;; + --disable-uuid) uuid="no" + ;; + --enable-uuid) uuid="yes" + ;; --disable-vde) vde="no" ;; + --enable-vde) vde="yes" + ;; --disable-xen) xen="no" ;; + --enable-xen) xen="yes" + ;; --disable-brlapi) brlapi="no" ;; --enable-brlapi) brlapi="yes" ;; --disable-bluez) bluez="no" ;; + --enable-bluez) bluez="yes" + ;; --disable-kvm) kvm="no" ;; + --enable-kvm) kvm="yes" + ;; --enable-profiler) profiler="yes" ;; --enable-cocoa) @@ -483,6 +510,10 @@ for opt do ;; --disable-guest-base) guest_base="no" ;; + --enable-user-pie) user_pie="yes" + ;; + --disable-user-pie) user_pie="no" + ;; --enable-uname-release=*) uname_release="$optarg" ;; --sparc_cpu=*) @@ -493,12 +524,30 @@ for opt do ;; --disable-curses) curses="no" ;; + --enable-curses) curses="yes" + ;; --disable-curl) curl="no" ;; + --enable-curl) curl="yes" + ;; + --disable-fdt) fdt="no" + ;; + --enable-fdt) fdt="yes" + ;; + --disable-check-utests) check_utests="no" + ;; + --enable-check-utests) check_utests="yes" + ;; --disable-nptl) nptl="no" ;; + --enable-nptl) nptl="yes" + ;; --enable-mixemu) mixemu="yes" ;; + --disable-linux-aio) linux_aio="no" + ;; + --enable-linux-aio) linux_aio="yes" + ;; --enable-io-thread) io_thread="yes" ;; --disable-blobs) blobs="no" @@ -507,7 +556,9 @@ for opt do ;; --with-pkgversion=*) pkgversion=" ($optarg)" ;; - --disable-docs) build_docs="no" + --disable-docs) docs="no" + ;; + --enable-docs) docs="yes" ;; *) echo "ERROR: unknown option $opt"; show_help="yes" ;; @@ -601,6 +652,7 @@ echo " --disable-sparse disable sparse checker (default)" echo " --disable-strip disable stripping binaries" echo " --disable-werror disable compilation abort on warning" echo " --disable-sdl disable SDL" +echo " --enable-sdl enable SDL" echo " --enable-cocoa enable COCOA (Mac OS X only)" echo " --audio-drv-list=LIST set audio drivers list:" echo " Available drivers: $audio_possible_drivers" @@ -608,15 +660,27 @@ echo " --audio-card-list=LIST set list of emulated audio cards [$audio_card_l echo " Available cards: $audio_possible_cards" echo " --enable-mixemu enable mixer emulation" echo " --disable-xen disable xen backend driver support" +echo " --enable-xen enable xen backend driver support" echo " --disable-brlapi disable BrlAPI" echo " --enable-brlapi enable BrlAPI" echo " --disable-vnc-tls disable TLS encryption for VNC server" +echo " --enable-vnc-tls enable TLS encryption for VNC server" echo " --disable-vnc-sasl disable SASL encryption for VNC server" +echo " --enable-vnc-sasl enable SASL encryption for VNC server" echo " --disable-curses disable curses output" +echo " --enable-curses enable curses output" echo " --disable-curl disable curl connectivity" +echo " --enable-curl enable curl connectivity" +echo " --disable-fdt disable fdt device tree" +echo " --enable-fdt enable fdt device tree" +echo " --disable-check-utests disable check unit-tests" +echo " --enable-check-utests enable check unit-tests" echo " --disable-bluez disable bluez stack connectivity" +echo " --enable-bluez enable bluez stack connectivity" echo " --disable-kvm disable KVM acceleration support" +echo " --enable-kvm enable KVM acceleration support" echo " --disable-nptl disable usermode NPTL support" +echo " --enable-nptl enable usermode NPTL support" echo " --enable-system enable all system emulation targets" echo " --disable-system disable all system emulation targets" echo " --enable-user enable supported user emulation targets" @@ -630,12 +694,19 @@ echo " --disable-bsd-user disable all BSD usermode emulation targets" echo " --enable-guest-base enable GUEST_BASE support for usermode" echo " emulation targets" echo " --disable-guest-base disable GUEST_BASE support" +echo " --enable-user-pie build usermode emulation targets as PIE" +echo " --disable-user-pie do not build usermode emulation targets as PIE" echo " --fmod-lib path to FMOD library" echo " --fmod-inc path to FMOD includes" echo " --oss-lib path to OSS library" echo " --enable-uname-release=R Return R for uname -r in usermode emulation" echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9" +echo " --disable-uuid disable uuid support" +echo " --enable-uuid enable uuid support" echo " --disable-vde disable support for vde network" +echo " --enable-vde enable support for vde network" +echo " --disable-linux-aio disable Linux AIO support" +echo " --enable-linux-aio enable Linux AIO support" echo " --enable-io-thread enable IO thread" echo " --disable-blobs disable installing provided firmware blobs" echo " --kerneldir=PATH look for kernel includes in PATH" @@ -644,10 +715,6 @@ echo "NOTE: The object files are built at the place where configure is launched" exit 1 fi -if test ! -x "$(which cgcc 2>/dev/null)"; then - sparse="no" -fi - # # Solaris specific configure tool chain decisions # @@ -748,7 +815,7 @@ feature_not_found() { echo "ERROR" echo "ERROR: User requested feature $feature" - echo "ERROR: configure was not able to found it" + echo "ERROR: configure was not able to find it" echo "ERROR" exit 1; } @@ -790,8 +857,12 @@ case "$cpu" in ;; esac -# Check host NPTL support -cat > $TMPC < $TMPC < #include void foo() @@ -802,10 +873,14 @@ void foo() } EOF -if compile_object ; then - : -else - nptl="no" + if compile_object ; then + nptl=yes + else + if test "$nptl" = "yes" ; then + feature_not_found "nptl" + fi + nptl=no + fi fi ########################################## @@ -828,7 +903,7 @@ fi ########################################## # xen probe -if test "$xen" = "yes" ; then +if test "$xen" != "no" ; then xen_libs="-lxenstore -lxenctrl -lxenguest" cat > $TMPC < @@ -836,9 +911,26 @@ if test "$xen" = "yes" ; then int main(void) { xs_daemon_open(); xc_interface_open(); return 0; } EOF if compile_prog "" "$xen_libs" ; then + xen=yes libs_softmmu="$xen_libs $libs_softmmu" else - xen="no" + if test "$xen" = "yes" ; then + feature_not_found "xen" + fi + xen=no + fi +fi + +########################################## +# Sparse probe +if test "$sparse" != "no" ; then + if test -x "$(which cgcc 2>/dev/null)"; then + sparse=yes + else + if test "$sparse" = "yes" ; then + feature_not_found "sparse" + fi + sparse=no fi fi @@ -847,8 +939,7 @@ fi sdl_too_old=no -if test "$sdl" = "yes" ; then - sdl=no +if test "$sdl" != "no" ; then cat > $TMPC << EOF #include #undef main /* We don't want SDL to override our main() */ @@ -879,6 +970,11 @@ EOF sdl=no fi fi # static link + else # sdl not found + if test "$sdl" = "yes" ; then + feature_not_found "sdl" + fi + sdl=no fi # sdl compile test fi @@ -903,36 +999,44 @@ fi ########################################## # VNC TLS detection -if test "$vnc_tls" = "yes" ; then -cat > $TMPC < $TMPC < int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; } EOF - vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null` - vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null` - if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then - libs_softmmu="$vnc_tls_libs $libs_softmmu" - else - vnc_tls="no" + vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null` + vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null` + if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then + vnc_tls=yes + libs_softmmu="$vnc_tls_libs $libs_softmmu" + else + if test "$vnc_tls" = "yes" ; then + feature_not_found "vnc-tls" fi + vnc_tls=no + fi fi ########################################## # VNC SASL detection -if test "$vnc_sasl" = "yes" ; then -cat > $TMPC < $TMPC < #include int main(void) { sasl_server_init(NULL, "qemu"); return 0; } EOF - # Assuming Cyrus-SASL installed in /usr prefix - vnc_sasl_cflags="" - vnc_sasl_libs="-lsasl2" - if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then - libs_softmmu="$vnc_sasl_libs $libs_softmmu" - else - vnc_sasl="no" + # Assuming Cyrus-SASL installed in /usr prefix + vnc_sasl_cflags="" + vnc_sasl_libs="-lsasl2" + if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then + vnc_sasl=yes + libs_softmmu="$vnc_sasl_libs $libs_softmmu" + else + if test "$vnc_sasl" = "yes" ; then + feature_not_found "vnc-sasl" fi + vnc_sasl=no + fi fi ########################################## @@ -950,10 +1054,34 @@ if compile_prog "" "" ; then fnmatch="yes" fi +########################################## +# uuid_generate() probe, used for vdi block driver +if test "$uuid" != "no" ; then + uuid_libs="-luuid" + cat > $TMPC << EOF +#include +int main(void) +{ + uuid_t my_uuid; + uuid_generate(my_uuid); + return 0; +} +EOF + if compile_prog "" "$uuid_libs" ; then + uuid="yes" + libs_softmmu="$uuid_libs $libs_softmmu" + libs_tools="$uuid_libs $libs_tools" + else + if test "$uuid" = "yes" ; then + feature_not_found "uuid" + fi + uuid=no + fi +fi + ########################################## # vde libraries probe -if test "$vde" = "yes" ; then - vde=no +if test "$vde" != "no" ; then vde_libs="-lvdeplug" cat > $TMPC << EOF #include @@ -968,6 +1096,11 @@ EOF vde=yes libs_softmmu="$vde_libs $libs_softmmu" libs_tools="$vde_libs $libs_tools" + else + if test "$vde" = "yes" ; then + feature_not_found "vde" + fi + vde=no fi fi @@ -1082,8 +1215,8 @@ fi # curses probe curses_list="-lncurses -lcurses" -if test "$curses" = "yes" ; then - curses=no +if test "$curses" != "no" ; then + curses_found=no cat > $TMPC << EOF #include #ifdef __OpenBSD__ @@ -1093,18 +1226,25 @@ int main(void) { resize_term(0, 0); return curses_version(); } EOF for curses_lib in $curses_list; do if compile_prog "" "$curses_lib" ; then - curses=yes + curses_found=yes libs_softmmu="$curses_lib $libs_softmmu" break fi done + if test "$curses_found" = "yes" ; then + curses=yes + else + if test "$curses" = "yes" ; then + feature_not_found "curses" + fi + curses=no + fi fi ########################################## # curl probe -if test "$curl" = "yes" ; then - curl=no +if test "$curl" != "no" ; then cat > $TMPC << EOF #include int main(void) { return curl_easy_init(); } @@ -1115,15 +1255,37 @@ EOF curl=yes libs_tools="$curl_libs $libs_tools" libs_softmmu="$curl_libs $libs_softmmu" + else + if test "$curl" = "yes" ; then + feature_not_found "curl" + fi + curl=no fi fi # test "$curl" +########################################## +# check framework probe + +if test "$check_utests" != "no" ; then + cat > $TMPC << EOF +#include +int main(void) { suite_create("qemu test"); return 0; } +EOF + check_libs=`pkg-config --libs check` + if compile_prog "" $check_libs ; then + check_utests=yes + libs_tools="$check_libs $libs_tools" + else + if test "$check_utests" = "yes" ; then + feature_not_found "check" + fi + check_utests=no + fi +fi # test "$check_utests" + ########################################## # bluez support probe -if test "$bluez" = "yes" ; then - `pkg-config bluez 2> /dev/null` || bluez="no" -fi -if test "$bluez" = "yes" ; then +if test "$bluez" != "no" ; then cat > $TMPC << EOF #include int main(void) { return bt_error(0); } @@ -1131,15 +1293,19 @@ EOF bluez_cflags=`pkg-config --cflags bluez 2> /dev/null` bluez_libs=`pkg-config --libs bluez 2> /dev/null` if compile_prog "$bluez_cflags" "$bluez_libs" ; then + bluez=yes libs_softmmu="$bluez_libs $libs_softmmu" else + if test "$bluez" = "yes" ; then + feature_not_found "bluez" + fi bluez="no" fi fi ########################################## # kvm probe -if test "$kvm" = "yes" ; then +if test "$kvm" != "no" ; then cat > $TMPC < #if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12 @@ -1170,20 +1336,23 @@ EOF kvm_cflags="" fi if compile_prog "$kvm_cflags" "" ; then - : + kvm=yes else - kvm="no"; - if [ -x "`which awk 2>/dev/null`" ] && \ - [ -x "`which grep 2>/dev/null`" ]; then - kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \ + if test "$kvm" = "yes" ; then + if [ -x "`which awk 2>/dev/null`" ] && \ + [ -x "`which grep 2>/dev/null`" ]; then + kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \ | grep "error: " \ | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'` - if test "$kvmerr" != "" ; then - kvm="no - (${kvmerr})\n\ - NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \ -recent kvm-kmod from http://sourceforge.net/projects/kvm." + if test "$kvmerr" != "" ; then + echo -e "${kvmerr}\n\ + NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \ + recent kvm-kmod from http://sourceforge.net/projects/kvm." + fi fi + feature_not_found "kvm" fi + kvm=no fi fi @@ -1204,7 +1373,7 @@ for pthread_lib in $PTHREADLIBS_LIST; do fi done -if test "$pthread" = no; then +if test "$mingw32" != yes -a "$pthread" = no; then echo echo "Error: pthread check failed" echo "Make sure to have the pthread libs and headers installed." @@ -1212,6 +1381,27 @@ if test "$pthread" = no; then exit 1 fi +########################################## +# linux-aio probe +AIOLIBS="" + +if test "$linux_aio" != "no" ; then + cat > $TMPC < +#include +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 + LIBS="$LIBS -laio" + else + if test "$linux_aio" = "yes" ; then + feature_not_found "linux AIO" + fi + linux_aio=no + fi +fi + ########################################## # iovec probe cat > $TMPC < $TMPC << EOF int main(void) { return 0; } @@ -1249,6 +1438,11 @@ EOF if compile_prog "" "$fdt_libs" ; then fdt=yes libs_softmmu="$fdt_libs $libs_softmmu" + else + if test "$fdt" = "yes" ; then + feature_not_found "fdt" + fi + fdt=no fi fi @@ -1352,9 +1546,32 @@ if compile_prog "" "" ; then splice=yes fi +# check if eventfd is supported +eventfd=no +cat > $TMPC << EOF +#include + +int main(void) +{ + int efd = eventfd(0, 0); + return 0; +} +EOF +if compile_prog "" "" ; then + eventfd=yes +fi + # Check if tools are available to build documentation. -if test "$build_docs" = "yes" -a \( ! -x "`which texi2html 2>/dev/null`" -o ! -x "`which pod2man 2>/dev/null`" \) ; then - build_docs="no" +if test "$docs" != "no" ; then + if test -x "`which texi2html 2>/dev/null`" -a \ + -x "`which pod2man 2>/dev/null`" ; then + docs=yes + else + if test "$docs" = "yes" ; then + feature_not_found "docs" + fi + docs=no + fi fi # Search for bsawp_32 function @@ -1412,7 +1629,7 @@ if check_linker_flags --whole-archive --no-whole-archive ; then arlibs_end="-Wl,--no-whole-archive" elif check_linker_flags -z,allextract -z,defaultextract ; then # Solaris ld - arlibs_begin"=-Wl,-z,allextract" + arlibs_begin="-Wl,-z,allextract" arlibs_end="-Wl,-z,defaultextract" elif check_linker_flags -all_load ; then # Mac OS X @@ -1424,11 +1641,35 @@ else exit 1 fi -if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaries" != yes -a \ +if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \ "$aix" != "yes" ; then libs_softmmu="-lutil $libs_softmmu" fi +########################################## +# check if the compiler defines offsetof + +need_offsetof=yes +cat > $TMPC << EOF +#include +int main(void) { struct s { int f; }; return offsetof(struct s, f); } +EOF +if compile_prog "" "" ; then + need_offsetof=no +fi + +########################################## +# check if we have fdatasync + +fdatasync=no +cat > $TMPC << EOF +#include +int main(void) { return fdatasync(0); } +EOF +if compile_prog "" "" ; then + fdatasync=yes +fi + # End of CC checks # After here, no more $cc or $ld runs @@ -1445,6 +1686,16 @@ QEMU_CFLAGS="-U_FORTIFY_SOURCE $QEMU_CFLAGS" QEMU_CFLAGS="-I. -I\$(SRC_PATH) -MMD -MP -MT \$@ $QEMU_CFLAGS" LDFLAGS="-g $LDFLAGS" +gcc_flags="-Wold-style-declaration -Wold-style-definition" +cat > $TMPC << EOF +int main(void) { } +EOF +for flag in $gcc_flags; do + if compile_prog "$QEMU_CFLAGS" "$flag" ; then + QEMU_CFLAGS="$flag $QEMU_CFLAGS" + fi +done + # Consult white-list to determine whether to enable werror # by default. Only enable by default for git builds if test -z "$werror" ; then @@ -1516,6 +1767,7 @@ fi echo "SDL support $sdl" echo "curses support $curses" echo "curl support $curl" +echo "check support $check_utests" echo "mingw32 support $mingw32" echo "Audio drivers $audio_drv_list" echo "Extra audio cards $audio_card_list" @@ -1527,17 +1779,22 @@ if test -n "$sparc_cpu"; then fi echo "xen support $xen" echo "brlapi support $brlapi" -echo "Documentation $build_docs" +echo "bluez support $bluez" +echo "Documentation $docs" [ ! -z "$uname_release" ] && \ echo "uname -r $uname_release" echo "NPTL support $nptl" echo "GUEST_BASE $guest_base" +echo "PIE user targets $user_pie" echo "vde support $vde" echo "IO thread $io_thread" +echo "Linux AIO support $linux_aio" echo "Install blobs $blobs" -echo -e "KVM support $kvm" +echo "KVM support $kvm" echo "fdt support $fdt" echo "preadv support $preadv" +echo "fdatasync $fdatasync" +echo "uuid support $uuid" if test $sdl_too_old = "yes"; then echo "-> Your SDL version is too old - please upgrade to have SDL support" @@ -1614,7 +1871,7 @@ if test $profiler = "yes" ; then fi if test "$slirp" = "yes" ; then echo "CONFIG_SLIRP=y" >> $config_host_mak - CFLAGS="-I\$(SRC_PATH)/slirp $CFLAGS" + QEMU_CFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CFLAGS" fi if test "$vde" = "yes" ; then echo "CONFIG_VDE=y" >> $config_host_mak @@ -1648,6 +1905,9 @@ fi if test "$fnmatch" = "yes" ; then echo "CONFIG_FNMATCH=y" >> $config_host_mak fi +if test "$uuid" = "yes" ; then + echo "CONFIG_UUID=y" >> $config_host_mak +fi qemu_version=`head $source_path/VERSION` echo "VERSION=$qemu_version" >>$config_host_mak echo "PKGVERSION=$pkgversion" >>$config_host_mak @@ -1656,7 +1916,7 @@ if [ "$source_path_used" = "yes" ]; then echo "VPATH=$source_path" >> $config_host_mak fi echo "TARGET_DIRS=$target_list" >> $config_host_mak -if [ "$build_docs" = "yes" ] ; then +if [ "$docs" = "yes" ] ; then echo "BUILD_DOCS=yes" >> $config_host_mak fi if test "$sdl" = "yes" ; then @@ -1681,6 +1941,9 @@ fi if test "$splice" = "yes" ; then echo "CONFIG_SPLICE=y" >> $config_host_mak fi +if test "$eventfd" = "yes" ; then + echo "CONFIG_EVENTFD=y" >> $config_host_mak +fi if test "$inotify" = "yes" ; then echo "CONFIG_INOTIFY=y" >> $config_host_mak fi @@ -1707,6 +1970,9 @@ fi if test "$io_thread" = "yes" ; then echo "CONFIG_IOTHREAD=y" >> $config_host_mak fi +if test "$linux_aio" = "yes" ; then + echo "CONFIG_LINUX_AIO=y" >> $config_host_mak +fi if test "$blobs" = "yes" ; then echo "INSTALL_BLOBS=yes" >> $config_host_mak fi @@ -1719,6 +1985,12 @@ fi if test "$fdt" = "yes" ; then echo "CONFIG_FDT=y" >> $config_host_mak fi +if test "$need_offsetof" = "yes" ; then + echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak +fi +if test "$fdatasync" = "yes" ; then + echo "CONFIG_FDATASYNC=y" >> $config_host_mak +fi # XXX: suppress that if [ "$bsd" = "yes" ] ; then @@ -1745,6 +2017,11 @@ if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then tools="qemu-img\$(EXESUF) $tools" if [ "$linux" = "yes" ] ; then tools="qemu-nbd\$(EXESUF) qemu-io\$(EXESUF) $tools" + if [ "$check_utests" = "yes" ]; then + tools="check-qint check-qstring check-qdict $tools" + fi + elif test "$mingw32" = "yes" ; then + tools="qemu-io\$(EXESUF) $tools" fi fi echo "TOOLS=$tools" >> $config_host_mak @@ -1752,7 +2029,8 @@ echo "TOOLS=$tools" >> $config_host_mak # Mac OS X ships with a broken assembler roms= if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \ - "$targetos" != "Darwin" ; then + "$targetos" != "Darwin" -a \ + `expr "$target_list" : ".*softmmu.*"` != 0 ; then roms="optionrom" fi echo "ROMS=$roms" >> $config_host_mak @@ -1856,6 +2134,7 @@ test -f $config_h && mv $config_h ${config_h}~ mkdir -p $target_dir mkdir -p $target_dir/fpu mkdir -p $target_dir/tcg +mkdir -p $target_dir/ide if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then mkdir -p $target_dir/nwfpe fi @@ -2019,15 +2298,15 @@ case "$target_arch2" in echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak fi esac -echo "HWLIB=../libhw$target_phys_bits/libqemuhw$target_phys_bits.a" >> $config_mak echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_mak -echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak if test "$target_bigendian" = "yes" ; then echo "TARGET_WORDS_BIGENDIAN=y" >> $config_mak fi if test "$target_softmmu" = "yes" ; then echo "CONFIG_SOFTMMU=y" >> $config_mak echo "LIBS+=$libs_softmmu" >> $config_mak + echo "HWLIB=../libhw$target_phys_bits/libqemuhw$target_phys_bits.a" >> $config_mak + echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak fi if test "$target_user_only" = "yes" ; then echo "CONFIG_USER_ONLY=y" >> $config_mak @@ -2148,6 +2427,12 @@ if test "$target_softmmu" = "yes" ; then esac fi +if test "$target_user_only" = "yes" -a "$static" = "no" -a \ + "$user_pie" = "yes" ; then + cflags="-fpie $cflags" + ldflags="-pie $ldflags" +fi + if test "$target_softmmu" = "yes" -a \( \ "$TARGET_ARCH" = "microblaze" -o \ "$TARGET_ARCH" = "cris" \) ; then @@ -2169,16 +2454,6 @@ fi linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld" if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then case "$ARCH" in - i386) - if test "$gprof" = "yes" -o "$static" = "yes" ; then - ldflags="$linker_script $ldflags" - else - # WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object - # that the kernel ELF loader considers as an executable. I think this - # is the simplest way to make it self virtualizable! - ldflags="-Wl,-shared $ldflags" - fi - ;; sparc) # -static is used to avoid g1/g3 usage by the dynamic linker ldflags="$linker_script -static $ldflags" @@ -2186,7 +2461,7 @@ if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then ia64) ldflags="-Wl,-G0 $linker_script -static $ldflags" ;; - x86_64|ppc|ppc64|s390|sparc64|alpha|arm|m68k|mips|mips64) + i386|x86_64|ppc|ppc64|s390|sparc64|alpha|arm|m68k|mips|mips64) ldflags="$linker_script $ldflags" ;; esac @@ -2220,10 +2495,12 @@ done # for target in $targets # build tree in object directory if source path is different from current one if test "$source_path_used" = "yes" ; then DIRS="tests tests/cris slirp audio block pc-bios/optionrom" + DIRS="$DIRS roms/pcbios roms/seabios roms/vgabios" FILES="Makefile tests/Makefile" FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" FILES="$FILES tests/test-mmap.c" FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps pc-bios/video.x" + FILES="$FILES roms/pcbios/Makefile roms/seabios/Makefile roms/vgabios/Makefile" for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do FILES="$FILES pc-bios/`basename $bios_file`" done @@ -2237,6 +2514,20 @@ if test "$source_path_used" = "yes" ; then done fi +# temporary config to build submodules +for rom in seabios vgabios pcbios; do + config_mak=roms/$rom/config.mak + echo "# Automatically generated by configure - do not modify" >> $config_mak + echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak + echo "CC=$cc" >> $config_mak + echo "BCC=bcc" >> $config_mak + echo "CPP=${cross_prefix}cpp" >> $config_mak + echo "OBJCOPY=objcopy" >> $config_mak + echo "IASL=iasl" >> $config_mak + echo "HOST_CC=$host_cc" >> $config_mak + echo "LD=$ld" >> $config_mak +done + for hwlib in 32 64; do d=libhw$hwlib mkdir -p $d @@ -2245,3 +2536,8 @@ for hwlib in 32 64; do echo "HWLIB=libqemuhw$hwlib.a" > $d/config.mak echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" >> $d/config.mak done + +d=libuser +mkdir -p $d +rm -f $d/Makefile +ln -s $source_path/Makefile.user $d/Makefile