summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZ. Liu <zhixu.liu@gmail.com>2025-01-27 01:57:39 +0800
committerSam James <sam@gentoo.org>2025-01-29 22:47:26 +0000
commita4aa03f192a3b51ffce6e540220c3b466d3381ae (patch)
treeb81d4f8d9752b528cdcda6fe11155f66487b97ba /dev-libs
parentmedia-libs/fontconfig: add TODO for fontations (rust) (diff)
downloadgentoo-a4aa03f192a3b51ffce6e540220c3b466d3381ae.tar.gz
gentoo-a4aa03f192a3b51ffce6e540220c3b466d3381ae.tar.bz2
gentoo-a4aa03f192a3b51ffce6e540220c3b466d3381ae.zip
dev-libs/elfutils: fix build failed w/ musl
error() is available in glibc, not in musl, configure check header file "error.h" only. If sys-libs/error-standalone is installed, check report ok, but link will fail because no "-lerror". So update configure.ac to check both error.h exist and can be linked without any extra "-l...", if not then fallback to err.h which cause built-in error() to be used. Closes: https://bugs.gentoo.org/948878 Signed-off-by: Z. Liu <zhixu.liu@gmail.com> Signed-off-by: Alfred Wingate <parona@protonmail.com> Closes: https://github.com/gentoo/gentoo/pull/40322 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/elfutils/elfutils-0.191-r2.ebuild3
-rw-r--r--dev-libs/elfutils/elfutils-0.192-r1.ebuild3
-rw-r--r--dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch32
3 files changed, 36 insertions, 2 deletions
diff --git a/dev-libs/elfutils/elfutils-0.191-r2.ebuild b/dev-libs/elfutils/elfutils-0.191-r2.ebuild
index ea40e46c2a43..59c2bad3f81f 100644
--- a/dev-libs/elfutils/elfutils-0.191-r2.ebuild
+++ b/dev-libs/elfutils/elfutils-0.191-r2.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Gentoo Authors
+# Copyright 2003-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -65,6 +65,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-0.189-musl-aarch64-regs.patch
"${FILESDIR}"/${PN}-0.191-musl-macros.patch
"${FILESDIR}"/${PN}-0.191-avoid-overriding-libcxx-system-header.patch
+ "${FILESDIR}"/${PN}-0.191-musl-configure-better-error-h-check.patch
)
src_prepare() {
diff --git a/dev-libs/elfutils/elfutils-0.192-r1.ebuild b/dev-libs/elfutils/elfutils-0.192-r1.ebuild
index 66caa21ab476..531729129380 100644
--- a/dev-libs/elfutils/elfutils-0.192-r1.ebuild
+++ b/dev-libs/elfutils/elfutils-0.192-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Gentoo Authors
+# Copyright 2003-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -68,6 +68,7 @@ PATCHES=(
"${FILESDIR}"/${P}-libelf-static-link-libeu.patch
"${FILESDIR}"/${P}-configure-better-error-message.patch
"${FILESDIR}"/${P}-stacktrace-maybe-uninit.patch
+ "${FILESDIR}"/${PN}-0.191-musl-configure-better-error-h-check.patch
)
src_prepare() {
diff --git a/dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch b/dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch
new file mode 100644
index 000000000000..bdadcbb25d7e
--- /dev/null
+++ b/dev-libs/elfutils/files/elfutils-0.191-musl-configure-better-error-h-check.patch
@@ -0,0 +1,32 @@
+From 43ddbe073025fe2ff454dabb84674ccdbd013487 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Wed, 29 Jan 2025 09:32:49 +0200
+Subject: [PATCH] Declare HAVE_ERROR_H only if error symbol is available
+
+Musl doesn't provide error.h. But there exists a standalone implementation
+that installs /usr/include/error.h but requires explicit linkage. This
+leads linkage errors later on due to the assumption that error
+symbols are provided by the libc.
+
+Bug: https://bugs.gentoo.org/948878
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1da2a12c..7a2f2540 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -477,7 +477,7 @@ AC_CHECK_FUNCS([process_vm_readv mremap])
+ AS_IF([test "x$ac_cv_func_mremap" = "xno"],
+ [AC_MSG_WARN([elf_update needs mremap to support ELF_C_RDWR_MMAP])])
+
+-AC_CHECK_HEADERS([error.h])
++AC_CHECK_HEADER([error.h], [AC_CHECK_FUNC([error], AC_DEFINE([HAVE_ERROR_H], [1], [Define if error.h is usable]))])
+ AC_CHECK_HEADERS([err.h])
+
+ dnl for debuginfod concurrency heuristics
+--
+2.48.1
+