disable_pmem="no"
disable_native="no"
march_set="no"
+libiscsi="no"
prefix=/usr/local
# parse options
;;
--with-ime=*) ime_path="$optarg"
;;
+ --enable-libiscsi) libiscsi="yes"
+ ;;
--help)
show_help="yes"
;;
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"
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"
exit $exit_val
fi
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.
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"
fi
print_config "GUASI" "$guasi"
-##########################################
-# fusion-aw probe
-if test "$fusion_aw" != "yes" ; then
- fusion_aw="no"
-fi
-cat > $TMPC << EOF
-#include <nvm/nvm_primitives.h>
-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
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 lex/yacc available
yacc="no"
fi
print_config "Valgrind headers" "$valgrind_dev"
+##########################################
+# <linux/blkzoned.h> probe
+if test "$linux_blkzoned" != "yes" ; then
+ linux_blkzoned="no"
+fi
+cat > $TMPC << EOF
+#include <linux/blkzoned.h>
+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"
fi
print_config "Build march=native" "$build_native"
+##########################################
+# check for -lcunit
+if test "$cunit" != "yes" ; then
+ cunit="no"
+fi
+cat > $TMPC << EOF
+#include <CUnit/CUnit.h>
+#include <CUnit/Basic.h>
+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 <linux/fs.h>
+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 <<EOF
+#include <sys/mman.h>
+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"
+
#############################################################################
if test "$wordsize" = "64" ; then
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
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
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
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 "$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
echo "LIBS+=$LIBS" >> $config_host_mak
echo "GFIO_LIBS+=$GFIO_LIBS" >> $config_host_mak