sys-libs/liburing: Sync with Gentoo

It's from Gentoo commit 25c754248c86b71962eaf1f9aa363c1fac5f12d2.
This commit is contained in:
Flatcar Buildbot 2024-01-01 07:15:56 +00:00 committed by Krzesimir Nowak
parent a2e442dad4
commit abfb448fa4
6 changed files with 328 additions and 0 deletions

View File

@ -2,3 +2,4 @@ DIST liburing-2.1.tar.bz2 120806 BLAKE2B 3a09d1504150ed1c111f064187d868fd86ec7c3
DIST liburing-2.2.tar.bz2 172733 BLAKE2B 19ae8a356e4fdc296bfb3ff121b777bd7c970388b31686aac5c531508e807360d58220bc27f9c62c55bd76ca687013acfceb3fa8a2162b615561f637cc50ffe1 SHA512 55b935a90c108be54393a5ab341b56e40ad8d506360fe15b3dcde5ee263356f11080f8614efdc4253f6318ea35d808ec47a9dbfc6b9f6cc2e04f7f1a75c3f621
DIST liburing-2.3.tar.bz2 197929 BLAKE2B 94ae2a79522fbac13c071ad752f5cbfae3e3b3dd6b35da24e5c756ba47a7b304e5bcb18391ca23fc2edafeb2dbcdcf143fd2cda71656396ac34248159a964fb7 SHA512 341aa13d3b560617f3710291945ec2fe35d828e0b67ee3a97555fd4eb3d2042a7f9e722080d8ebb45aa74a2ca4ef58db1e8a10c351e951a604da007ba69d2738
DIST liburing-2.4.tar.bz2 213774 BLAKE2B 3e6c28842db6ee10e38df297e392803e0ff40ccfea774b2c473ba63b5583e760371bf0ce8e34ca4311e2bef69eee81b2b50b5e906bb328d5b321488136fc61e0 SHA512 45b5123739280835c88c1addcf99a3210a91c6e1b3e0c5a20fd4cf3ff55db5fd1475b0351806be2e86fedfa313200eecac6a9a6f410a9eca7e451081fd8eec96
DIST liburing-2.5.tar.bz2 217397 BLAKE2B cb5d0a61bc8ce5a92a1b581c5411938146a84c365598454ac8bac7ba0d7429e20a5a608cb725619cbf8b77570b2d638fc347fd9ee9cb1456361957a2a4d6e6d6 SHA512 cba62acde52c07185ade0ac0fee6bf3845f5677d061b52d179c6341a62f8581d4f8920fc09d27a3723bc3832bc84dd5475d173427ee5d8a063d079b07af96416

View File

@ -0,0 +1,26 @@
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;

View File

@ -0,0 +1,43 @@
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"

View File

@ -0,0 +1,87 @@
# Copyright 1999-2023 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 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
QA_PKGCONFIG_VERSION=${PV}
fi
LICENSE="MIT"
SLOT="0/2" # liburing.so major version
IUSE="examples static-libs test"
# fsync test hangs forever
RESTRICT="!test? ( test )"
# At least installed headers need <linux/*>, bug #802516
DEPEND=">=sys-kernel/linux-headers-5.1"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-lld-17.patch
)
src_prepare() {
default
if ! use examples; then
sed -e '/examples/d' Makefile -i || die
fi
if ! use test; then
sed -e '/test/d' Makefile -i || 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() {
local disabled_tests=(
accept.c
fpos.c
io_uring_register.c
link-timeout.c
read-before-exit.c
recv-msgall-stream.c
)
local disabled_test
for disabled_test in "${disabled_tests[@]}"; do
sed -i "/\s*${disabled_test}/d" test/Makefile \
|| die "Failed to remove ${disabled_test}"
done
emake -C test V=1 runtests
}

View File

@ -0,0 +1,88 @@
# Copyright 1999-2023 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 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
QA_PKGCONFIG_VERSION=${PV}
fi
LICENSE="MIT"
SLOT="0/2" # liburing.so major version
IUSE="examples static-libs test"
# fsync test hangs forever
RESTRICT="!test? ( test )"
# At least installed headers need <linux/*>, bug #802516
DEPEND=">=sys-kernel/linux-headers-5.1"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-lld-17.patch
"${FILESDIR}"/${P}-print-libgcc-file-name.patch
)
src_prepare() {
default
if ! use examples; then
sed -e '/examples/d' Makefile -i || die
fi
if ! use test; then
sed -e '/test/d' Makefile -i || 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() {
local disabled_tests=(
accept.c
fpos.c
io_uring_register.c
link-timeout.c
read-before-exit.c
recv-msgall-stream.c
)
local disabled_test
for disabled_test in "${disabled_tests[@]}"; do
sed -i "/\s*${disabled_test}/d" test/Makefile \
|| die "Failed to remove ${disabled_test}"
done
emake -C test V=1 runtests
}

View File

@ -0,0 +1,83 @@
# Copyright 1999-2023 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 ~ia64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
QA_PKGCONFIG_VERSION=${PV}
fi
LICENSE="MIT"
SLOT="0/2" # liburing.so major version
IUSE="examples static-libs test"
# fsync test hangs forever
RESTRICT="!test? ( test )"
# At least installed headers need <linux/*>, bug #802516
DEPEND=">=sys-kernel/linux-headers-5.1"
RDEPEND="${DEPEND}"
src_prepare() {
default
if ! use examples; then
sed -e '/examples/d' Makefile -i || die
fi
if ! use test; then
sed -e '/test/d' Makefile -i || 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() {
local disabled_tests=(
accept.c
fpos.c
io_uring_register.c
link-timeout.c
read-before-exit.c
recv-msgall-stream.c
)
local disabled_test
for disabled_test in "${disabled_tests[@]}"; do
sed -i "/\s*${disabled_test}/d" test/Makefile \
|| die "Failed to remove ${disabled_test}"
done
emake -C test V=1 runtests
}