summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJory Pratt <anarchy@gentoo.org>2021-03-12 09:06:33 -0600
committerJory Pratt <anarchy@gentoo.org>2021-03-12 09:06:47 -0600
commita76defdd03f53949133c2a18dec2ec2b8aa07ef6 (patch)
tree999654075c168f28db77a0cdaa520a80dc1a3d53 /sys-libs/liburing
parentwww-client/qutebrowser: verbump to 2.1.0 (diff)
downloadgentoo-a76defdd03f53949133c2a18dec2ec2b8aa07ef6.tar.gz
gentoo-a76defdd03f53949133c2a18dec2ec2b8aa07ef6.tar.bz2
gentoo-a76defdd03f53949133c2a18dec2ec2b8aa07ef6.zip
sys-libs/liburing: add support to detect ucontext.h
Closes: https://bugs.gentoo.org/713528 Closes: https://github.com/gentoo/musl/issues/379 Package-Manager: Portage-3.0.17, Repoman-3.0.2 Signed-off-by: Jory Pratt <anarchy@gentoo.org>
Diffstat (limited to 'sys-libs/liburing')
-rw-r--r--sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch72
-rw-r--r--sys-libs/liburing/liburing-0.7-r1.ebuild6
2 files changed, 77 insertions, 1 deletions
diff --git a/sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch b/sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch
new file mode 100644
index 000000000000..24b847d919df
--- /dev/null
+++ b/sys-libs/liburing/files/liburing-0.7-ucontext_h-detection.patch
@@ -0,0 +1,72 @@
+From 1cf969dfcba797a02d74540965677b92d3884cfa Mon Sep 17 00:00:00 2001
+From: Simon Zeni <simon@bl4ckb0ne.ca>
+Date: Tue, 27 Oct 2020 22:31:21 -0400
+Subject: [PATCH] examples: disable ucontext-cp if ucontext.h is not available
+
+The header file `ucontext.h` is not available on musl based distros. The
+example `ucontext-cp` is not built if `configure` fails to locate the
+header.
+
+Signed-off-by: Simon Zeni <simon@bl4ckb0ne.ca>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+---
+ configure | 21 +++++++++++++++++++++
+ examples/Makefile | 6 +++++-
+ 2 files changed, 26 insertions(+), 1 deletion(-)
+
+diff --git a/configure b/configure
+index c911f59..3b96cde 100755
+--- a/configure
++++ b/configure
+@@ -287,6 +287,24 @@ if compile_prog_cxx "" "" "C++"; then
+ fi
+ print_config "C++" "$has_cxx"
+
++##########################################
++# check for ucontext support
++has_ucontext="no"
++cat > $TMPC << EOF
++#include <ucontext.h>
++int main(int argc, char **argv)
++{
++ ucontext_t ctx;
++ getcontext(&ctx);
++ return 0;
++}
++EOF
++if compile_prog "" "" "has_ucontext"; then
++ has_ucontext="yes"
++fi
++print_config "has_ucontext" "$has_ucontext"
++
++
+ #############################################################################
+
+ if test "$__kernel_rwf_t" = "yes"; then
+@@ -304,6 +322,9 @@ fi
+ if test "$has_cxx" = "yes"; then
+ output_sym "CONFIG_HAVE_CXX"
+ fi
++if test "$has_ucontext" = "yes"; then
++ output_sym "CONFIG_HAVE_UCONTEXT"
++fi
+
+ echo "CC=$cc" >> $config_host_mak
+ print_config "CC" "$cc"
+diff --git a/examples/Makefile b/examples/Makefile
+index 0eec627..60c1b71 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -10,7 +10,11 @@ ifneq ($(MAKECMDGOALS),clean)
+ include ../config-host.mak
+ endif
+
+-all_targets += io_uring-test io_uring-cp link-cp ucontext-cp
++all_targets += io_uring-test io_uring-cp link-cp
++
++ifdef CONFIG_HAVE_UCONTEXT
++all_targets += ucontext-cp
++endif
+
+ all: $(all_targets)
+
diff --git a/sys-libs/liburing/liburing-0.7-r1.ebuild b/sys-libs/liburing/liburing-0.7-r1.ebuild
index dc6b60760777..715212503eba 100644
--- a/sys-libs/liburing/liburing-0.7-r1.ebuild
+++ b/sys-libs/liburing/liburing-0.7-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -21,6 +21,10 @@ IUSE="static-libs"
# fsync test hangs forever
RESTRICT="test"
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.7-ucontext_h-detection.patch
+)
+
src_prepare() {
default
multilib_copy_sources