mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-27 08:31:04 +02:00
sys-libs/liburing: Sync with Gentoo
It's from Gentoo commit 9a630bb7b4e424d09bfef7436e34e6513c4bcbe2.
This commit is contained in:
parent
27e8857135
commit
5fcfbe4b69
@ -1,3 +1,2 @@
|
||||
DIST liburing-2.2.tar.bz2 172733 BLAKE2B 19ae8a356e4fdc296bfb3ff121b777bd7c970388b31686aac5c531508e807360d58220bc27f9c62c55bd76ca687013acfceb3fa8a2162b615561f637cc50ffe1 SHA512 55b935a90c108be54393a5ab341b56e40ad8d506360fe15b3dcde5ee263356f11080f8614efdc4253f6318ea35d808ec47a9dbfc6b9f6cc2e04f7f1a75c3f621
|
||||
DIST liburing-2.7.tar.bz2 252289 BLAKE2B dc04745d2eda04d7009a532fc77566804c34b77dcef512f17ef424e22bc1e1a31ba87c2a841bb5574b11c494641a3128005d6dfccf2b87d6c3888fe5cd887996 SHA512 ec6cf69cae2e7e448e9e338bcd616bf27522f6f0e4768bf80d246d6df8610df3accaddae1c135c31bca7814bc3b8214854c40b3f7137163c0950605c716793f1
|
||||
DIST liburing-2.8.tar.bz2 284202 BLAKE2B de1deaa8927b5f80a38195ef857fdb0d3dc5f7f57358fe319af42ec3d980bf4c20284d7726645e9c32bcb3e5d7d981540a52a35abb26394cbef03f88ab7c4248 SHA512 5822108aa771a34a4c3f008a0155e4f1fa9393499f24a1bce00aed7fab6e3b9e022b44f96479af0036295129db75d5062618fb4c48cef836e3155c604491e94d
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 19424b0baa5999918701e1972b901b0937331581 Mon Sep 17 00:00:00 2001
|
||||
From: Ammar Faizi <ammarfaizi2@gnuweeb.org>
|
||||
Date: Sat, 14 Jan 2023 10:54:05 +0700
|
||||
Subject: [PATCH] liburing.map: Export
|
||||
`io_uring_{enable_rings,register_restrictions}`
|
||||
|
||||
When adding these two functions, Stefano didn't add
|
||||
io_uring_enable_rings() and io_uring_register_restrictions() to
|
||||
liburing.map. It causes a linking problem. Add them to liburing.map.
|
||||
|
||||
This issue hits liburing 2.0 to 2.3.
|
||||
|
||||
[flow: backport to liburing 2.3]
|
||||
|
||||
Closes: https://github.com/axboe/liburing/pull/774
|
||||
Fixes: https://github.com/axboe/liburing/issues/773
|
||||
Fixes: https://github.com/facebook/folly/issues/1908
|
||||
Fixes: d2654b1ac886 ("Add helper to enable rings")
|
||||
Fixes: 25cf9b968a27 ("Add helper to register restrictions")
|
||||
Cc: Dylan Yudaken <dylany@meta.com>
|
||||
Cc: Stefano Garzarella <sgarzare@redhat.com>
|
||||
Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
|
||||
Link: https://lore.kernel.org/r/20230114035405.429608-1-ammar.faizi@intel.com
|
||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
--- a/src/liburing.map
|
||||
+++ b/src/liburing.map
|
||||
@@ -68,2 +68,5 @@ LIBURING_2.3 {
|
||||
io_uring_submit_and_get_events;
|
||||
+
|
||||
+ io_uring_enable_rings;
|
||||
+ io_uring_register_restrictions;
|
||||
} LIBURING_2.3;
|
||||
--
|
||||
2.39.1
|
||||
|
@ -1,150 +0,0 @@
|
||||
From 11dc64a71558948aef16730cb363e7e5da773a5b Mon Sep 17 00:00:00 2001
|
||||
From: Steffen <steffen.winter@proton.me>
|
||||
Date: Mon, 13 Feb 2023 17:32:16 +0100
|
||||
Subject: [PATCH 1/3] Add custom error function for tests.
|
||||
|
||||
On musl systems, liburing cannot build examples and tests due to
|
||||
it's usage of error.h. t_error calls fprintf(stderr, ...) and
|
||||
exits.
|
||||
|
||||
Closes: #786
|
||||
|
||||
Signed-off-by: Steffen Winter <steffen.winter@proton.me>
|
||||
--- a/test/helpers.c
|
||||
+++ b/test/helpers.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
+#include <stdarg.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
@@ -300,3 +301,20 @@ unsigned __io_uring_flush_sq(struct io_uring *ring)
|
||||
*/
|
||||
return tail - *sq->khead;
|
||||
}
|
||||
+
|
||||
+/*
|
||||
+ * Implementation of error(3), prints an error message and exits.
|
||||
+ */
|
||||
+void t_error(int status, int errnum, const char *format, ...)
|
||||
+{
|
||||
+ va_list args;
|
||||
+ va_start(args, format);
|
||||
+
|
||||
+ vfprintf(stderr, format, args);
|
||||
+ if (errnum)
|
||||
+ fprintf(stderr, ": %s", strerror(errnum));
|
||||
+
|
||||
+ fprintf(stderr, "\n");
|
||||
+ va_end(args);
|
||||
+ exit(status);
|
||||
+}
|
||||
--- a/test/helpers.h
|
||||
+++ b/test/helpers.h
|
||||
@@ -89,6 +89,8 @@ unsigned __io_uring_flush_sq(struct io_uring *ring);
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
|
||||
|
||||
+void t_error(int status, int errnum, const char *format, ...);
|
||||
+
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
From 3b0b4976d7da2e4616fe860fb7a8e52d88d4523b Mon Sep 17 00:00:00 2001
|
||||
From: Steffen <steffen.winter@proton.me>
|
||||
Date: Mon, 13 Feb 2023 17:56:03 +0100
|
||||
Subject: [PATCH 2/3] test: Use t_error instead of glibc's error.
|
||||
|
||||
On musl systems, liburing cannot build examples and tests due to
|
||||
it's usage of error.h. Replacing calls to error() with t_error().
|
||||
|
||||
Closes: #786
|
||||
|
||||
Signed-off-by: Steffen Winter <steffen.winter@proton.me>
|
||||
--- a/test/defer-taskrun.c
|
||||
+++ b/test/defer-taskrun.c
|
||||
@@ -4,7 +4,6 @@
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
-#include <error.h>
|
||||
#include <sys/eventfd.h>
|
||||
#include <signal.h>
|
||||
#include <poll.h>
|
||||
--- a/test/send-zerocopy.c
|
||||
+++ b/test/send-zerocopy.c
|
||||
@@ -4,7 +4,6 @@
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
-#include <error.h>
|
||||
#include <limits.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
--- a/test/single-issuer.c
|
||||
+++ b/test/single-issuer.c
|
||||
@@ -5,7 +5,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
-#include <error.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
@@ -56,13 +55,13 @@ static int try_submit(struct io_uring *ring)
|
||||
return ret;
|
||||
|
||||
if (ret != 1)
|
||||
- error(1, ret, "submit %i", ret);
|
||||
+ t_error(1, ret, "submit %i", ret);
|
||||
ret = io_uring_wait_cqe(ring, &cqe);
|
||||
if (ret)
|
||||
- error(1, ret, "wait fail %i", ret);
|
||||
+ t_error(1, ret, "wait fail %i", ret);
|
||||
|
||||
if (cqe->res || cqe->user_data != 42)
|
||||
- error(1, ret, "invalid cqe");
|
||||
+ t_error(1, ret, "invalid cqe");
|
||||
|
||||
io_uring_cqe_seen(ring, cqe);
|
||||
return 0;
|
||||
@@ -105,7 +104,7 @@ int main(int argc, char *argv[])
|
||||
ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER |
|
||||
IORING_SETUP_R_DISABLED);
|
||||
if (ret)
|
||||
- error(1, ret, "ring init (2) %i", ret);
|
||||
+ t_error(1, ret, "ring init (2) %i", ret);
|
||||
|
||||
if (!fork_t()) {
|
||||
io_uring_enable_rings(&ring);
|
||||
@@ -121,7 +120,7 @@ int main(int argc, char *argv[])
|
||||
ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER |
|
||||
IORING_SETUP_R_DISABLED);
|
||||
if (ret)
|
||||
- error(1, ret, "ring init (3) %i", ret);
|
||||
+ t_error(1, ret, "ring init (3) %i", ret);
|
||||
|
||||
io_uring_enable_rings(&ring);
|
||||
if (!fork_t()) {
|
||||
@@ -136,7 +135,7 @@ int main(int argc, char *argv[])
|
||||
/* test that anyone can submit to a SQPOLL|SINGLE_ISSUER ring */
|
||||
ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER|IORING_SETUP_SQPOLL);
|
||||
if (ret)
|
||||
- error(1, ret, "ring init (4) %i", ret);
|
||||
+ t_error(1, ret, "ring init (4) %i", ret);
|
||||
|
||||
ret = try_submit(&ring);
|
||||
if (ret) {
|
||||
@@ -156,7 +155,7 @@ int main(int argc, char *argv[])
|
||||
/* test that IORING_ENTER_REGISTERED_RING doesn't break anything */
|
||||
ret = io_uring_queue_init(8, &ring, IORING_SETUP_SINGLE_ISSUER);
|
||||
if (ret)
|
||||
- error(1, ret, "ring init (5) %i", ret);
|
||||
+ t_error(1, ret, "ring init (5) %i", ret);
|
||||
|
||||
if (!fork_t()) {
|
||||
ret = try_submit(&ring);
|
||||
|
@ -1,26 +0,0 @@
|
||||
https://bugs.gentoo.org/919780
|
||||
https://github.com/axboe/liburing/commit/92b21aa1b4ea98e322c5eca9db1d94b837f4be75
|
||||
|
||||
(Rebased.)
|
||||
|
||||
From 92b21aa1b4ea98e322c5eca9db1d94b837f4be75 Mon Sep 17 00:00:00 2001
|
||||
From: Jens Axboe <axboe@kernel.dk>
|
||||
Date: Mon, 11 Dec 2023 13:14:54 -0700
|
||||
Subject: [PATCH] Rename ffi io_uring_prep_sock_cmd _> io_uring_prep_cmd_sock()
|
||||
|
||||
The non-ffi versions already use this name, and to make this as painless
|
||||
as it can be, rename the ffi version even though it is technically
|
||||
the better one. The documentation also matches prep_cmd_sock().
|
||||
|
||||
Link: https://github.com/axboe/liburing/issues/1013
|
||||
Fixes: 2459fef09411 ("io_uring_prep_cmd: Create a new helper for command ops")
|
||||
Signed-off-by: Jens Axboe <axboe@kernel.dk>
|
||||
--- a/src/liburing-ffi.map
|
||||
+++ b/src/liburing-ffi.map
|
||||
@@ -179,5 +179,5 @@ LIBURING_2.4 {
|
||||
LIBURING_2.5 {
|
||||
global:
|
||||
io_uring_queue_init_mem;
|
||||
- io_uring_prep_sock_cmd;
|
||||
+ io_uring_prep_cmd_sock;
|
||||
} LIBURING_2.4;
|
@ -1,43 +0,0 @@
|
||||
From https://github.com/axboe/liburing/commit/09b8ded9686f33f1044ad8c612f2281b865cd314 Mon Sep 17 00:00:00 2001
|
||||
From: Violet Purcell <vimproved@inventati.org>
|
||||
Date: Sat, 16 Dec 2023 16:17:09 -0500
|
||||
Subject: [PATCH] Link against libgcc based on output of
|
||||
-print-libgcc-file-name
|
||||
|
||||
GCC and clang have the -print-libgcc-file-name option to automatically
|
||||
print out the correct compiler runtime library to link to. This can be
|
||||
helpful in case the runtime library is named something other than libgcc
|
||||
(i.e. on a system where only LLVM's compiler-rt is used), or if libgcc
|
||||
is in a non-standard directory. If the option fails for whatever reason,
|
||||
fall back to using "-lgcc".
|
||||
|
||||
Signed-off-by: Violet Purcell <vimproved@inventati.org>
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -202,6 +202,15 @@ print_and_output_mak "relativelibdir" "$relativelibdir"
|
||||
print_and_output_mak "mandir" "$mandir"
|
||||
print_and_output_mak "datadir" "$datadir"
|
||||
|
||||
+####################################################
|
||||
+# Check for correct compiler runtime library to link with
|
||||
+libgcc_link_flag="-lgcc"
|
||||
+if $cc -print-libgcc-file-name >/dev/null 2>&1; then
|
||||
+ libgcc_link_flag="$($cc $CFLAGS $LDFLAGS -print-libgcc-file-name)"
|
||||
+fi
|
||||
+print_and_output_mak "libgcc_link_flag" "$libgcc_link_flag"
|
||||
+####################################################
|
||||
+
|
||||
##########################################
|
||||
# check for compiler -Wstringop-overflow
|
||||
stringop_overflow="no"
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -47,7 +47,7 @@ ifeq ($(CONFIG_NOLIBC),y)
|
||||
liburing_srcs += nolibc.c
|
||||
override CFLAGS += -nostdlib -nodefaultlibs -ffreestanding -fno-builtin -fno-stack-protector
|
||||
override CPPFLAGS += -nostdlib -nodefaultlibs -ffreestanding -fno-builtin -fno-stack-protector
|
||||
- override LINK_FLAGS += -nostdlib -nodefaultlibs -lgcc
|
||||
+ override LINK_FLAGS += -nostdlib -nodefaultlibs $(libgcc_link_flag)
|
||||
endif
|
||||
|
||||
override CPPFLAGS += -MT "$@" -MMD -MP -MF "$@.d"
|
@ -1,67 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit multilib-minimal toolchain-funcs
|
||||
|
||||
DESCRIPTION="Efficient I/O with io_uring"
|
||||
HOMEPAGE="https://github.com/axboe/liburing"
|
||||
if [[ "${PV}" == *9999 ]] ; then
|
||||
inherit git-r3
|
||||
EGIT_REPO_URI="https://github.com/axboe/liburing.git"
|
||||
else
|
||||
SRC_URI="https://git.kernel.dk/cgit/${PN}/snapshot/${P}.tar.bz2"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ppc ppc64 ~riscv sparc x86"
|
||||
fi
|
||||
LICENSE="MIT"
|
||||
SLOT="0/2" # liburing.so major version
|
||||
|
||||
IUSE="static-libs"
|
||||
# fsync test hangs forever
|
||||
RESTRICT="test"
|
||||
|
||||
# At least installed headers need <linux/*>, bug #802516
|
||||
DEPEND=">=sys-kernel/linux-headers-5.1"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
if [[ "${PV}" != *9999 ]] ; then
|
||||
# Make sure pkgconfig files contain the correct version
|
||||
# bug #809095 and #833895
|
||||
sed -i "/^Version:/s@[[:digit:]\.]\+@${PV}@" ${PN}.spec || die
|
||||
fi
|
||||
|
||||
multilib_copy_sources
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--prefix="${EPREFIX}/usr"
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)"
|
||||
--libdevdir="${EPREFIX}/usr/$(get_libdir)"
|
||||
--mandir="${EPREFIX}/usr/share/man"
|
||||
--cc="$(tc-getCC)"
|
||||
--cxx="$(tc-getCXX)"
|
||||
)
|
||||
# No autotools configure! "econf" will fail.
|
||||
TMPDIR="${T}" ./configure "${myconf[@]}" || die
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
emake V=1 AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
einstalldocs
|
||||
|
||||
if ! use static-libs ; then
|
||||
find "${ED}" -type f -name "*.a" -delete || die
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
emake V=1 runtests
|
||||
}
|
@ -12,7 +12,7 @@ if [[ "${PV}" == *9999 ]] ; then
|
||||
EGIT_REPO_URI="https://github.com/axboe/liburing.git"
|
||||
else
|
||||
SRC_URI="https://git.kernel.dk/cgit/${PN}/snapshot/${P}.tar.bz2"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 sparc x86"
|
||||
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
|
||||
QA_PKGCONFIG_VERSION=${PV}
|
||||
fi
|
||||
LICENSE="MIT"
|
||||
|
Loading…
x
Reference in New Issue
Block a user