liburing: Upgrade to 2.7 and fix build on riscv32

Fix build regression with musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2024-09-16 16:10:07 -07:00
parent a2010f12fd
commit a8c72984ae
No known key found for this signature in database
GPG Key ID: BB053355919D3314
4 changed files with 109 additions and 3 deletions

View File

@ -0,0 +1,43 @@
From 7ea4e55a91e6d5564c6de762c2d1afc78ff9cfd3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 16 Sep 2024 22:58:38 +0000
Subject: [PATCH] test: Compile nolibc.c only when CONFIG_NOLIBC is set
building nolibc.c fails for non nolibc targets
Fixes
In file included from nolibc.c:33:
./../src/lib.h:20:2: error: "This arch doesn't support building liburing without libc"
20 | #error "This arch doesn't support building liburing without libc"
| ^
1 error generated.
Upstream-Status: Backport [https://github.com/axboe/liburing/commit/a182f62c01f981cd9dd508ec952fbc975b263e3d]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/test/Makefile b/test/Makefile
index 0538a75..0dfecb8 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -126,7 +126,6 @@ test_srcs := \
msg-ring-overflow.c \
multicqes_drain.c \
no-mmap-inval.c \
- nolibc.c \
nop-all-sizes.c \
nop.c \
ooo-file-unreg.c \
@@ -221,6 +220,10 @@ test_srcs := \
all_targets :=
include ../Makefile.quiet
+ifeq ($(CONFIG_NOLIBC),y)
+ test_srcs += nolibc.c
+endif
+
ifdef CONFIG_HAVE_STATX
test_srcs += statx.c
else ifdef CONFIG_HAVE_GLIBC_STATX

View File

@ -0,0 +1,27 @@
From 684bcb2a8795fd399d6c164e51459a2785057b1c Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 17 Sep 2024 09:56:42 -0700
Subject: [PATCH 1/2] test: Drop including error.h header
There is no error APIs being used in this test, therefore
drop including it, this also makes it portable to musl
systems which do not have error.h
Upstream-Status: Submitted [https://github.com/axboe/liburing/pull/1233]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/init-mem.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/test/init-mem.c b/test/init-mem.c
index 6f9a02a..f512190 100644
--- a/test/init-mem.c
+++ b/test/init-mem.c
@@ -13,7 +13,6 @@
#include <netinet/udp.h>
#include <arpa/inet.h>
#include <net/if.h>
-#include <error.h>
#include "liburing.h"
#include "helpers.h"

View File

@ -0,0 +1,32 @@
From d06433ff1a1905436cfcde80e22ee51bd9591536 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 17 Sep 2024 09:59:31 -0700
Subject: [PATCH 2/2] ooo-file-unreg.c: Include poll.h instead of sys/poll.h
This fixes a warning e.g.
In file included from ooo-file-unreg.c:12:
/mnt/b/yoe/master/build/tmp/work/riscv32-yoe-linux-musl/liburing/2.7/recipe-sysroot/usr/include/sys/poll.h:1:2: warning: redirecting incorrect #include <sys/poll.h> to <poll.h> [-W#warnings]
1 | #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
| ^
1 warning generated.
Upstream-Status: Submitted [https://github.com/axboe/liburing/pull/1233]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
test/ooo-file-unreg.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/ooo-file-unreg.c b/test/ooo-file-unreg.c
index d76e0fb..dd6ea55 100644
--- a/test/ooo-file-unreg.c
+++ b/test/ooo-file-unreg.c
@@ -9,7 +9,7 @@
#include <sys/socket.h>
#include <unistd.h>
#include <stdlib.h>
-#include <sys/poll.h>
+#include <poll.h>
#include "liburing.h"
#include "helpers.h"

View File

@ -9,8 +9,11 @@ SECTION = "libs"
LICENSE = "LGPL-2.1-only | MIT"
LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=2b0e9926530c269f5ae95560370195af"
SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https"
SRCREV = "f7dcc1ea60819475dffd3a45059e16f04381bee7"
SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https \
file://0001-test-Compile-nolibc.c-only-when-CONFIG_NOLIBC-is-set.patch \
file://0001-test-Drop-including-error.h-header.patch \
file://0002-ooo-file-unreg.c-Include-poll.h-instead-of-sys-poll..patch"
SRCREV = "5227d48b28ad8671e61d444b72678da584d2e6c3"
S = "${WORKDIR}/git"
@ -19,10 +22,11 @@ XCFLAGS = "-pthread"
XCFLAGS:append:libc-musl = " -lucontext"
USELIBC = ""
# clang-18 on RV64 emits memset for arch/riscv64/syscall.h provided __do_syscall4 macro
# clang-18+ on RV64 emits memset for arch/riscv64/syscall.h provided __do_syscall4 macro
# this does not happen for gcc or older clang, so link with libc since we need memset API
# -fno-builtin-memset does not help
USELIBC:riscv64:toolchain-clang = "--use-libc"
USELIBC:riscv32 = "--use-libc"
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'"
do_configure() {
${S}/configure --prefix=${prefix} --libdir=${libdir} --libdevdir=${libdir} --mandir=${mandir} --datadir=${datadir} --includedir=${includedir} ${USELIBC}