Add liburing submodule and scripts to build the Purecap liburing library and its testsuite.
Signed-off-by: Tudor Cretu tudor.cretu@arm.com --- .gitignore | 1 + .gitmodules | 3 +++ morello/projects/libs/liburing | 1 + morello/scripts/build-all.sh | 1 + morello/scripts/build-liburing.sh | 33 +++++++++++++++++++++++++++++++ morello/scripts/configure-libs.sh | 2 +- 6 files changed, 40 insertions(+), 1 deletion(-) create mode 160000 morello/projects/libs/liburing create mode 100755 morello/scripts/build-liburing.sh
diff --git a/.gitignore b/.gitignore index 45f16f1..5e6d521 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,7 @@ /morello/.busybox-env /morello/.morello-linux-headers-env /morello/.libaio-env +/morello/.liburing-env /morello/morello-docker/ /morello/linux-out/ /morello/bsp/ diff --git a/.gitmodules b/.gitmodules index 4ce2789..22749bb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -22,3 +22,6 @@ [submodule "libaio"] path = morello/projects/libs/libaio url = /home/tudcre01/morello-next/libaio/purecap/ +[submodule "liburing"] + path = morello/projects/libs/liburing + url = /home/tudcre01/morello-next/liburing/purecap/ diff --git a/morello/projects/libs/liburing b/morello/projects/libs/liburing new file mode 160000 index 0000000..972f0fc --- /dev/null +++ b/morello/projects/libs/liburing @@ -0,0 +1 @@ +Subproject commit 972f0fcb35d1cf7dd14c02607ad5ac8378f92616 diff --git a/morello/scripts/build-all.sh b/morello/scripts/build-all.sh index 4d623c7..adc00ac 100755 --- a/morello/scripts/build-all.sh +++ b/morello/scripts/build-all.sh @@ -179,6 +179,7 @@ main () { # Build Libraries ${MORELLO_AARCH64_HOME}/scripts/configure-libs.sh ${MORELLO_AARCH64_HOME}/scripts/build-libaio.sh + ${MORELLO_AARCH64_HOME}/scripts/build-liburing.sh fi
if [ "$OPTIONS_TOOLCHAIN_LIB" = "on" ]; then diff --git a/morello/scripts/build-liburing.sh b/morello/scripts/build-liburing.sh new file mode 100755 index 0000000..0288fcd --- /dev/null +++ b/morello/scripts/build-liburing.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +# SPDX-License-Identifier: BSD-3-Clause + +liburing_clean() { + make clean +} + +liburing_build() { + local _NCORES=$(nproc --all) + local CC=clang + local LIBURING_HOME="${LIBS_HOME}/liburing" + local LIBURING_OUTPUT="${LIBS_OUTPUT}/liburing" + local KHDR_DIR="${MORELLO_PROJECTS}/morello-linux-headers/usr/include" + local CFLAGS="--target=aarch64-linux-musl_purecap -march=morello+c64 \ + --sysroot=$MUSL_BIN -isystem ${KHDR_DIR} -g" + local LDFLAGS="--target=aarch64-linux-musl_purecap -rtlib=compiler-rt \ + --sysroot=$MUSL_BIN -fuse-ld=lld -static" + + # Build liburing for Morello, including testsuite + cd $LIBURING_HOME + + if [ "$OPTIONS_CLEAN" = "on" ]; then + liburing_clean + fi + + ./configure --cc="$CC $CFLAGS" --cxx=$CC + CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ENABLE_SHARED=0 make -j$_NCORES + CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ENABLE_SHARED=0 DESTDIR=$LIBURING_OUTPUT make install -j$_NCORES + CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" DESTDIR=$LIBURING_OUTPUT make install-tests -j$_NCORES +} + +liburing_build $@ diff --git a/morello/scripts/configure-libs.sh b/morello/scripts/configure-libs.sh index b164415..3d56cbd 100755 --- a/morello/scripts/configure-libs.sh +++ b/morello/scripts/configure-libs.sh @@ -21,7 +21,7 @@ submodule_update_projects() { cd ${CURR_DIR} }
-PROJECTS_LIST=( morello-linux-headers libaio ) +PROJECTS_LIST=( morello-linux-headers libaio liburing )
for proj in "${PROJECTS_LIST[@]}"; do if [ ! -f "${CURR_DIR}/.${proj}-env" ]; then