X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=configure;h=d0c2173fd2d0d06b97e5b4dcdc9e5b44a87b51df;hp=5f6bca3b4f1e172af47af6de10e5d3e243a418cf;hb=74ddd43820cb223513def1f7d856b32874d81d21;hpb=ecfd2bb08cc87bc9a1b3d612258f1fdfb4d09698 diff --git a/configure b/configure index 5f6bca3b..d0c2173f 100755 --- a/configure +++ b/configure @@ -136,7 +136,9 @@ exit_val=0 gfio_check="no" libhdfs="no" pmemblk="no" +devdax="no" disable_lex="" +disable_pmem="no" prefix=/usr/local # parse options @@ -166,12 +168,12 @@ for opt do ;; --disable-rbd) disable_rbd="yes" ;; + --disable-rbd-blkin) disable_rbd_blkin="yes" + ;; --disable-gfapi) disable_gfapi="yes" ;; --enable-libhdfs) libhdfs="yes" ;; - --enable-pmemblk) pmemblk="yes" - ;; --disable-lex) disable_lex="yes" ;; --enable-lex) disable_lex="no" @@ -180,6 +182,8 @@ for opt do ;; --disable-optimizations) disable_opt="yes" ;; + --disable-pmem) disable_pmem="yes" + ;; --help) show_help="yes" ;; @@ -202,8 +206,8 @@ if test "$show_help" = "yes" ; then echo "--disable-numa Disable libnuma even if found" echo "--disable-gfapi Disable gfapi" echo "--enable-libhdfs Enable hdfs support" - echo "--enable-pmemblk Enable NVML libpmemblk support" echo "--disable-lex Disable use of lex/yacc for math" + echo "--disable-pmem Disable pmem based engines even if found" echo "--enable-lex Enable use of lex/yacc for math" echo "--disable-shm Disable SHM support" echo "--disable-optimizations Don't enable compiler optimizations" @@ -277,8 +281,18 @@ CYGWIN*) if test -z "$CC" ; then if test ! -z "$build_32bit_win" && test "$build_32bit_win" = "yes"; then CC="i686-w64-mingw32-gcc" + if test -e "../zlib/contrib/vstudio/vc14/x86/ZlibStatReleaseWithoutAsm/zlibstat.lib"; then + echo "Building with zlib support" + output_sym "CONFIG_ZLIB" + echo "LIBS=../zlib/contrib/vstudio/vc14/x86/ZlibStatReleaseWithoutAsm/zlibstat.lib" >> $config_host_mak + fi else CC="x86_64-w64-mingw32-gcc" + if test -e "../zlib/contrib/vstudio/vc14/x64/ZlibStatReleaseWithoutAsm/zlibstat.lib"; then + echo "Building with zlib support" + output_sym "CONFIG_ZLIB" + echo "LIBS=../zlib/contrib/vstudio/vc14/x64/ZlibStatReleaseWithoutAsm/zlibstat.lib" >> $config_host_mak + fi fi fi output_sym "CONFIG_LITTLE_ENDIAN" @@ -302,7 +316,8 @@ CYGWIN*) output_sym "CONFIG_TLS_THREAD" output_sym "CONFIG_IPV6" echo "CC=$CC" >> $config_host_mak - echo "BUILD_CFLAGS=$CFLAGS -include config-host.h -D_GNU_SOURCE" >> $config_host_mak + echo "BUILD_CFLAGS=$CFLAGS -I../zlib -include config-host.h -D_GNU_SOURCE" >> $config_host_mak + exit 0 ;; esac @@ -338,6 +353,8 @@ elif check_define __s390__ ; then fi elif check_define __arm__ ; then cpu="arm" +elif check_define __aarch64__ ; then + cpu="aarch64" elif check_define __hppa__ ; then cpu="hppa" else @@ -358,6 +375,9 @@ case "$cpu" in armv*b|armv*l|arm) cpu="arm" ;; + aarch64) + cpu="arm64" + ;; hppa|parisc|parisc64) cpu="hppa" ;; @@ -791,6 +811,25 @@ EOF fi echo "CLOCK_MONOTONIC_PRECISE $clock_monotonic_precise" +########################################## +# clockid_t probe +clockid_t="no" +cat > $TMPC << EOF +#include +#include +#include +int main(int argc, char **argv) +{ + clockid_t cid; + memset(&cid, 0, sizeof(cid)); + return clock_gettime(cid, NULL); +} +EOF +if compile_prog "" "$LIBS" "clockid_t"; then + clockid_t="yes" +fi +echo "clockid_t $clockid_t" + ########################################## # gettimeofday() probe gettimeofday="no" @@ -1313,6 +1352,32 @@ if test "$disable_rbd" != "yes" && compile_prog "" "-lrbd -lrados" "rbd"; then fi echo "Rados Block Device engine $rbd" +########################################## +# check for rbd_poll +rbd_poll="no" +if test "$rbd" = "yes"; then +cat > $TMPC << EOF +#include +#include + +int main(int argc, char **argv) +{ + rbd_image_t image; + rbd_completion_t comp; + + int fd = eventfd(0, EFD_NONBLOCK); + rbd_set_image_notification(image, fd, EVENT_TYPE_EVENTFD); + rbd_poll_io_events(image, comp, 1); + + return 0; +} +EOF +if compile_prog "" "-lrbd -lrados" "rbd"; then + rbd_poll="yes" +fi +echo "rbd_poll $rbd_poll" +fi + ########################################## # check for rbd_invaidate_cache() rbd_inval="no" @@ -1333,6 +1398,34 @@ fi echo "rbd_invalidate_cache $rbd_inval" fi +########################################## +# check for blkin +rbd_blkin="no" +cat > $TMPC << EOF +#include +#include + +int main(int argc, char **argv) +{ + int r; + struct blkin_trace_info t_info; + blkin_init_trace_info(&t_info); + rbd_completion_t completion; + rbd_image_t image; + uint64_t off; + size_t len; + const char *buf; + r = rbd_aio_write_traced(image, off, len, buf, completion, &t_info); + return 0; +} +EOF +if test "$disable_rbd" != "yes" && test "$disable_rbd_blkin" != "yes" \ + && compile_prog "" "-lrbd -lrados -lblkin" "rbd_blkin"; then + LIBS="-lblkin $LIBS" + rbd_blkin="yes" +fi +echo "rbd blkin tracing $rbd_blkin" + ########################################## # Check whether we have setvbuf setvbuf="no" @@ -1459,6 +1552,10 @@ if test "$libhdfs" = "yes" ; then if test "$hdfs_conf_error" = "1" ; then exit 1 fi + FIO_HDFS_CPU=$cpu + if test "$FIO_HDFS_CPU" = "x86_64" ; then + FIO_HDFS_CPU="amd64" + fi fi echo "HDFS engine $libhdfs" @@ -1483,9 +1580,60 @@ if compile_prog "" "" "mtd"; then fi echo "MTD $mtd" +########################################## +# Check whether we have libpmem +libpmem="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + int rc; + rc = pmem_is_pmem(0, 0); + return 0; +} +EOF +if compile_prog "" "-lpmem" "libpmem"; then + libpmem="yes" + LIBS="-lpmem $LIBS" +fi +echo "libpmem $libpmem" + +########################################## +# Check whether we have libpmemblk +# libpmem is a prerequisite +libpmemblk="no" +if test "$libpmem" = "yes"; then + cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + PMEMblkpool *pbp; + pbp = pmemblk_open("", 0); + return 0; +} +EOF + if compile_prog "" "-lpmemblk" "libpmemblk"; then + libpmemblk="yes" + LIBS="-lpmemblk $LIBS" + fi +fi +echo "libpmemblk $libpmemblk" + +# Choose the ioengines +if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then + devdax="yes" + if test "$libpmemblk" = "yes"; then + pmemblk="yes" + fi +fi + ########################################## # Report whether pmemblk engine is enabled -echo "NVML libpmemblk engine $pmemblk" +echo "NVML pmemblk engine $pmemblk" + +########################################## +# Report whether dev-dax engine is enabled +echo "NVML dev-dax engine $devdax" # Check if we have lex/yacc available yacc="no" @@ -1568,6 +1716,11 @@ echo "getmntent $getmntent" ########################################## # Check whether we have getmntinfo +# These are originally added for BSDs, but may also work +# on other operating systems with getmntinfo(3). + +# getmntinfo(3) for FreeBSD/DragonFlyBSD/OpenBSD. +# Note that NetBSD needs -Werror to catch warning as error. getmntinfo="no" cat > $TMPC << EOF #include @@ -1575,15 +1728,32 @@ cat > $TMPC << EOF #include int main(int argc, char **argv) { - struct statfs st; + struct statfs *st; return getmntinfo(&st, MNT_NOWAIT); } EOF -if compile_prog "" "" "getmntinfo"; then +if compile_prog "-Werror" "" "getmntinfo"; then getmntinfo="yes" fi echo "getmntinfo $getmntinfo" +# getmntinfo(3) for NetBSD. +getmntinfo_statvfs="no" +cat > $TMPC << EOF +#include +#include +int main(int argc, char **argv) +{ + struct statvfs *st; + return getmntinfo(&st, MNT_NOWAIT); +} +EOF +# Skip the test if the one with statfs arg is detected. +if test "$getmntinfo" != "yes" && compile_prog "-Werror" "" "getmntinfo_statvfs"; then + getmntinfo_statvfs="yes" + echo "getmntinfo_statvfs $getmntinfo_statvfs" +fi + ########################################## # Check whether we have _Static_assert static_assert="no" @@ -1632,6 +1802,24 @@ if compile_prog "" "" "bool"; then fi echo "bool $have_bool" +########################################## +# check march=armv8-a+crc+crypto +march_armv8_a_crc_crypto="no" +if test "$cpu" = "arm64" ; then + cat > $TMPC <> $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 @@ -1806,6 +2004,9 @@ fi if test "$pmemblk" = "yes" ; then output_sym "CONFIG_PMEMBLK" fi +if test "$devdax" = "yes" ; then + output_sym "CONFIG_LINUX_DEVDAX" +fi if test "$arith" = "yes" ; then output_sym "CONFIG_ARITHMETIC" if test "$yacc_is_bison" = "yes" ; then @@ -1823,6 +2024,9 @@ fi if test "$getmntinfo" = "yes" ; then output_sym "CONFIG_GETMNTINFO" fi +if test "$getmntinfo_statvfs" = "yes" ; then + output_sym "CONFIG_GETMNTINFO_STATVFS" +fi if test "$static_assert" = "yes" ; then output_sym "CONFIG_STATIC_ASSERT" fi