X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=configure;h=a03f7fa004a1c8c006e724538ae77ca54aa43cad;hp=f6358630562229029bb409ee98fbe94df939f7d1;hb=d3913f88471a4634179c86bd684bbbf2893f5d5a;hpb=44e8e956254815d90472076951b81bc933f83fd5 diff --git a/configure b/configure index f6358630..a03f7fa0 100755 --- a/configure +++ b/configure @@ -14,12 +14,13 @@ else fi TMPC="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.c" +TMPC2="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}-2.c" TMPO="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.o" TMPE="${TMPDIR1}/fio-conf-${RANDOM}-$$-${RANDOM}.exe" # NB: do not call "exit" in the trap handler; this is buggy with some shells; # see <1285349658-3122-1-git-send-email-loic.minier@linaro.org> -trap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM +trap "rm -f $TMPC $TMPC2 $TMPO $TMPE" EXIT INT QUIT TERM rm -rf config.log @@ -167,6 +168,8 @@ for opt do ;; --build-32bit-win) build_32bit_win="yes" ;; + --target-win-ver=*) target_win_ver="$optarg" + ;; --build-static) build_static="yes" ;; --enable-gfio) gfio_check="yes" @@ -179,6 +182,8 @@ for opt do ;; --disable-rbd) disable_rbd="yes" ;; + --disable-http) disable_http="yes" + ;; --disable-gfapi) disable_gfapi="yes" ;; --enable-libhdfs) libhdfs="yes" @@ -213,6 +218,7 @@ if test "$show_help" = "yes" ; then echo "--cc= Specify compiler to use" echo "--extra-cflags= Specify extra CFLAGS to pass to compiler" echo "--build-32bit-win Enable 32-bit build on Windows" + echo "--target-win-ver= Minimum version of Windows to target (XP or 7)" echo "--build-static Build a static fio" echo "--esx Configure build options for esx" echo "--enable-gfio Enable building of gtk gfio" @@ -329,20 +335,27 @@ CYGWIN*) cc="x86_64-w64-mingw32-gcc" fi fi - if test ! -z "$build_32bit_win" && test "$build_32bit_win" = "yes"; then - output_sym "CONFIG_32BIT" + + target_win_ver=$(echo "$target_win_ver" | tr '[:lower:]' '[:upper:]') + if test -z "$target_win_ver"; then + # Default Windows API target + target_win_ver="7" + fi + if test "$target_win_ver" = "XP"; then + output_sym "CONFIG_WINDOWS_XP" + elif test "$target_win_ver" = "7"; then + output_sym "CONFIG_WINDOWS_7" + CFLAGS="$CFLAGS -D_WIN32_WINNT=0x0601" else - output_sym "CONFIG_64BIT_LLP64" + fatal "Unknown target Windows version" fi + # We need this to be output_sym'd here because this is Windows specific. # The regular configure path never sets this config. output_sym "CONFIG_WINDOWSAIO" # We now take the regular configuration path without having exit 0 here. # Flags below are still necessary mostly for MinGW. socklen_t="yes" - sfaa="yes" - sync_sync="yes" - cmp_swap="yes" rusage_thread="yes" fdatasync="yes" clock_gettime="yes" # clock_monotonic probe has dependency on this @@ -350,11 +363,7 @@ CYGWIN*) gettimeofday="yes" sched_idle="yes" tcp_nodelay="yes" - tls_thread="yes" - static_assert="yes" ipv6="yes" - mkdir_two="no" - echo "BUILD_CFLAGS=$CFLAGS -include config-host.h -D_GNU_SOURCE" >> $config_host_mak ;; esac @@ -498,6 +507,9 @@ fi print_config "Operating system" "$targetos" print_config "CPU" "$cpu" print_config "Big endian" "$bigendian" +if test ! -z "$target_win_ver"; then + print_config "Target Windows version" "$target_win_ver" +fi print_config "Compiler" "$cc" print_config "Cross compile" "$cross_compile" echo @@ -600,7 +612,7 @@ int main(void) EOF if compile_prog "" "" "posixaio" ; then posix_aio="yes" -elif compile_prog "" "-lrt" "posixaio"; then +elif compile_prog "" "-lrt" "posixaio -lrt"; then posix_aio="yes" posix_aio_lrt="yes" LIBS="-lrt $LIBS" @@ -1557,6 +1569,61 @@ if compile_prog "" "" "ipv6"; then fi print_config "IPv6 helpers" "$ipv6" +########################################## +# check for http +if test "$http" != "yes" ; then + http="no" +fi +# check for openssl >= 1.1.0, which uses an opaque HMAC_CTX pointer +cat > $TMPC << EOF +#include +#include + +int main(int argc, char **argv) +{ + CURL *curl; + HMAC_CTX *ctx; + + curl = curl_easy_init(); + curl_easy_cleanup(curl); + + ctx = HMAC_CTX_new(); + HMAC_CTX_reset(ctx); + HMAC_CTX_free(ctx); + return 0; +} +EOF +# openssl < 1.1.0 uses the HMAC_CTX type directly +cat > $TMPC2 << EOF +#include +#include + +int main(int argc, char **argv) +{ + CURL *curl; + HMAC_CTX ctx; + + curl = curl_easy_init(); + curl_easy_cleanup(curl); + + HMAC_CTX_init(&ctx); + HMAC_CTX_cleanup(&ctx); + return 0; +} +EOF +if test "$disable_http" != "yes"; then + HTTP_LIBS="-lcurl -lssl -lcrypto" + if compile_prog "" "$HTTP_LIBS" "curl-new-ssl"; then + output_sym "CONFIG_HAVE_OPAQUE_HMAC_CTX" + http="yes" + LIBS="$HTTP_LIBS $LIBS" + elif mv $TMPC2 $TMPC && compile_prog "" "$HTTP_LIBS" "curl-old-ssl"; then + http="yes" + LIBS="$HTTP_LIBS $LIBS" + fi +fi +print_config "http engine" "$http" + ########################################## # check for rados if test "$rados" != "yes" ; then @@ -1885,15 +1952,15 @@ fi ########################################## # Report whether pmemblk engine is enabled -print_config "NVML pmemblk engine" "$pmemblk" +print_config "PMDK pmemblk engine" "$pmemblk" ########################################## # Report whether dev-dax engine is enabled -print_config "NVML dev-dax engine" "$devdax" +print_config "PMDK dev-dax engine" "$devdax" ########################################## # Report whether libpmem engine is enabled -print_config "NVML libpmem engine" "$pmem" +print_config "PMDK libpmem engine" "$pmem" ########################################## # Check if we have lex/yacc available @@ -2108,18 +2175,23 @@ if test "$march_armv8_a_crc_crypto" != "yes" ; then fi if test "$cpu" = "arm64" ; then cat > $TMPC < #include #include +#include int main(void) { - return 0; + /* Can we also do a runtime probe? */ +#if __linux__ + return getauxval(AT_HWCAP); +#else +# error "Don't know how to do runtime probe for ARM CRC32c" +#endif } EOF - if compile_prog "-march=armv8-a+crc+crypto" "" ""; then + if compile_prog "-march=armv8-a+crc+crypto" "" "ARM CRC32c"; then march_armv8_a_crc_crypto="yes" - CFLAGS="$CFLAGS -march=armv8-a+crc+crypto -DARCH_HAVE_CRC_CRYPTO" + CFLAGS="$CFLAGS -march=armv8-a+crc+crypto" march_set="yes" fi fi @@ -2204,10 +2276,10 @@ if test "$posix_pshared" = "yes" ; then output_sym "CONFIG_PSHARED" fi if test "$have_asprintf" = "yes" ; then - output_sym "HAVE_ASPRINTF" + output_sym "CONFIG_HAVE_ASPRINTF" fi if test "$have_vasprintf" = "yes" ; then - output_sym "HAVE_VASPRINTF" + output_sym "CONFIG_HAVE_VASPRINTF" fi if test "$linux_fallocate" = "yes" ; then output_sym "CONFIG_LINUX_FALLOCATE" @@ -2332,6 +2404,9 @@ fi if test "$ipv6" = "yes" ; then output_sym "CONFIG_IPV6" fi +if test "$http" = "yes" ; then + output_sym "CONFIG_HTTP" +fi if test "$rados" = "yes" ; then output_sym "CONFIG_RADOS" fi @@ -2421,6 +2496,9 @@ if test "$zlib" = "no" ; then echo "Note that some distros have separate packages for static libraries." fi fi +if test "$march_armv8_a_crc_crypto" = "yes" ; then + output_sym "ARCH_HAVE_CRC_CRYPTO" +fi if test "$cuda" = "yes" ; then output_sym "CONFIG_CUDA" fi