X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=configure;h=3e3f8132a31c4a92929bbbc373e455fb6f813cd7;hb=85ccc10a2d829c28f2b7a31f9d5424938966d9dc;hp=546541a29542ecee25a0665eb31cbab11ecf0837;hpb=d14687025c0c61d047e4252036d1b024d62cb0a6;p=fio.git diff --git a/configure b/configure index 546541a2..3e3f8132 100755 --- a/configure +++ b/configure @@ -133,6 +133,20 @@ EOF compile_object } +check_val() { + cat > $TMPC <> $config_host_mak echo "#define $1" >> $config_host_h @@ -163,7 +177,6 @@ show_help="no" exit_val=0 gfio_check="no" libhdfs="no" -pmemblk="no" devdax="no" pmem="no" cuda="no" @@ -176,6 +189,7 @@ libiscsi="no" libnbd="no" libnfs="" xnvme="" +libblkio="" libzbc="" dfs="" seed_buckets="" @@ -248,6 +262,8 @@ for opt do ;; --disable-xnvme) xnvme="no" ;; + --disable-libblkio) libblkio="no" + ;; --disable-tcmalloc) disable_tcmalloc="yes" ;; --disable-libnfs) libnfs="no" @@ -262,6 +278,8 @@ for opt do ;; --seed-buckets=*) seed_buckets="$optarg" ;; + --disable-tls) tls_check="no" + ;; --help) show_help="yes" ;; @@ -304,17 +322,19 @@ if test "$show_help" = "yes" ; then echo "--enable-libiscsi Enable iscsi support" echo "--enable-libnbd Enable libnbd (NBD engine) support" echo "--disable-xnvme Disable xnvme support even if found" + echo "--disable-libblkio Disable libblkio support even if found" echo "--disable-libzbc Disable libzbc even if found" echo "--disable-tcmalloc Disable tcmalloc support" echo "--dynamic-libengines Lib-based ioengines as dynamic libraries" echo "--disable-dfs Disable DAOS File System support even if found" echo "--enable-asan Enable address sanitizer" echo "--seed-buckets= Number of seed buckets for the refill-buffer" + echo "--disable-tls Disable __thread local storage" exit $exit_val fi cross_prefix=${cross_prefix-${CROSS_COMPILE}} -# Preferred compiler (can be overriden later after we know the platform): +# Preferred compiler (can be overridden later after we know the platform): # ${CC} (if set) # ${cross_prefix}gcc (if cross-prefix specified) # gcc if available @@ -493,13 +513,23 @@ elif check_define __aarch64__ ; then cpu="aarch64" elif check_define __hppa__ ; then cpu="hppa" +elif check_define __loongarch64 ; then + cpu="loongarch64" +elif check_define __riscv ; then + if check_val __riscv_xlen 32 ; then + cpu="riscv32" + elif check_val __riscv_xlen 64 ; then + cpu="riscv64" + elif check_val __riscv_xlen 128 ; then + cpu="riscv128" + fi else cpu=`uname -m` fi # Normalise host CPU name and set ARCH. case "$cpu" in - ia64|ppc|ppc64|s390|s390x|sparc64) + ia64|ppc|ppc64|s390|s390x|sparc64|loongarch64|riscv64) cpu="$cpu" ;; i386|i486|i586|i686|i86pc|BePC) @@ -834,7 +864,8 @@ cat > $TMPC < /* pthread_sigmask() */ int main(void) { - return pthread_sigmask(0, NULL, NULL); + sigset_t sigmask; + return pthread_sigmask(0, NULL, &sigmask); } EOF if compile_prog "" "$LIBS" "pthread_sigmask" ; then @@ -1172,7 +1203,9 @@ cat > $TMPC << EOF #include int main(int argc, char **argv) { - return clock_gettime(0, NULL); + struct timespec ts; + + return clock_gettime(0, &ts); } EOF if compile_prog "" "" "clock_gettime"; then @@ -1194,7 +1227,9 @@ if test "$clock_gettime" = "yes" ; then #include int main(int argc, char **argv) { - return clock_gettime(CLOCK_MONOTONIC, NULL); + struct timespec ts; + + return clock_gettime(CLOCK_MONOTONIC, &ts); } EOF if compile_prog "" "$LIBS" "clock monotonic"; then @@ -1335,6 +1370,23 @@ if compile_prog "" "" "sync_file_range"; then fi print_config "sync_file_range" "$sync_file_range" +########################################## +# ASharedMemory_create() probe +if test "$ASharedMemory_create" != "yes" ; then + ASharedMemory_create="no" +fi +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + return ASharedMemory_create("", 0); +} +EOF +if compile_prog "" "" "ASharedMemory_create"; then + ASharedMemory_create="yes" +fi +print_config "ASharedMemory_create" "$ASharedMemory_create" + ########################################## # ext4 move extent probe if test "$ext4_me" != "yes" ; then @@ -1542,7 +1594,8 @@ print_config "socklen_t" "$socklen_t" if test "$tls_thread" != "yes" ; then tls_thread="no" fi -cat > $TMPC << EOF +if test "$tls_check" != "no"; then + cat > $TMPC << EOF #include static __thread int ret; int main(int argc, char **argv) @@ -1553,6 +1606,7 @@ EOF if compile_prog "" "" "__thread"; then tls_thread="yes" fi +fi print_config "__thread" "$tls_thread" ########################################## @@ -2221,43 +2275,14 @@ if compile_prog "" "-lpmem2" "libpmem2"; then fi print_config "libpmem2" "$libpmem2" -########################################## -# Check whether we have libpmemblk -# libpmem is a prerequisite -if test "$libpmemblk" != "yes" ; then - libpmemblk="no" -fi -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" - fi -fi -print_config "libpmemblk" "$libpmemblk" - # Choose libpmem-based ioengines if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then devdax="yes" if test "$libpmem1_5" = "yes"; then pmem="yes" fi - if test "$libpmemblk" = "yes"; then - pmemblk="yes" - fi fi -########################################## -# Report whether pmemblk engine is enabled -print_config "PMDK pmemblk engine" "$pmemblk" - ########################################## # Report whether dev-dax engine is enabled print_config "PMDK dev-dax engine" "$devdax" @@ -2561,7 +2586,7 @@ if compile_prog "" "" "valgrind_dev"; then fi print_config "Valgrind headers" "$valgrind_dev" -if test "$targetos" = "Linux" ; then +if test "$targetos" = "Linux" || test "$targetos" = "Android"; then ########################################## # probe if test "$linux_blkzoned" != "yes" ; then @@ -2634,8 +2659,6 @@ cat > $TMPC << EOF #include int main(void) { - struct nvme_uring_cmd *cmd; - return sizeof(struct nvme_uring_cmd); } EOF @@ -2651,7 +2674,7 @@ fi ########################################## # Check if we have xnvme if test "$xnvme" != "no" ; then - if check_min_lib_version xnvme 0.2.0; then + if check_min_lib_version xnvme 0.7.0; then xnvme="yes" xnvme_cflags=$(pkg-config --cflags xnvme) xnvme_libs=$(pkg-config --libs xnvme) @@ -2662,21 +2685,39 @@ fi print_config "xnvme engine" "$xnvme" ########################################## -# check march=armv8-a+crc+crypto -if test "$march_armv8_a_crc_crypto" != "yes" ; then - march_armv8_a_crc_crypto="no" +# Check if we have libblkio +if test "$libblkio" != "no" ; then + if check_min_lib_version blkio 1.0.0; then + libblkio="yes" + libblkio_cflags=$(pkg-config --cflags blkio) + libblkio_libs=$(pkg-config --libs blkio) + else + if test "$libblkio" = "yes" ; then + feature_not_found "libblkio" "libblkio-dev or libblkio-devel" + fi + libblkio="no" + fi fi +print_config "libblkio engine" "$libblkio" + +########################################## +# check march=armv8-a+crc+crypto +march_armv8_a_crc_crypto="no" if test "$cpu" = "arm64" ; then cat > $TMPC < #include #include +#endif int main(void) { /* Can we also do a runtime probe? */ #if __linux__ return getauxval(AT_HWCAP); +#elif defined(__APPLE__) + return 0; #else # error "Don't know how to do runtime probe for ARM CRC32c" #endif @@ -2723,9 +2764,9 @@ int main(int argc, char* argv[]) { return 0; } EOF - if compile_prog "" "-lcuda -lcudart -lcufile" "libcufile"; then + if compile_prog "" "-lcuda -lcudart -lcufile -ldl" "libcufile"; then libcufile="yes" - LIBS="-lcuda -lcudart -lcufile $LIBS" + LIBS="-lcuda -lcudart -lcufile -ldl $LIBS" else if test "$libcufile" = "yes" ; then feature_not_found "libcufile" "" @@ -2804,6 +2845,22 @@ if compile_prog "-Wimplicit-fallthrough=2" "" "-Wimplicit-fallthrough=2"; then fi print_config "-Wimplicit-fallthrough=2" "$fallthrough" +########################################## +# check if the compiler has -Wno-stringop-concatenation +no_stringop="no" +cat > $TMPC << EOF +#include + +int main(int argc, char **argv) +{ + return printf("%s\n", argv[0]); +} +EOF +if compile_prog "-Wno-stringop-truncation -Werror" "" "no_stringop"; then + no_stringop="yes" +fi +print_config "-Wno-stringop-truncation" "$no_stringop" + ########################################## # check for MADV_HUGEPAGE support if test "$thp" != "yes" ; then @@ -2996,6 +3053,9 @@ fi if test "$sync_file_range" = "yes" ; then output_sym "CONFIG_SYNC_FILE_RANGE" fi +if test "$ASharedMemory_create" = "yes" ; then + output_sym "CONFIG_ASHAREDMEMORY_CREATE" +fi if test "$sfaa" = "yes" ; then output_sym "CONFIG_SFAA" fi @@ -3151,9 +3211,6 @@ fi if test "$mtd" = "yes" ; then output_sym "CONFIG_MTD" fi -if test "$pmemblk" = "yes" ; then - output_sym "CONFIG_PMEMBLK" -fi if test "$devdax" = "yes" ; then output_sym "CONFIG_LINUX_DEVDAX" fi @@ -3249,6 +3306,9 @@ fi if test "$fallthrough" = "yes"; then CFLAGS="$CFLAGS -Wimplicit-fallthrough" fi +if test "$no_stringop" = "yes"; then + output_sym "CONFIG_HAVE_NO_STRINGOP" +fi if test "$thp" = "yes" ; then output_sym "CONFIG_HAVE_THP" fi @@ -3274,6 +3334,11 @@ if test "$xnvme" = "yes" ; then echo "LIBXNVME_CFLAGS=$xnvme_cflags" >> $config_host_mak echo "LIBXNVME_LIBS=$xnvme_libs" >> $config_host_mak fi +if test "$libblkio" = "yes" ; then + output_sym "CONFIG_LIBBLKIO" + echo "LIBBLKIO_CFLAGS=$libblkio_cflags" >> $config_host_mak + echo "LIBBLKIO_LIBS=$libblkio_libs" >> $config_host_mak +fi if test "$dynamic_engines" = "yes" ; then output_sym "CONFIG_DYNAMIC_ENGINES" fi