X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=configure;h=e8e695313e24c11d1f6d92db4a60681a0854a9f3;hp=770678a27efb91293871cccdd3714573cda7cfba;hb=9ada751de9177687b19e3398d43fdb706ea14a09;hpb=0cba0f919ee6af7dd65df436884336cff9c903f9 diff --git a/configure b/configure index 770678a2..e8e69531 100755 --- a/configure +++ b/configure @@ -135,7 +135,8 @@ show_help="no" exit_val=0 gfio_check="no" libhdfs="no" -disable_lex="no" +pmemblk="no" +disable_lex="" prefix=/usr/local # parse options @@ -165,12 +166,18 @@ 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" + ;; --disable-shm) no_shm="yes" ;; --disable-optimizations) disable_opt="yes" @@ -197,7 +204,9 @@ 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 "--enable-lex Enable use of lex/yacc for math" echo "--disable-shm Disable SHM support" echo "--disable-optimizations Don't enable compiler optimizations" exit $exit_val @@ -240,6 +249,14 @@ fi # cross-compiling to one of these OSes then you'll need to specify # the correct CPU with the --cpu option. case $targetos in +AIX) + # Unless explicitly enabled, turn off lex. + if test -z "$disable_lex" ; then + disable_lex="yes" + else + force_no_lex_o="yes" + fi + ;; 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. @@ -460,7 +477,7 @@ echo "Wordsize $wordsize" # zlib probe zlib="no" cat > $TMPC < +#include int main(void) { z_stream stream; @@ -478,7 +495,8 @@ echo "zlib $zlib" ########################################## # linux-aio probe libaio="no" -cat > $TMPC < $TMPC < #include int main(void) @@ -487,14 +505,15 @@ int main(void) return 0; } EOF -if compile_prog "" "-laio" "libaio" ; then - libaio=yes - LIBS="-laio $LIBS" -else - if test "$libaio" = "yes" ; then - feature_not_found "linux AIO" "libaio-dev or libaio-devel" + if compile_prog "" "-laio" "libaio" ; then + libaio=yes + LIBS="-laio $LIBS" + else + if test "$libaio" = "yes" ; then + feature_not_found "linux AIO" "libaio-dev or libaio-devel" + fi + libaio=no fi - libaio=no fi echo "Linux AIO support $libaio" @@ -774,6 +793,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" @@ -1227,6 +1265,22 @@ if compile_prog "" "" "pwritev"; then fi echo "pwritev/preadv $pwritev" +########################################## +# Check whether we have pwritev2/preadv2 +pwritev2="no" +cat > $TMPC << EOF +#include +#include +int main(int argc, char **argv) +{ + return pwritev2(0, NULL, 1, 0, 0) + preadv2(0, NULL, 1, 0, 0); +} +EOF +if compile_prog "" "" "pwritev2"; then + pwritev2="yes" +fi +echo "pwritev2/preadv2 $pwritev2" + ########################################## # Check whether we have the required functions for ipv6 ipv6="no" @@ -1300,6 +1354,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" @@ -1426,6 +1508,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" @@ -1450,12 +1536,16 @@ if compile_prog "" "" "mtd"; then fi echo "MTD $mtd" +########################################## +# Report whether pmemblk engine is enabled +echo "NVML libpmemblk engine $pmemblk" + # Check if we have lex/yacc available yacc="no" yacc_is_bison="no" lex="no" arith="no" -if test "$disable_lex" = "no"; then +if test "$disable_lex" = "no" || test -z "$disable_lex" ; then if test "$targetos" != "SunOS" ; then LEX=$(which lex 2> /dev/null) if test -x "$LEX" ; then @@ -1494,6 +1584,20 @@ fi fi fi +# Check if lex fails using -o +if test "$arith" = "yes" ; then +if test "$force_no_lex_o" = "yes" ; then + lex_use_o="no" +else +$LEX -o lex.yy.c exp/expression-parser.l 2> /dev/null +if test "$?" = "0" ; then + lex_use_o="yes" +else + lex_use_o="no" +fi +fi +fi + echo "lex/yacc for arithmetic $arith" ########################################## @@ -1524,7 +1628,7 @@ cat > $TMPC << EOF #include int main(int argc, char **argv) { - struct statfs st; + struct statfs *st; return getmntinfo(&st, MNT_NOWAIT); } EOF @@ -1637,6 +1741,9 @@ fi if test "$clock_monotonic_precise" = "yes" ; then output_sym "CONFIG_CLOCK_MONOTONIC_PRECISE" fi +if test "$clockid_t" = "yes"; then + output_sym "CONFIG_CLOCKID_T" +fi if test "$gettimeofday" = "yes" ; then output_sym "CONFIG_GETTIMEOFDAY" fi @@ -1715,6 +1822,9 @@ fi if test "$pwritev" = "yes" ; then output_sym "CONFIG_PWRITEV" fi +if test "$pwritev2" = "yes" ; then + output_sym "CONFIG_PWRITEV2" +fi if test "$ipv6" = "yes" ; then output_sym "CONFIG_IPV6" fi @@ -1724,6 +1834,9 @@ fi if test "$rbd_inval" = "yes" ; then output_sym "CONFIG_RBD_INVAL" fi +if test "$rbd_blkin" = "yes" ; then + output_sym "CONFIG_RBD_BLKIN" +fi if test "$setvbuf" = "yes" ; then output_sym "CONFIG_SETVBUF" fi @@ -1742,6 +1855,7 @@ if test "$gf_trim" = "yes" ; then 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 @@ -1749,6 +1863,9 @@ if test "$libhdfs" = "yes" ; then if test "$mtd" = "yes" ; then output_sym "CONFIG_MTD" fi +if test "$pmemblk" = "yes" ; then + output_sym "CONFIG_PMEMBLK" +fi if test "$arith" = "yes" ; then output_sym "CONFIG_ARITHMETIC" if test "$yacc_is_bison" = "yes" ; then @@ -1756,6 +1873,9 @@ if test "$arith" = "yes" ; then else echo "YACC=$YACC" >> $config_host_mak fi + if test "$lex_use_o" = "yes" ; then + echo "CONFIG_LEX_USE_O=y" >> $config_host_mak + fi fi if test "$getmntent" = "yes" ; then output_sym "CONFIG_GETMNTENT"