X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=configure;h=b11b2dce14d2d250c8c44ec39a8211e0aef61e5f;hp=a03f7fa004a1c8c006e724538ae77ca54aa43cad;hb=d643a1e29d31bf974a613866819dde241c928b6d;hpb=9ee669faa39003c2317e5df892314bcfcee069e3 diff --git a/configure b/configure index a03f7fa0..b11b2dce 100755 --- a/configure +++ b/configure @@ -148,6 +148,8 @@ disable_lex="" disable_pmem="no" disable_native="no" march_set="no" +libiscsi="no" +libnbd="no" prefix=/usr/local # parse options @@ -202,6 +204,14 @@ for opt do ;; --disable-native) disable_native="yes" ;; + --with-ime=*) ime_path="$optarg" + ;; + --enable-libiscsi) libiscsi="yes" + ;; + --enable-libnbd) libnbd="yes" + ;; + --disable-tcmalloc) disable_tcmalloc="yes" + ;; --help) show_help="yes" ;; @@ -224,6 +234,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" @@ -233,6 +246,10 @@ 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" + echo "--enable-libiscsi Enable iscsi support" + echo "--enable-libnbd Enable libnbd (NBD engine) support" + echo "--disable-tcmalloc Disable tcmalloc support" exit $exit_val fi @@ -297,6 +314,10 @@ AIX|OpenBSD|NetBSD) force_no_lex_o="yes" fi ;; +FreeBSD) + CFLAGS="$CFLAGS -I/usr/local/include" + LDFLAGS="$LDFLAGS -L/usr/local/lib" + ;; Darwin) # on Leopard most of the system is 32-bit, so we have to ask the kernel if # we can run 64-bit userspace code. @@ -355,6 +376,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" @@ -1142,28 +1164,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 @@ -1351,31 +1351,30 @@ int main(void) return GTK_CHECK_VERSION(2, 18, 0) ? 0 : 1; /* 0 on success */ } EOF -GTK_CFLAGS=$(pkg-config --cflags gtk+-2.0 gthread-2.0) +GTK_CFLAGS=$(${cross_prefix}pkg-config --cflags gtk+-2.0 gthread-2.0) ORG_LDFLAGS=$LDFLAGS LDFLAGS=$(echo $LDFLAGS | sed s/"-static"//g) if test "$?" != "0" ; then echo "configure: gtk and gthread not found" exit 1 fi -GTK_LIBS=$(pkg-config --libs gtk+-2.0 gthread-2.0) +GTK_LIBS=$(${cross_prefix}pkg-config --libs gtk+-2.0 gthread-2.0) if test "$?" != "0" ; then echo "configure: gtk and gthread not found" exit 1 fi -if compile_prog "$GTK_CFLAGS" "$GTK_LIBS" "gfio" ; then - $TMPE - if test "$?" = "0" ; then +if ! ${cross_prefix}pkg-config --atleast-version 2.18.0 gtk+-2.0; then + echo "GTK found, but need version 2.18 or higher" + gfio="no" +else + if compile_prog "$GTK_CFLAGS" "$GTK_LIBS" "gfio" ; then gfio="yes" GFIO_LIBS="$LIBS $GTK_LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" else - echo "GTK found, but need version 2.18 or higher" + echo "Please install gtk and gdk libraries" gfio="no" fi -else - echo "Please install gtk and gdk libraries" - gfio="no" fi LDFLAGS=$ORG_LDFLAGS fi @@ -1796,6 +1795,24 @@ fi print_config "Gluster API use fadvise" "$gf_fadvise" fi +########################################## +# check for newer gfapi +if test "$gfapi" = "yes" ; then +gf_new="no" +cat > $TMPC << EOF +#include + +int main(int argc, char **argv) +{ + return glfs_fsync(NULL, NULL, NULL) && glfs_ftruncate(NULL, 0, NULL, NULL); +} +EOF +if compile_prog "" "-lgfapi -lglusterfs" "gf new api"; then + gf_new="yes" +fi +print_config "Gluster new API" "$gf_new" +fi + ########################################## # check for gfapi trim support if test "$gf_trim" != "yes" ; then @@ -1962,6 +1979,62 @@ 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 required environment variables configured for libiscsi +if test "$libiscsi" = "yes" ; then + if $(pkg-config --atleast-version=1.9.0 libiscsi); then + libiscsi="yes" + libiscsi_cflags=$(pkg-config --cflags libiscsi) + libiscsi_libs=$(pkg-config --libs libiscsi) + else + if test "$libiscsi" = "yes" ; then + echo "libiscsi" "Install libiscsi >= 1.9.0" + fi + libiscsi="no" + fi +fi +print_config "iscsi engine" "$libiscsi" + +########################################## +# Check if we have libnbd (for NBD support). +minimum_libnbd=0.9.6 +if test "$libnbd" = "yes" ; then + if $(pkg-config --atleast-version=$minimum_libnbd libnbd); then + libnbd="yes" + libnbd_cflags=$(pkg-config --cflags libnbd) + libnbd_libs=$(pkg-config --libs libnbd) + else + if test "$libnbd" = "yes" ; then + echo "libnbd" "Install libnbd >= $minimum_libnbd" + fi + libnbd="no" + fi +fi +print_config "NBD engine" "$libnbd" + ########################################## # Check if we have lex/yacc available yacc="no" @@ -2169,6 +2242,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" @@ -2246,6 +2337,99 @@ 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" + +########################################## +# check if gcc has -Wimplicit-fallthrough +fallthrough="no" +cat > $TMPC << EOF +int main(int argc, char **argv) +{ + return 0; +} +EOF +if compile_prog "-Wimplicit-fallthrough" "" "-Wimplicit-fallthrough"; then + fallthrough="yes" +fi +print_config "-Wimplicit-fallthrough" "$fallthrough" + +########################################## +# check for MADV_HUGEPAGE support +if test "$thp" != "yes" ; then + thp="no" +fi +if test "$esx" != "yes" ; then + cat > $TMPC < +int main(void) +{ + return madvise(0, 0x1000, MADV_HUGEPAGE); +} +EOF + if compile_prog "" "" "thp" ; then + thp=yes + else + if test "$thp" = "yes" ; then + feature_not_found "Transparent Huge Page" "" + fi + thp=no + fi +fi +print_config "MADV_HUGEPAGE" "$thp" + +########################################## +# check for gettid() +gettid="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + return gettid(); +} +EOF +if compile_prog "" "" "gettid"; then + gettid="yes" +fi +print_config "gettid" "$gettid" + ############################################################################# if test "$wordsize" = "64" ; then @@ -2358,9 +2542,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 @@ -2436,13 +2617,16 @@ fi if test "$gf_trim" = "yes" ; then output_sym "CONFIG_GF_TRIM" fi +if test "$gf_new" = "yes" ; then + output_sym "CONFIG_GF_NEW_API" +fi if test "$libhdfs" = "yes" ; then output_sym "CONFIG_LIBHDFS" echo "FIO_HDFS_CPU=$FIO_HDFS_CPU" >> $config_host_mak echo "JAVA_HOME=$JAVA_HOME" >> $config_host_mak echo "FIO_LIBHDFS_INCLUDE=$FIO_LIBHDFS_INCLUDE" >> $config_host_mak echo "FIO_LIBHDFS_LIB=$FIO_LIBHDFS_LIB" >> $config_host_mak - fi +fi if test "$mtd" = "yes" ; then output_sym "CONFIG_MTD" fi @@ -2455,6 +2639,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 @@ -2490,6 +2677,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 @@ -2508,6 +2698,46 @@ 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 +if test "$gettid" = "yes"; then + output_sym "CONFIG_HAVE_GETTID" +fi +if test "$fallthrough" = "yes"; then + CFLAGS="$CFLAGS -Wimplicit-fallthrough" +fi +if test "$thp" = "yes" ; then + output_sym "CONFIG_HAVE_THP" +fi +if test "$libiscsi" = "yes" ; then + output_sym "CONFIG_LIBISCSI" + echo "CONFIG_LIBISCSI=m" >> $config_host_mak + echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak + echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak +fi +if test "$libnbd" = "yes" ; then + output_sym "CONFIG_LIBNBD" + echo "CONFIG_LIBNBD=m" >> $config_host_mak + echo "LIBNBD_CFLAGS=$libnbd_cflags" >> $config_host_mak + echo "LIBNBD_LIBS=$libnbd_libs" >> $config_host_mak +fi +cat > $TMPC << EOF +int main(int argc, char **argv) +{ + return 0; +} +EOF +if test "$disable_tcmalloc" != "yes" && compile_prog "" "-ltcmalloc" "tcmalloc"; then + LIBS="-ltcmalloc $LIBS" + tcmalloc="yes" +else + tcmalloc="no" +fi +print_config "TCMalloc support" "$tcmalloc" echo "LIBS+=$LIBS" >> $config_host_mak echo "GFIO_LIBS+=$GFIO_LIBS" >> $config_host_mak