X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=configure;h=fc1578221a7b69314983eea9f28f4fca499afc92;hb=d694a6a7c02f577b2bb5d0ad24331b775acf6869;hp=a24e3eff7fd4985ba66fe4a8a0aedcc6d3f14088;hpb=a214d131483c58ab9f1456edaafc1eb8caa8711c;p=fio.git diff --git a/configure b/configure index a24e3eff..fc157822 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 @@ -172,8 +174,6 @@ for opt do ;; --enable-libhdfs) libhdfs="yes" ;; - --enable-pmemblk) pmemblk="yes" - ;; --disable-lex) disable_lex="yes" ;; --enable-lex) disable_lex="no" @@ -182,6 +182,8 @@ for opt do ;; --disable-optimizations) disable_opt="yes" ;; + --disable-pmem) disable_pmem="yes" + ;; --help) show_help="yes" ;; @@ -204,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" @@ -1334,6 +1336,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" @@ -1536,10 +1564,55 @@ 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" +fi +echo "libpmem $libpmem" + +########################################## +# Check whether we have libpmemblk +libpmemblk="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + int rc; + rc = pmemblk_open("", 0); + return 0; +} +EOF +if compile_prog "" "-lpmemblk -lpmem" "libpmemblk"; then + libpmemblk="yes" +fi +echo "libpmemblk $libpmemblk" + +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" +########################################## +# Report whether dev-dax engine is enabled +echo "NVML Device Dax engine $devdax" + # Check if we have lex/yacc available yacc="no" yacc_is_bison="no" @@ -1621,6 +1694,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 @@ -1628,15 +1706,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" @@ -1831,6 +1926,9 @@ fi if test "$rbd" = "yes" ; then output_sym "CONFIG_RBD" fi +if test "$rbd_poll" = "yes" ; then + output_sym "CONFIG_RBD_POLL" +fi if test "$rbd_inval" = "yes" ; then output_sym "CONFIG_RBD_INVAL" fi @@ -1866,6 +1964,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 @@ -1883,6 +1984,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