configure: add --with-fuse option

blobfs_bdev module may contain functions related to
FUSE which will utilize libfuse3.
By default, it is diabled to compile blobfs_bdev module
with FUSE related functions. Running './configure' with
option '--with-fuse' can enable it.

Change-Id: I6552a6c04cc3412c739691630a7a481e0ae6b59c
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470712
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
Xiaodong Liu 2019-10-08 20:28:49 +08:00 committed by Jim Harris
parent d7c00c1725
commit 7fa15e28e4
6 changed files with 43 additions and 0 deletions

View File

@ -81,6 +81,12 @@ Function spdk_blobfs_bdev_detect is added to detect whether blobfs exists on the
Function spdk_blobfs_bdev_create is added to create a blobfs on the given block device.
### build
Option to build FUSE components into blobfs_bdev module for mounting a blobfs filesystem.
It requires the installation of libfuse3. By default, it is disabled. And it will be
enabled if run `./configure` with `--with-fuse` option.
### nvme
Added `no_shn_notification` to NVMe controller initialization options, users can enable

3
CONFIG
View File

@ -153,3 +153,6 @@ CONFIG_URING=n
# Path to custom built IO_URING library
CONFIG_URING_PATH=
# Build with FUSE support
CONFIG_FUSE=n

16
configure vendored
View File

@ -92,6 +92,8 @@ function usage()
echo " If an argument is provided, it is considered a directory containing"
echo " liburing.a and io_uring.h. Otherwise the regular system paths will"
echo " be searched."
echo " fuse Build FUSE components for mounting a blobfs filesystem."
echo " No path required."
echo ""
echo "Environment variables:"
echo ""
@ -355,6 +357,12 @@ for i in "$@"; do
CONFIG[URING]=n
CONFIG[URING_PATH]=
;;
--with-fuse)
CONFIG[FUSE]=y
;;
--without-fuse)
CONFIG[FUSE]=n
;;
--)
break
;;
@ -693,6 +701,14 @@ if [[ "${CONFIG[URING]}" = "y" ]]; then
fi
fi
if [[ "${CONFIG[FUSE]}" = "y" ]]; then
if [[ ! -d /usr/include/fuse3 ]] && [[ ! -d /usr/local/include/fuse3 ]]; then
echo "--with-fuse requires libfuse3."
echo "Please install then re-run this script."
exit 1
fi
fi
# We are now ready to generate final configuration. But first do sanity
# check to see if all keys in CONFIG array have its reflection in CONFIG file.
if [ $(egrep -c "^\s*CONFIG_[[:alnum:]_]+=" $rootdir/CONFIG) -ne ${#CONFIG[@]} ]; then

View File

@ -55,4 +55,9 @@ endif
SYS_LIBS += -lufc
endif
# libfuse3 is required internally by blobfs_bdev
ifeq ($(CONFIG_FUSE),y)
LIBS+= -L/usr/local/lib -lfuse3
endif
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk

View File

@ -44,4 +44,9 @@ SPDK_LIB_LIST += event_bdev event_copy event_vmd
SPDK_LIB_LIST += bdev copy event thread util conf trace \
log jsonrpc json rpc sock notify blobfs_bdev
# libfuse3 is required internally by blobfs_bdev
ifeq ($(CONFIG_FUSE),y)
LIBS+= -L/usr/local/lib -lfuse3
endif
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk

View File

@ -214,6 +214,14 @@ if [ $SPDK_TEST_ISAL -eq 0 ]; then
config_params+=' --without-isal'
fi
if [ $SPDK_TEST_BLOBFS -eq 1 ]; then
if [[ -d /usr/include/fuse3 ]] && [[ -d /usr/local/include/fuse3 ]]; then
config_params+=' --with-fuse'
else
echo "FUSE not enabled because libfuse3 is not installed."
fi
fi
# By default, --with-dpdk is not set meaning the SPDK build will use the DPDK submodule.
# If a DPDK installation is found in a well-known location though, WITH_DPDK_DIR will be
# set which will override the default and use that DPDK installation instead.