summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-02-07 03:56:24 +0000
committerSam James <sam@gentoo.org>2022-02-07 04:00:57 +0000
commit1d8718303b00e24d21ce70a6891a096e89c96f1d (patch)
tree012047d7737b3c3cd68b2b99375e0c89d2acc2dc /sys-libs/libucontext/libucontext-1.1-r1.ebuild
parentdev-libs/libgamin: fix musl build (diff)
downloadgentoo-1d8718303b00e24d21ce70a6891a096e89c96f1d.tar.gz
gentoo-1d8718303b00e24d21ce70a6891a096e89c96f1d.tar.bz2
gentoo-1d8718303b00e24d21ce70a6891a096e89c96f1d.zip
sys-libs/libucontext: respect CFLAGS without overriding upstream define
Fixes musl runtime as the right symbols get defined now (unprefixed). Bug: https://github.com/rui314/mold/issues/281 Bug: https://bugs.gentoo.org/832700 Closes: https://bugs.gentoo.org/832677 Thanks-to: Andrew Athalye <andrewathalye@outlook.com> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-libs/libucontext/libucontext-1.1-r1.ebuild')
-rw-r--r--sys-libs/libucontext/libucontext-1.1-r1.ebuild55
1 files changed, 55 insertions, 0 deletions
diff --git a/sys-libs/libucontext/libucontext-1.1-r1.ebuild b/sys-libs/libucontext/libucontext-1.1-r1.ebuild
new file mode 100644
index 000000000000..cf76cfa1a756
--- /dev/null
+++ b/sys-libs/libucontext/libucontext-1.1-r1.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="ucontext implementation featuring glibc-compatible ABI"
+HOMEPAGE="https://github.com/kaniini/libucontext"
+SRC_URI="https://github.com/kaniini/libucontext/archive/refs/tags/${P}.tar.gz"
+S="${WORKDIR}"/${PN}-${P}
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+man"
+
+BDEPEND="man? ( app-text/scdoc )"
+
+# segfault needs investigation
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.1-respect-CFLAGS.patch
+)
+
+src_compile() {
+ tc-export AR CC
+
+ local arch
+
+ # Override arch detection
+ # https://github.com/kaniini/libucontext/blob/master/Makefile#L3
+ if use x86 ; then
+ arch="x86"
+ elif use arm ; then
+ arch="arm"
+ elif use arm64 ; then
+ arch="aarch64"
+ elif use ppc64 ; then
+ arch="ppc64"
+ else
+ arch="$(uname -m)"
+ fi
+
+ emake ARCH="${arch}" LDFLAGS="${LDFLAGS}" all $(usev man 'docs')
+}
+
+src_test() {
+ emake LDFLAGS="${LDFLAGS}" check
+}
+
+src_install() {
+ emake DESTDIR="${ED}" LIBDIR="/usr/$(get_libdir)" install $(usev man 'install_docs')
+}