diff --git a/0001-examples-ucontext-cp.c-cope-with-variable-SIGSTKSZ.patch b/0001-examples-ucontext-cp.c-cope-with-variable-SIGSTKSZ.patch deleted file mode 100644 index b821d4e..0000000 --- a/0001-examples-ucontext-cp.c-cope-with-variable-SIGSTKSZ.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 8aac320ae8445c5434ab3be1761414a5247e5d42 Mon Sep 17 00:00:00 2001 -From: Stefan Hajnoczi -Date: Tue, 13 Apr 2021 16:03:19 +0100 -Subject: examples/ucontext-cp.c: cope with variable SIGSTKSZ -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The size of C arrays at file scope must be constant. The following -compiler error occurs with recent upstream glibc (2.33.9000): - - CC ucontext-cp - ucontext-cp.c:31:23: error: variably modified ‘stack_buf’ at file scope - 31 | unsigned char stack_buf[SIGSTKSZ]; - | ^~~~~~~~~ - make[1]: *** [Makefile:26: ucontext-cp] Error 1 - -The following glibc commit changed SIGSTKSZ from a constant value to a -variable: - - commit 6c57d320484988e87e446e2e60ce42816bf51d53 - Author: H.J. Lu - Date: Mon Feb 1 11:00:38 2021 -0800 - - sysconf: Add _SC_MINSIGSTKSZ/_SC_SIGSTKSZ [BZ #20305] - ... - +# define SIGSTKSZ sysconf (_SC_SIGSTKSZ) - -Allocate the stack buffer explicitly to avoid declaring an array at file -scope. - -Cc: H.J. Lu -Signed-off-by: Stefan Hajnoczi -Signed-off-by: Jens Axboe ---- - examples/ucontext-cp.c | 12 +++++++++--- - 1 file changed, 9 insertions(+), 3 deletions(-) - -diff --git a/examples/ucontext-cp.c b/examples/ucontext-cp.c -index 0b2a6b5..ea0c934 100644 ---- a/examples/ucontext-cp.c -+++ b/examples/ucontext-cp.c -@@ -28,7 +28,7 @@ - - typedef struct { - struct io_uring *ring; -- unsigned char stack_buf[SIGSTKSZ]; -+ unsigned char *stack_buf; - ucontext_t ctx_main, ctx_fnew; - } async_context; - -@@ -115,8 +115,13 @@ static int setup_context(async_context *pctx, struct io_uring *ring) - perror("getcontext"); - return -1; - } -- pctx->ctx_fnew.uc_stack.ss_sp = &pctx->stack_buf; -- pctx->ctx_fnew.uc_stack.ss_size = sizeof(pctx->stack_buf); -+ pctx->stack_buf = malloc(SIGSTKSZ); -+ if (!pctx->stack_buf) { -+ perror("malloc"); -+ return -1; -+ } -+ pctx->ctx_fnew.uc_stack.ss_sp = pctx->stack_buf; -+ pctx->ctx_fnew.uc_stack.ss_size = SIGSTKSZ; - pctx->ctx_fnew.uc_link = &pctx->ctx_main; - - return 0; -@@ -174,6 +179,7 @@ static void copy_file_wrapper(arguments_bundle *pbundle) - free(iov.iov_base); - close(pbundle->infd); - close(pbundle->outfd); -+ free(pbundle->pctx->stack_buf); - free(pbundle->pctx); - free(pbundle); - --- -cgit v1.2.3 diff --git a/liburing-0.7.tar.gz b/liburing-0.7.tar.gz deleted file mode 100644 index 0310877..0000000 Binary files a/liburing-0.7.tar.gz and /dev/null differ diff --git a/liburing-2.3.tar.gz b/liburing-2.3.tar.gz new file mode 100644 index 0000000..3f1cef2 Binary files /dev/null and b/liburing-2.3.tar.gz differ diff --git a/liburing-Add-sw64-architecture.patch b/liburing-Add-sw64-architecture.patch index 1eca2a1..74e3e54 100644 --- a/liburing-Add-sw64-architecture.patch +++ b/liburing-Add-sw64-architecture.patch @@ -1,38 +1,42 @@ -From d09c9df44e060a648640738bbb12f74f84437643 Mon Sep 17 00:00:00 2001 +From 10500de05b6fdb5c39351d8ad704f4eb25e5074c Mon Sep 17 00:00:00 2001 From: wzx Date: Thu, 10 Nov 2022 14:47:45 +0800 Subject: [PATCH] Add sw64 architecture -Add sw64 architecture in src/syscall.c to support sw64 architecture. +Add sw64 architecture in src/include/liburing.h to support sw64 architecture. + +Conflict: liburing v2.3 move the support of architectures to src/include/liburing.h, +moving the counterpart to that place. Signed-off-by: wzx +Signed-off-by: lihaoxiang --- - src/syscall.c | 12 +++++++++++- + src/include/liburing.h | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) -diff --git a/src/syscall.c b/src/syscall.c -index c41e099..ea7a69f 100644 ---- a/src/syscall.c -+++ b/src/syscall.c -@@ -24,7 +24,17 @@ - # ifndef __NR_io_uring_register - # define __NR_io_uring_register 537 - # endif --#else /* !__alpha__ */ +diff --git a/src/include/liburing.h b/src/include/liburing.h +index 12a703f..3de0b78 100644 +--- a/src/include/liburing.h ++++ b/src/include/liburing.h +@@ -57,7 +57,17 @@ + #ifndef __NR_io_uring_register + #define __NR_io_uring_register (__NR_Linux + 427) + #endif +-#else /* !__alpha__ and !__mips__ */ +#elif defined __sw_64__ -+# ifndef __NR_io_uring_setup -+# define __NR_io_uring_setup 272 -+# endif -+# ifndef __NR_io_uring_enter -+# define __NR_io_uring_enter 273 -+# endif -+# ifndef __NR_io_uring_register -+# define __NR_io_uring_register 274 -+# endif -+#else /* !__alpha__ && !__sw_64__*/ - # ifndef __NR_io_uring_setup - # define __NR_io_uring_setup 425 - # endif ++#ifndef __NR_io_uring_setup ++#define __NR_io_uring_setup 272 ++#endif ++#ifndef __NR_io_uring_enter ++#define __NR_io_uring_enter 273 ++#endif ++#ifndef __NR_io_uring_register ++#define __NR_io_uring_register 274 ++#endif ++#else /* !__alpha__ and !__mips__ and !__sw_64__ */ + #ifndef __NR_io_uring_setup + #define __NR_io_uring_setup 425 + #endif -- -2.33.0 +1.8.3.1 diff --git a/liburing.spec b/liburing.spec index 8ae843d..0857e2a 100644 --- a/liburing.spec +++ b/liburing.spec @@ -1,14 +1,15 @@ Name: liburing -Version: 0.7 -Release: 3 +Version: 2.3 +Release: 1 Summary: Linux-native io_uring I/O access library License: (GPLv2 with exceptions and LGPLv2+) or MIT Source0: https://brick.kernel.dk/snaps/%{name}-%{version}.tar.gz URL: https://git.kernel.dk/cgit/liburing/ BuildRequires: gcc +BuildRequires: g++ +BuildRequires: make -Patch1: 0001-examples-ucontext-cp.c-cope-with-variable-SIGSTKSZ.patch -Patch2: liburing-Add-sw64-architecture.patch +Patch1: liburing-Add-sw64-architecture.patch %description Provides native async IO for the Linux kernel, in a fast and efficient @@ -46,8 +47,13 @@ for the Linux-native io_uring. %exclude %{_libdir}/liburing.a %{_libdir}/pkgconfig/* %{_mandir}/man2/* +%{_mandir}/man3/* +%{_mandir}/man7/* %changelog +* Mon Dec 12 2022 lihaoxiang - 2.3-1 +- upgrade to liburing v2.3 + * Fri Oct 21 2022 wuzx - 0.7-3 - add sw64 patch