X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=configure;h=d2ca8934f3bed5e3ba73f0551990cbfedcc10a4a;hb=2fbe1e195999e23c95b08d03eadac0b5f95330e7;hp=dd7fe3d298312aefa7ff809f2ae400e20116b9a1;hpb=3c1f3ca75b447a2bd0a93deb0a2a1210529d2ccb;p=fio.git diff --git a/configure b/configure index dd7fe3d2..d2ca8934 100755 --- a/configure +++ b/configure @@ -134,18 +134,18 @@ output_sym() { } check_min_lib_version() { - local feature=$3 + _feature=$3 - if ${cross_prefix}pkg-config --atleast-version=$2 $1 > /dev/null 2>&1; then + if "${cross_prefix}"pkg-config --atleast-version="$2" "$1" > /dev/null 2>&1; then return 0 fi - : ${feature:=${1}} - if ${cross_prefix}pkg-config --version > /dev/null 2>&1; then - if test ${!feature} = "yes" ; then - feature_not_found "$feature" "$1 >= $2" + : "${_feature:=${1}}" + if "${cross_prefix}"pkg-config --version > /dev/null 2>&1; then + if eval "echo \$$_feature" = "yes" ; then + feature_not_found "$_feature" "$1 >= $2" fi else - print_config "$1" "missing pkg-config, can't check $feature version" + print_config "$1" "missing pkg-config, can't check $_feature version" fi return 1 } @@ -168,7 +168,6 @@ disable_native="no" march_set="no" libiscsi="no" libnbd="no" -libaio_uring="no" libzbc="" dynamic_engines="no" prefix=/usr/local @@ -193,6 +192,8 @@ for opt do ;; --target-win-ver=*) target_win_ver="$optarg" ;; + --enable-pdb) pdb="yes" + ;; --build-static) build_static="yes" ;; --enable-gfio) gfio_check="yes" @@ -235,8 +236,6 @@ for opt do ;; --disable-tcmalloc) disable_tcmalloc="yes" ;; - --enable-libaio-uring) libaio_uring="yes" - ;; --dynamic-libengines) dynamic_engines="yes" ;; --help) @@ -256,6 +255,7 @@ if test "$show_help" = "yes" ; then echo "--extra-cflags= Specify extra CFLAGS to pass to compiler" echo "--build-32bit-win Enable 32-bit build on Windows" echo "--target-win-ver= Minimum version of Windows to target (XP or 7)" + echo "--enable-pdb Enable Windows PDB symbols generation (needs clang/lld)" echo "--build-static Build a static fio" echo "--esx Configure build options for esx" echo "--enable-gfio Enable building of gtk gfio" @@ -278,7 +278,6 @@ if test "$show_help" = "yes" ; then echo "--enable-libnbd Enable libnbd (NBD engine) support" echo "--disable-libzbc Disable libzbc even if found" 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 @@ -394,6 +393,8 @@ CYGWIN*) fi if test "$target_win_ver" = "XP"; then output_sym "CONFIG_WINDOWS_XP" + # Technically the below is targeting 2003 + CFLAGS="$CFLAGS -D_WIN32_WINNT=0x0502" elif test "$target_win_ver" = "7"; then output_sym "CONFIG_WINDOWS_7" CFLAGS="$CFLAGS -D_WIN32_WINNT=0x0601" @@ -648,22 +649,13 @@ int main(void) return 0; } EOF - if test "$libaio_uring" = "yes"; then - if compile_prog "" "-luring" "libaio io_uring" ; then - libaio=yes - LIBS="-luring $LIBS" - else - feature_not_found "libaio io_uring" "" - fi - elif compile_prog "" "-laio" "libaio" ; then + if compile_prog "" "-laio" "libaio" ; then libaio=yes - libaio_uring=no else if test "$libaio" = "yes" ; then feature_not_found "linux AIO" "libaio-dev or libaio-devel" fi libaio=no - libaio_uring=no fi cat > $TMPC < $TMPC << EOF int main(int argc, char **argv) { - return asprintf(NULL, "%s", "str") == 0; + char *buf; + return asprintf(&buf, "%s", "str") == 0; } EOF if compile_prog "" "" "have_asprintf"; then @@ -956,7 +948,8 @@ cat > $TMPC << EOF int main(int argc, char **argv) { va_list ap; - return vasprintf(NULL, "%s", ap) == 0; + char *buf; + return vasprintf(&buf, "%s", ap) == 0; } EOF if compile_prog "" "" "have_vasprintf"; then @@ -1097,46 +1090,6 @@ EOF fi print_config "CLOCK_MONOTONIC" "$clock_monotonic" -########################################## -# CLOCK_MONOTONIC_RAW probe -if test "$clock_monotonic_raw" != "yes" ; then - clock_monotonic_raw="no" -fi -if test "$clock_gettime" = "yes" ; then - cat > $TMPC << EOF -#include -#include -int main(int argc, char **argv) -{ - return clock_gettime(CLOCK_MONOTONIC_RAW, NULL); -} -EOF - if compile_prog "" "$LIBS" "clock monotonic"; then - clock_monotonic_raw="yes" - fi -fi -print_config "CLOCK_MONOTONIC_RAW" "$clock_monotonic_raw" - -########################################## -# CLOCK_MONOTONIC_PRECISE probe -if test "$clock_monotonic_precise" != "yes" ; then - clock_monotonic_precise="no" -fi -if test "$clock_gettime" = "yes" ; then - cat > $TMPC << EOF -#include -#include -int main(int argc, char **argv) -{ - return clock_gettime(CLOCK_MONOTONIC_PRECISE, NULL); -} -EOF - if compile_prog "" "$LIBS" "clock monotonic precise"; then - clock_monotonic_precise="yes" - fi -fi -print_config "CLOCK_MONOTONIC_PRECISE" "$clock_monotonic_precise" - ########################################## # clockid_t probe if test "$clockid_t" != "yes" ; then @@ -1311,25 +1264,6 @@ if compile_prog "" "" "linux splice"; then fi print_config "Linux splice(2)" "$linux_splice" -########################################## -# GUASI probe -if test "$guasi" != "yes" ; then - guasi="no" -fi -cat > $TMPC << EOF -#include -#include -int main(int argc, char **argv) -{ - guasi_t ctx = guasi_create(0, 0, 0); - return 0; -} -EOF -if compile_prog "" "" "guasi"; then - guasi="yes" -fi -print_config "GUASI" "$guasi" - ########################################## # libnuma probe if test "$libnuma" != "yes" ; then @@ -2117,10 +2051,11 @@ if test "$libpmem" != "yes" ; then fi cat > $TMPC << EOF #include +#include int main(int argc, char **argv) { int rc; - rc = pmem_is_pmem(0, 0); + rc = pmem_is_pmem(NULL, NULL); return 0; } EOF @@ -2129,6 +2064,27 @@ if compile_prog "" "-lpmem" "libpmem"; then fi print_config "libpmem" "$libpmem" +########################################## +# Check whether libpmem's version >= 1.5 +if test "$libpmem1_5" != "yes" ; then + libpmem1_5="no" +fi +if test "$libpmem" = "yes"; then + cat > $TMPC << EOF +#include +#include +int main(int argc, char **argv) +{ + pmem_memcpy(NULL, NULL, NULL, NULL); + return 0; +} +EOF + if compile_prog "" "-lpmem" "libpmem1_5"; then + libpmem1_5="yes" + fi +fi +print_config "libpmem1_5" "$libpmem1_5" + ########################################## # Check whether we have libpmemblk # libpmem is a prerequisite @@ -2151,10 +2107,12 @@ EOF fi print_config "libpmemblk" "$libpmemblk" -# Choose the ioengines +# Choose libpmem-based ioengines if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then - pmem="yes" devdax="yes" + if test "$libpmem1_5" = "yes"; then + pmem="yes" + fi if test "$libpmemblk" = "yes"; then pmemblk="yes" fi @@ -2229,19 +2187,14 @@ lex="no" arith="no" 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 +if has lex; then lex="yes" fi -YACC=$(which bison 2> /dev/null) -if test -x "$YACC" ; then +if has bison; then yacc="yes" yacc_is_bison="yes" -else - YACC=$(which yacc 2> /dev/null) - if test -x "$YACC" ; then - yacc="yes" - fi +elif has yacc; then + yacc="yes" fi if test "$yacc" = "yes" && test "$lex" = "yes" ; then arith="yes" @@ -2257,7 +2210,9 @@ int main(int argc, char **argv) return 0; } EOF -if compile_prog "" "-ll" "lex"; then +if compile_prog "" "-lfl" "flex"; then + LIBS="-lfl $LIBS" +elif compile_prog "" "-ll" "lex"; then LIBS="-ll $LIBS" else arith="no" @@ -2271,8 +2226,7 @@ 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 +if lex -o lex.yy.c exp/expression-parser.l 2> /dev/null; then lex_use_o="yes" else lex_use_o="no" @@ -2693,6 +2647,45 @@ if compile_prog "" "" "statx_syscall"; then fi print_config "statx(2)/syscall" "$statx_syscall" +########################################## +# check for Windows PDB generation support +if test "pdb" != "no" ; then + cat > $TMPC < $TMPC << EOF +#include +#include + +int main(int argc, char **argv) +{ + return timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK); +} +EOF +if compile_prog "" "" "timerfd_create"; then + timerfd_create="yes" +fi +print_config "timerfd_create" "$timerfd_create" + ############################################################################# if test "$wordsize" = "64" ; then @@ -2715,9 +2708,6 @@ if test "$libaio" = "yes" ; then 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 fi if test "$posix_aio" = "yes" ; then output_sym "CONFIG_POSIXAIO" @@ -2823,9 +2813,6 @@ fi if test "$linux_splice" = "yes" ; then output_sym "CONFIG_LINUX_SPLICE" fi -if test "$guasi" = "yes" ; then - output_sym "CONFIG_GUASI" -fi if test "$libnuma_v2" = "yes" ; then output_sym "CONFIG_LIBNUMA" fi @@ -2929,9 +2916,9 @@ fi if test "$arith" = "yes" ; then output_sym "CONFIG_ARITHMETIC" if test "$yacc_is_bison" = "yes" ; then - echo "YACC=$YACC -y" >> $config_host_mak + echo "YACC=bison -y" >> $config_host_mak else - echo "YACC=$YACC" >> $config_host_mak + echo "YACC=yacc" >> $config_host_mak fi if test "$lex_use_o" = "yes" ; then echo "CONFIG_LEX_USE_O=y" >> $config_host_mak @@ -2997,6 +2984,9 @@ fi if test "$statx_syscall" = "yes"; then output_sym "CONFIG_HAVE_STATX_SYSCALL" fi +if test "$timerfd_create" = "yes"; then + output_sym "CONFIG_HAVE_TIMERFD_CREATE" +fi if test "$fallthrough" = "yes"; then CFLAGS="$CFLAGS -Wimplicit-fallthrough" fi @@ -3018,6 +3008,10 @@ fi if test "$dynamic_engines" = "yes" ; then output_sym "CONFIG_DYNAMIC_ENGINES" fi +if test "$pdb" = yes; then + output_sym "CONFIG_PDB" +fi + print_config "Lib-based ioengines dynamic" "$dynamic_engines" cat > $TMPC << EOF int main(int argc, char **argv)