From d27bf0b122aa71636faae9819fd78acf74cdba7b Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sun, 31 Oct 2021 12:07:55 -0700 Subject: liburing: Use libc mmap() wrapper instead of calling __NR_mmap syscall directly Fixes build on arm and rv32 Signed-off-by: Khem Raj Cc: Oleksandr Kravchuk --- ...scall-wrappers-instead-of-using-syscall-2.patch | 59 ++++++++++++++++++++++ meta-oe/recipes-support/liburing/liburing_2.1.bb | 4 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch diff --git a/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch b/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch new file mode 100644 index 0000000000..2777a94045 --- /dev/null +++ b/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch @@ -0,0 +1,59 @@ +From cb350a8989adbd65db574325d9a86d5437d800da Mon Sep 17 00:00:00 2001 +From: Guillem Jover +Date: Mon, 13 Sep 2021 23:56:08 +0200 +Subject: [PATCH] test: Use syscall wrappers instead of using syscall(2) directly + +Some of these syscalls have different entry points depending on the +architecture. Use the wrappers to avoid having to reimplement them +portably. + +Fixes build failures on Debian armel and armhf builds. + +Upstream-Status: Backport [https://github.com/kraj/liburing/commit/cb350a8989adbd65db574325d9a86d5437d800da] +Signed-off-by: Guillem Jover +--- + test/sqpoll-cancel-hang.c | 7 ++----- + 1 file changed, 2 insertions(+), 5 deletions(-) + +diff --git a/test/sqpoll-cancel-hang.c b/test/sqpoll-cancel-hang.c +index c9032c8..e561478 100644 +--- a/test/sqpoll-cancel-hang.c ++++ b/test/sqpoll-cancel-hang.c +@@ -4,7 +4,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -29,8 +28,6 @@ static uint64_t current_time_ms(void) + + #define IORING_OFF_SQES 0x10000000ULL + +-#define sys_io_uring_setup 425 +- + static void kill_and_wait(int pid, int* status) + { + kill(-pid, SIGKILL); +@@ -53,7 +50,7 @@ a5) + void* vma2 = (void*)a3; + void** ring_ptr_out = (void**)a4; + void** sqes_ptr_out = (void**)a5; +- uint32_t fd_io_uring = syscall(sys_io_uring_setup, entries, setup_params); ++ uint32_t fd_io_uring = __sys_io_uring_setup(entries, setup_params); + uint32_t sq_ring_sz = setup_params->sq_off.array + + setup_params->sq_entries * sizeof(uint32_t); + uint32_t cq_ring_sz = setup_params->cq_off.cqes + +@@ -135,7 +132,7 @@ void trigger_bug(void) + } + int main(void) + { +- syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul); ++ mmap((void *)0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul); + int pid = fork(); + if (pid < 0) + exit(1); +-- +2.33.1 + diff --git a/meta-oe/recipes-support/liburing/liburing_2.1.bb b/meta-oe/recipes-support/liburing/liburing_2.1.bb index b4f0b11f4e..f519bf2363 100644 --- a/meta-oe/recipes-support/liburing/liburing_2.1.bb +++ b/meta-oe/recipes-support/liburing/liburing_2.1.bb @@ -9,7 +9,9 @@ SECTION = "libs" LICENSE = "LGPLv2.1 | MIT" LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=d51b5805e2a675685e6a66ca50904cf9" -SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https" +SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https \ + file://0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch \ + " SRC_URI:append:libc-musl:riscv64 = " file://0001-do-not-build-examples.patch " SRC_URI:append:libc-musl:riscv32 = " file://0001-do-not-build-examples.patch " SRCREV = "41a61c97c2e3df4475c93fdf5026d575ce3f1377" -- cgit 1.2.3-korg