X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=configure;h=6991393bbf74bb7c8f36ca396845d58ef334107e;hb=1e7fa601e884ec37014cfaecab3d4b587f0dd395;hp=d17929f1ce8467206c7549f6857e2fc763622b8d;hpb=849ac4b24576f321b342114b07b2fd8af4f3f3dd;p=fio.git diff --git a/configure b/configure index d17929f1..6991393b 100755 --- a/configure +++ b/configure @@ -44,7 +44,7 @@ print_config() { } # Default CFLAGS -CFLAGS="-D_GNU_SOURCE -include config-host.h" +CFLAGS="-D_GNU_SOURCE -include config-host.h $CFLAGS" BUILD_CFLAGS="" # Print a helpful header at the top of config.log @@ -151,6 +151,7 @@ march_set="no" libiscsi="no" libnbd="no" libaio_uring="no" +dynamic_engines="no" prefix=/usr/local # parse options @@ -215,6 +216,8 @@ for opt do ;; --enable-libaio-uring) libaio_uring="yes" ;; + --dynamic-libengines) dynamic_engines="yes" + ;; --help) show_help="yes" ;; @@ -254,6 +257,7 @@ if test "$show_help" = "yes" ; then echo "--enable-libnbd Enable libnbd (NBD engine) support" echo "--disable-tcmalloc Disable tcmalloc support" echo "--enable-libaio-uring Enable libaio emulated over io_uring" + echo "--dynamic-libengines Lib-based ioengines as dynamic libraries" exit $exit_val fi @@ -605,11 +609,9 @@ int main(void) EOF if test "$libaio_uring" = "yes" && compile_prog "" "-luring" "libaio io_uring" ; then libaio=yes - LIBS="-luring $LIBS" elif compile_prog "" "-laio" "libaio" ; then libaio=yes libaio_uring=no - LIBS="-laio $LIBS" else if test "$libaio" = "yes" ; then feature_not_found "linux AIO" "libaio-dev or libaio-devel" @@ -617,8 +619,25 @@ EOF libaio=no libaio_uring=no fi + + cat > $TMPC < +#include +int main(void) +{ + io_prep_preadv2(NULL, 0, NULL, 0, 0, 0); + io_prep_pwritev2(NULL, 0, NULL, 0, 0, 0); + return 0; +} +EOF + if compile_prog "" "" "libaio rw flags" ; then + libaio_rw_flags=yes + else + libaio_rw_flags=no + fi fi print_config "Linux AIO support" "$libaio" +print_config "Linux AIO support rw flags" "$libaio_rw_flags" print_config "Linux AIO over io_uring" "$libaio_uring" ########################################## @@ -842,7 +861,6 @@ int main(int argc, char **argv) EOF if test "$disable_rdma" != "yes" && compile_prog "" "-libverbs" "libverbs" ; then libverbs="yes" - LIBS="-libverbs $LIBS" fi print_config "libverbs" "$libverbs" @@ -862,7 +880,6 @@ int main(int argc, char **argv) EOF if test "$disable_rdma" != "yes" && compile_prog "" "-lrdmacm" "rdma"; then rdmacm="yes" - LIBS="-lrdmacm $LIBS" fi print_config "rdmacm" "$rdmacm" @@ -1753,10 +1770,8 @@ if test "$disable_http" != "yes"; then if compile_prog "" "$HTTP_LIBS" "curl-new-ssl"; then output_sym "CONFIG_HAVE_OPAQUE_HMAC_CTX" http="yes" - LIBS="$HTTP_LIBS $LIBS" elif mv $TMPC2 $TMPC && compile_prog "" "$HTTP_LIBS" "curl-old-ssl"; then http="yes" - LIBS="$HTTP_LIBS $LIBS" fi fi print_config "http engine" "$http" @@ -1785,7 +1800,6 @@ int main(int argc, char **argv) } EOF if test "$disable_rados" != "yes" && compile_prog "" "-lrados" "rados"; then - LIBS="-lrados $LIBS" rados="yes" fi print_config "Rados engine" "$rados" @@ -1816,7 +1830,6 @@ int main(int argc, char **argv) } EOF if test "$disable_rbd" != "yes" && compile_prog "" "-lrbd -lrados" "rbd"; then - LIBS="-lrbd -lrados $LIBS" rbd="yes" fi print_config "Rados Block Device engine" "$rbd" @@ -1907,7 +1920,6 @@ int main(int argc, char **argv) } EOF if test "$disable_gfapi" != "yes" && compile_prog "" "-lgfapi -lglusterfs" "gfapi"; then - LIBS="-lgfapi -lglusterfs $LIBS" gfapi="yes" fi print_config "Gluster API engine" "$gfapi" @@ -2069,7 +2081,6 @@ int main(int argc, char **argv) EOF if compile_prog "" "-lpmem" "libpmem"; then libpmem="yes" - LIBS="-lpmem $LIBS" fi print_config "libpmem" "$libpmem" @@ -2091,7 +2102,6 @@ int main(int argc, char **argv) EOF if compile_prog "" "-lpmemblk" "libpmemblk"; then libpmemblk="yes" - LIBS="-lpmemblk $LIBS" fi fi print_config "libpmemblk" "$libpmemblk" @@ -2397,6 +2407,36 @@ if compile_prog "" "" "linux_blkzoned"; then fi print_config "Zoned block device support" "$linux_blkzoned" +########################################## +# libzbc probe +if test "$libzbc" != "yes" ; then + libzbc="no" +fi +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + struct zbc_device *dev = NULL; + + return zbc_open("foo=bar", O_RDONLY, &dev); +} +EOF +if compile_prog "" "-lzbc" "libzbc"; then + libzbcvermaj=$(pkg-config --modversion libzbc | sed 's/\.[0-9]*\.[0-9]*//') + if test "$libzbcvermaj" -ge "5" ; then + libzbc="yes" + else + print_config "libzbc engine" "Unsupported libzbc version (version 5 or above required)" + libzbc="no" + fi +else + if test "$libzbc" = "yes" ; then + feature_not_found "libzbc" "libzbc or libzbc/zbc.h" + fi + libzbc="no" +fi +print_config "libzbc engine" "$libzbc" + ########################################## # check march=armv8-a+crc+crypto if test "$march_armv8_a_crc_crypto" != "yes" ; then @@ -2500,7 +2540,7 @@ fi print_config "__kernel_rwf_t" "$__kernel_rwf_t" ########################################## -# check if gcc has -Wimplicit-fallthrough +# check if gcc has -Wimplicit-fallthrough=2 fallthrough="no" cat > $TMPC << EOF int main(int argc, char **argv) @@ -2508,10 +2548,10 @@ int main(int argc, char **argv) return 0; } EOF -if compile_prog "-Wimplicit-fallthrough" "" "-Wimplicit-fallthrough"; then +if compile_prog "-Wimplicit-fallthrough=2" "" "-Wimplicit-fallthrough=2"; then fallthrough="yes" fi -print_config "-Wimplicit-fallthrough" "$fallthrough" +print_config "-Wimplicit-fallthrough=2" "$fallthrough" ########################################## # check for MADV_HUGEPAGE support @@ -2615,6 +2655,9 @@ if test "$zlib" = "yes" ; then fi if test "$libaio" = "yes" ; then output_sym "CONFIG_LIBAIO" + if test "$libaio_rw_flags" = "yes" ; then + output_sym "CONFIG_LIBAIO_RW_FLAGS" + fi if test "$libaio_uring" = "yes" ; then output_sym "CONFIG_LIBAIO_URING" fi @@ -2862,7 +2905,10 @@ if test "$valgrind_dev" = "yes"; then output_sym "CONFIG_VALGRIND_DEV" fi if test "$linux_blkzoned" = "yes" ; then - output_sym "CONFIG_LINUX_BLKZONED" + output_sym "CONFIG_HAS_BLKZONED" +fi +if test "$libzbc" = "yes" ; then + output_sym "CONFIG_LIBZBC" fi if test "$zlib" = "no" ; then echo "Consider installing zlib-dev (zlib-devel, some fio features depend on it." @@ -2912,6 +2958,10 @@ if test "$libnbd" = "yes" ; then echo "LIBNBD_CFLAGS=$libnbd_cflags" >> $config_host_mak echo "LIBNBD_LIBS=$libnbd_libs" >> $config_host_mak fi +if test "$dynamic_engines" = "yes" ; then + output_sym "CONFIG_DYNAMIC_ENGINES" +fi +print_config "Lib-based ioengines dynamic" "$dynamic_engines" cat > $TMPC << EOF int main(int argc, char **argv) {