commit:     f7a25164f606a8b12dac5f144057d3d53c74f1ad
Author:     Violet Purcell <vimproved <AT> inventati <DOT> org>
AuthorDate: Mon Feb 13 04:04:04 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Feb 13 04:23:36 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f7a25164

app-crypt/libmd: Backport Clang 16 configure fix

Closes: https://bugs.gentoo.org/894010
Signed-off-by: Violet Purcell <vimproved <AT> inventati.org>
Closes: https://github.com/gentoo/gentoo/pull/29565
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...x-version-script-linker-support-detection.patch | 38 ++++++++++++++++++++++
 app-crypt/libmd/libmd-1.0.4.ebuild                 | 13 +++++++-
 2 files changed, 50 insertions(+), 1 deletion(-)

diff --git 
a/app-crypt/libmd/files/libmd-1.0.4-fix-version-script-linker-support-detection.patch
 
b/app-crypt/libmd/files/libmd-1.0.4-fix-version-script-linker-support-detection.patch
new file mode 100644
index 000000000000..bcee3a06611f
--- /dev/null
+++ 
b/app-crypt/libmd/files/libmd-1.0.4-fix-version-script-linker-support-detection.patch
@@ -0,0 +1,38 @@
+From e408786075b9540f76783f5c3ce87f6d1ece13cf Mon Sep 17 00:00:00 2001
+From: Guillem Jover <[email protected]>
+Date: Sun, 12 Feb 2023 23:55:09 +0100
+Subject: [PATCH] build: Fix version script linker support detection
+
+When the linker uses --no-undefined-version either specified by the user
+or as the default behavior (such as with newer clang >= 16 releases), a 
missing symbol definition will cause a linker error if that symbol is
+listed in the version script.
+
+
+Bug: https://bugs.gentoo.org/894010
+Upstream issue: https://gitlab.freedesktop.org/libbsd/libmd/-/issues/1
+Upstream commit: 
https://gitlab.freedesktop.org/libbsd/libmd/-/commit/e408786075b9540f76783f5c3ce87f6d1ece13cf
+
+---
+ m4/libmd-linker.m4 | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/m4/libmd-linker.m4 b/m4/libmd-linker.m4
+index 7d1236a..3d6edcd 100644
+--- a/m4/libmd-linker.m4
++++ b/m4/libmd-linker.m4
+@@ -8,7 +8,11 @@ AC_DEFUN([LIBMD_LINKER_VERSION_SCRIPT], [
+     save_LDFLAGS=$LDFLAGS
+     LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+     AC_LINK_IFELSE([
+-      AC_LANG_PROGRAM([], [])
++      AC_LANG_PROGRAM([[
++extern int symbol(void);
++int symbol(void) { return 0; }
++]], [[
++]])
+     ], [
+       libmd_cv_version_script=yes
+     ], [
+-- 
+GitLab
+

diff --git a/app-crypt/libmd/libmd-1.0.4.ebuild 
b/app-crypt/libmd/libmd-1.0.4.ebuild
index 95989a9ac9f9..62869ee7db54 100644
--- a/app-crypt/libmd/libmd-1.0.4.ebuild
+++ b/app-crypt/libmd/libmd-1.0.4.ebuild
@@ -3,7 +3,7 @@
 
 EAPI=8
 
-inherit multilib-minimal
+inherit autotools multilib-minimal
 
 DESCRIPTION="Message Digest functions from BSD systems"
 HOMEPAGE="https://www.hadrons.org/software/libmd/";
@@ -13,6 +13,17 @@ LICENSE="|| ( BSD BSD-2 ISC BEER-WARE public-domain )"
 SLOT="0"
 KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 
~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux"
 
+PATCHES=(
+       "${FILESDIR}/${P}-fix-version-script-linker-support-detection.patch"
+)
+
+src_prepare() {
+       default
+
+       # Drop on next release, only needed for lld patch
+       eautoreconf
+}
+
 multilib_src_configure() {
        ECONF_SOURCE="${S}" econf
 }

Reply via email to