X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=configure;h=c4fffd998c93ea23a5d957c58f1f959a442d88f6;hp=97bc35e9ca7039bd7d81822709bee9145c7910f0;hb=63ed82548f4489b4c6d5df688f7405b9eb20ddc9;hpb=0290c589836641ad7bb39a97e45dfcf3d8603f23 diff --git a/configure b/configure index 97bc35e9..c4fffd99 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 @@ -201,6 +202,8 @@ for opt do ;; --disable-native) disable_native="yes" ;; + --with-ime=*) ime_path="$optarg" + ;; --help) show_help="yes" ;; @@ -223,6 +226,9 @@ if test "$show_help" = "yes" ; then echo "--enable-gfio Enable building of gtk gfio" echo "--disable-numa Disable libnuma even if found" echo "--disable-rdma Disable RDMA support even if found" + echo "--disable-rados Disable Rados support even if found" + echo "--disable-rbd Disable Rados Block Device even if found" + echo "--disable-http Disable HTTP support even if found" echo "--disable-gfapi Disable gfapi" echo "--enable-libhdfs Enable hdfs support" echo "--disable-lex Disable use of lex/yacc for math" @@ -232,6 +238,7 @@ if test "$show_help" = "yes" ; then echo "--disable-optimizations Don't enable compiler optimizations" echo "--enable-cuda Enable GPUDirect RDMA support" echo "--disable-native Don't build for native host" + echo "--with-ime= Install path for DDN's Infinite Memory Engine" exit $exit_val fi @@ -354,6 +361,7 @@ CYGWIN*) output_sym "CONFIG_WINDOWSAIO" # We now take the regular configuration path without having exit 0 here. # Flags below are still necessary mostly for MinGW. + build_static="yes" socklen_t="yes" rusage_thread="yes" fdatasync="yes" @@ -1141,28 +1149,6 @@ if compile_prog "" "" "guasi"; then fi print_config "GUASI" "$guasi" -########################################## -# fusion-aw probe -if test "$fusion_aw" != "yes" ; then - fusion_aw="no" -fi -cat > $TMPC << EOF -#include -int main(int argc, char **argv) -{ - nvm_version_t ver_info; - nvm_handle_t handle; - - handle = nvm_get_handle(0, &ver_info); - return nvm_atomic_write(handle, 0, 0, 0); -} -EOF -if compile_prog "" "-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -ldl -lpthread" "fusion-aw"; then - LIBS="-L/usr/lib/fio -L/usr/lib/nvm -lnvm-primitives -ldl -lpthread $LIBS" - fusion_aw="yes" -fi -print_config "Fusion-io atomic engine" "$fusion_aw" - ########################################## # libnuma probe if test "$libnuma" != "yes" ; then @@ -1573,11 +1559,52 @@ print_config "IPv6 helpers" "$ipv6" if test "$http" != "yes" ; then http="no" fi -if test "$disable_http" != "yes" && $(pkg-config --exists libcurl openssl); then - # http engine currently requires opaque HMAC_CTX present in openssl >= 1.1 - if $(pkg-config --atleast-version=1.1.0 openssl); then - LIBS="$(pkg-config --libs libcurl openssl) $LIBS" +# 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" @@ -1920,6 +1947,29 @@ print_config "PMDK dev-dax engine" "$devdax" # Report whether libpmem engine is enabled print_config "PMDK libpmem engine" "$pmem" +########################################## +# Check whether we support DDN's IME +if test "$libime" != "yes" ; then + libime="no" +fi +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + int rc; + ime_native_init(); + rc = ime_native_finalize(); + return 0; +} +EOF +if compile_prog "-I${ime_path}/include" "-L${ime_path}/lib -lim_client" "libime"; then + libime="yes" + CFLAGS="-I${ime_path}/include $CFLAGS" + LDFLAGS="-Wl,-rpath ${ime_path}/lib -L${ime_path}/lib $LDFLAGS" + LIBS="-lim_client $LIBS" +fi +print_config "DDN's Infinite Memory Engine" "$libime" + ########################################## # Check if we have lex/yacc available yacc="no" @@ -2127,6 +2177,24 @@ if compile_prog "" "" "valgrind_dev"; then fi print_config "Valgrind headers" "$valgrind_dev" +########################################## +# probe +if test "$linux_blkzoned" != "yes" ; then + linux_blkzoned="no" +fi +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + return 0; +} +EOF +if compile_prog "" "" "linux_blkzoned"; then + linux_blkzoned="yes" +fi +print_config "Zoned block device support" "$linux_blkzoned" + +########################################## # check march=armv8-a+crc+crypto if test "$march_armv8_a_crc_crypto" != "yes" ; then march_armv8_a_crc_crypto="no" @@ -2204,6 +2272,46 @@ if test "$disable_native" = "no" && test "$disable_opt" != "yes" && \ fi print_config "Build march=native" "$build_native" +########################################## +# check for -lcunit +if test "$cunit" != "yes" ; then + cunit="no" +fi +cat > $TMPC << EOF +#include +#include +int main(void) +{ + if (CU_initialize_registry() != CUE_SUCCESS) + return CU_get_error(); + CU_basic_set_mode(CU_BRM_VERBOSE); + CU_basic_run_tests(); + CU_cleanup_registry(); + return CU_get_error(); +} +EOF +if compile_prog "" "-lcunit" "CUnit"; then + cunit="yes" +fi +print_config "CUnit" "$cunit" + +########################################## +# check for __kernel_rwf_t +__kernel_rwf_t="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + __kernel_rwf_t x; + x = 0; + return x; +} +EOF +if compile_prog "" "" "__kernel_rwf_t"; then + __kernel_rwf_t="yes" +fi +print_config "__kernel_rwf_t" "$__kernel_rwf_t" + ############################################################################# if test "$wordsize" = "64" ; then @@ -2316,9 +2424,6 @@ fi if test "$guasi" = "yes" ; then output_sym "CONFIG_GUASI" fi -if test "$fusion_aw" = "yes" ; then - output_sym "CONFIG_FUSION_AW" -fi if test "$libnuma_v2" = "yes" ; then output_sym "CONFIG_LIBNUMA" fi @@ -2413,6 +2518,9 @@ fi if test "$pmem" = "yes" ; then output_sym "CONFIG_LIBPMEM" fi +if test "$libime" = "yes" ; then + output_sym "CONFIG_IME" +fi if test "$arith" = "yes" ; then output_sym "CONFIG_ARITHMETIC" if test "$yacc_is_bison" = "yes" ; then @@ -2448,6 +2556,9 @@ fi if test "$valgrind_dev" = "yes"; then output_sym "CONFIG_VALGRIND_DEV" fi +if test "$linux_blkzoned" = "yes" ; then + output_sym "CONFIG_LINUX_BLKZONED" +fi if test "$zlib" = "no" ; then echo "Consider installing zlib-dev (zlib-devel, some fio features depend on it." if test "$build_static" = "yes"; then @@ -2466,6 +2577,12 @@ fi if test "$march_set" = "no" && test "$build_native" = "yes" ; then output_sym "CONFIG_BUILD_NATIVE" fi +if test "$cunit" = "yes" ; then + output_sym "CONFIG_HAVE_CUNIT" +fi +if test "$__kernel_rwf_t" = "yes"; then + output_sym "CONFIG_HAVE_KERNEL_RWF_T" +fi echo "LIBS+=$LIBS" >> $config_host_mak echo "GFIO_LIBS+=$GFIO_LIBS" >> $config_host_mak