diff options
author | Sam James <sam@gentoo.org> | 2023-12-16 08:04:23 +0000 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-12-16 08:23:54 +0000 |
commit | 1d5c3a0c47948fc5ea7a26a8db9be37806668a41 (patch) | |
tree | b1dc0aa407b06d279a7171e8a2995cd3c18b813d /sys-libs/liburing | |
parent | x11-drivers/xf86-video-intel: filter LTO due to 'flatten' attribute (diff) | |
download | gentoo-1d5c3a0c47948fc5ea7a26a8db9be37806668a41.tar.gz gentoo-1d5c3a0c47948fc5ea7a26a8db9be37806668a41.tar.bz2 gentoo-1d5c3a0c47948fc5ea7a26a8db9be37806668a41.zip |
sys-libs/liburing: fix lld 17 build
Closes: https://bugs.gentoo.org/919780
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-libs/liburing')
-rw-r--r-- | sys-libs/liburing/files/liburing-2.5-lld-17.patch | 26 | ||||
-rw-r--r-- | sys-libs/liburing/liburing-2.5-r1.ebuild | 87 |
2 files changed, 113 insertions, 0 deletions
diff --git a/sys-libs/liburing/files/liburing-2.5-lld-17.patch b/sys-libs/liburing/files/liburing-2.5-lld-17.patch new file mode 100644 index 000000000000..1e31f94959b1 --- /dev/null +++ b/sys-libs/liburing/files/liburing-2.5-lld-17.patch @@ -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; diff --git a/sys-libs/liburing/liburing-2.5-r1.ebuild b/sys-libs/liburing/liburing-2.5-r1.ebuild new file mode 100644 index 000000000000..14dd58f7e6f6 --- /dev/null +++ b/sys-libs/liburing/liburing-2.5-r1.ebuild @@ -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 +} |