X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=configure;h=45d10a31094e7ba256e36293bb2f713f2a894299;hb=ebd9b4dd690808f720712b9c1a1288ae0742f361;hp=36450df85bc2a2b6b378cf61d3a629311e81bf8f;hpb=09976e9ce881390692deda5c2ec92ec0610a9065;p=fio.git diff --git a/configure b/configure index 36450df8..45d10a31 100755 --- a/configure +++ b/configure @@ -116,6 +116,10 @@ has() { type "$1" >/dev/null 2>&1 } +num() { + echo "$1" | grep -E -q "^[0-9]+$" +} + check_define() { cat > $TMPC < $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 @@ -1186,7 +1199,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 @@ -2194,26 +2209,24 @@ fi print_config "libpmem1_5" "$libpmem1_5" ########################################## -# Check whether we have libpmemblk -# libpmem is a prerequisite -if test "$libpmemblk" != "yes" ; then - libpmemblk="no" +# Check whether we have libpmem2 +if test "$libpmem2" != "yes" ; then + libpmem2="no" fi -if test "$libpmem" = "yes"; then - cat > $TMPC << EOF -#include +cat > $TMPC << EOF +#include int main(int argc, char **argv) { - PMEMblkpool *pbp; - pbp = pmemblk_open("", 0); + struct pmem2_config *cfg; + pmem2_config_new(&cfg); + pmem2_config_delete(&cfg); return 0; } EOF - if compile_prog "" "-lpmemblk" "libpmemblk"; then - libpmemblk="yes" - fi +if compile_prog "" "-lpmem2" "libpmem2"; then + libpmem2="yes" fi -print_config "libpmemblk" "$libpmemblk" +print_config "libpmem2" "$libpmem2" # Choose libpmem-based ioengines if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then @@ -2221,15 +2234,8 @@ if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then 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" @@ -2533,7 +2539,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 @@ -2606,8 +2612,6 @@ cat > $TMPC << EOF #include int main(void) { - struct nvme_uring_cmd *cmd; - return sizeof(struct nvme_uring_cmd); } EOF @@ -2634,21 +2638,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 @@ -2695,9 +2717,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" "" @@ -2776,6 +2798,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 @@ -2982,11 +3020,13 @@ if test "$libverbs" = "yes" -a "$rdmacm" = "yes" ; then fi # librpma is supported on the 'x86_64' architecture for now if test "$cpu" = "x86_64" -a "$libverbs" = "yes" -a "$rdmacm" = "yes" \ - -a "$librpma" = "yes" -a "$libpmem" = "yes" ; then + -a "$librpma" = "yes" \ + && test "$libpmem" = "yes" -o "$libpmem2" = "yes" ; then output_sym "CONFIG_LIBRPMA_APM" fi if test "$cpu" = "x86_64" -a "$libverbs" = "yes" -a "$rdmacm" = "yes" \ - -a "$librpma" = "yes" -a "$libpmem" = "yes" -a "$libprotobuf_c" = "yes" ; then + -a "$librpma" = "yes" -a "$libprotobuf_c" = "yes" \ + && test "$libpmem" = "yes" -o "$libpmem2" = "yes" ; then output_sym "CONFIG_LIBRPMA_GPSPM" fi if test "$clock_gettime" = "yes" ; then @@ -3121,15 +3161,15 @@ 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 if test "$pmem" = "yes" ; then output_sym "CONFIG_LIBPMEM" fi +if test "$libpmem2" = "yes" ; then + output_sym "CONFIG_LIBPMEM2_INSTALLED" +fi if test "$libime" = "yes" ; then output_sym "CONFIG_IME" fi @@ -3216,6 +3256,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 @@ -3241,6 +3284,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 @@ -3273,6 +3321,15 @@ if test "$disable_tcmalloc" != "yes"; then fi fi print_config "TCMalloc support" "$tcmalloc" +if ! num "$seed_buckets"; then + seed_buckets=4 +elif test "$seed_buckets" -lt 2; then + seed_buckets=2 +elif test "$seed_buckets" -gt 16; then + seed_buckets=16 +fi +echo "#define CONFIG_SEED_BUCKETS $seed_buckets" >> $config_host_h +print_config "seed_buckets" "$seed_buckets" echo "LIBS+=$LIBS" >> $config_host_mak echo "GFIO_LIBS+=$GFIO_LIBS" >> $config_host_mak