build: Add support for linking to liburing

liburing is a wrapper around a new Linux kernel interface for
submitting I/O using user space rings. This patch simply
adds the ability to link the nvme perf tool to liburing, but
doesn't implement any of the new functionality yet.

Change-Id: Idb741c87b6d951c013af86e30eac18d3834dd4b7
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/444711
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
This commit is contained in:
Ben Walker 2019-02-14 12:07:42 -07:00 committed by Jim Harris
parent e59ac513fb
commit 8165bf7125
3 changed files with 39 additions and 0 deletions

6
CONFIG
View File

@ -139,3 +139,9 @@ CONFIG_CUSTOMOCF=n
# Build ISA-L library
CONFIG_ISAL=y
# Build with IO_URING support
CONFIG_URING=n
# Path to custom built IO_URING library
CONFIG_URING_PATH=

23
configure vendored
View File

@ -77,6 +77,9 @@ function usage()
echo " No path required."
echo " ftl Required to build FTL module."
echo " No path required."
echo " uring Required to support I/O uring on Linux. If no argument, searches"
echo " the standard installation directory. If an argument is provided, it is"
echo " considered a directory containing liburing.a and io_uring.h."
echo ""
echo "Environment variables:"
echo ""
@ -314,6 +317,18 @@ for i in "$@"; do
--without-isal)
CONFIG[ISAL]=n
;;
--with-uring=*)
CONFIG[URING]=y
CONFIG[URING_PATH]=$(readlink -f ${i#*=})
;;
--with-uring)
CONFIG[URING]=y
CONFIG[URING_PATH]=
;;
--without-uring)
CONFIG[URING]=n
CONFIG[URING_PATH]=
;;
--)
break
;;
@ -491,6 +506,14 @@ elif [[ "${CONFIG[PGO_USE]}" = "y" ]]; then
fi
fi
if [[ "${CONFIG[URING]}" = "y" ]]; then
if [[ -n "${CONFIG[URING_PATH]}" ]]; then
if [ ! -d "${CONFIG[URING_PATH]}" ]; then
echo "${CONFIG[URING_PATH]}: directory not found"
exit 1
fi
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.

View File

@ -41,6 +41,16 @@ SYS_LIBS += -laio
CFLAGS += -DHAVE_LIBAIO
endif
ifeq ($(CONFIG_URING),y)
SYS_LIBS += -luring
CFLAGS += -DHAVE_URING
ifeq ($(strip $(CONFIG_URING_PATH)),)
else
CFLAGS += -I$(CONFIG_URING_PATH)
LDFLAGS += -L$(CONFIG_URING_PATH)
endif
endif
install: $(APP)
$(INSTALL_EXAMPLE)