}
compile_object() {
- do_cc $CFLAGS -c -o $TMPO $TMPC
+ do_cc $CFLAGS -Werror-implicit-function-declaration -c -o $TMPO $TMPC
}
compile_prog() {
local_cflags="$1"
local_ldflags="$2 $LIBS"
echo "Compiling test case $3" >> config.log
- do_cc $CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
+ do_cc $CFLAGS -Werror-implicit-function-declaration $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags
}
feature_not_found() {
disable_native="no"
march_set="no"
libiscsi="no"
+libnbd="no"
+libaio_uring="no"
prefix=/usr/local
# parse options
;;
--enable-libiscsi) libiscsi="yes"
;;
+ --enable-libnbd) libnbd="yes"
+ ;;
+ --disable-tcmalloc) disable_tcmalloc="yes"
+ ;;
+ --enable-libaio-uring) libaio_uring="yes"
+ ;;
--help)
show_help="yes"
;;
echo "--disable-native Don't build for native host"
echo "--with-ime= Install path for DDN's Infinite Memory Engine"
echo "--enable-libiscsi Enable iscsi support"
+ echo "--enable-libnbd Enable libnbd (NBD engine) support"
+ echo "--disable-tcmalloc Disable tcmalloc support"
+ echo "--enable-libaio-uring Enable libaio emulated over io_uring"
exit $exit_val
fi
return 0;
}
EOF
- if compile_prog "" "-laio" "libaio" ; then
+ 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"
fi
libaio=no
+ libaio_uring=no
fi
fi
print_config "Linux AIO support" "$libaio"
+print_config "Linux AIO over io_uring" "$libaio_uring"
##########################################
# posix aio probe
echo "configure: gtk and gthread not found"
exit 1
fi
-if compile_prog "$GTK_CFLAGS" "$GTK_LIBS" "gfio" ; then
- $TMPE
- if test "$?" = "0" ; then
+if ! ${cross_prefix}pkg-config --atleast-version 2.18.0 gtk+-2.0; then
+ echo "GTK found, but need version 2.18 or higher"
+ gfio="no"
+else
+ if compile_prog "$GTK_CFLAGS" "$GTK_LIBS" "gfio" ; then
gfio="yes"
GFIO_LIBS="$LIBS $GTK_LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
else
- echo "GTK found, but need version 2.18 or higher"
+ echo "Please install gtk and gdk libraries"
gfio="no"
fi
-else
- echo "Please install gtk and gdk libraries"
- gfio="no"
fi
LDFLAGS=$ORG_LDFLAGS
fi
fi
print_config "iscsi engine" "$libiscsi"
+##########################################
+# Check if we have libnbd (for NBD support).
+minimum_libnbd=0.9.8
+if test "$libnbd" = "yes" ; then
+ if $(pkg-config --atleast-version=$minimum_libnbd libnbd); then
+ libnbd="yes"
+ libnbd_cflags=$(pkg-config --cflags libnbd)
+ libnbd_libs=$(pkg-config --libs libnbd)
+ else
+ if test "$libnbd" = "yes" ; then
+ echo "libnbd" "Install libnbd >= $minimum_libnbd"
+ fi
+ libnbd="no"
+ fi
+fi
+print_config "NBD engine" "$libnbd"
+
##########################################
# Check if we have lex/yacc available
yacc="no"
fi
if test "$libaio" = "yes" ; then
output_sym "CONFIG_LIBAIO"
+ if test "$libaio_uring" = "yes" ; then
+ output_sym "CONFIG_LIBAIO_URING"
+ fi
fi
if test "$posix_aio" = "yes" ; then
output_sym "CONFIG_POSIXAIO"
echo "LIBISCSI_CFLAGS=$libiscsi_cflags" >> $config_host_mak
echo "LIBISCSI_LIBS=$libiscsi_libs" >> $config_host_mak
fi
+if test "$libnbd" = "yes" ; then
+ output_sym "CONFIG_LIBNBD"
+ echo "CONFIG_LIBNBD=m" >> $config_host_mak
+ echo "LIBNBD_CFLAGS=$libnbd_cflags" >> $config_host_mak
+ echo "LIBNBD_LIBS=$libnbd_libs" >> $config_host_mak
+fi
+cat > $TMPC << EOF
+int main(int argc, char **argv)
+{
+ return 0;
+}
+EOF
+if test "$disable_tcmalloc" != "yes" && compile_prog "" "-ltcmalloc" "tcmalloc"; then
+ LIBS="-ltcmalloc $LIBS"
+ tcmalloc="yes"
+else
+ tcmalloc="no"
+fi
+print_config "TCMalloc support" "$tcmalloc"
echo "LIBS+=$LIBS" >> $config_host_mak
echo "GFIO_LIBS+=$GFIO_LIBS" >> $config_host_mak