commit:     842c2e9bff302de882b067103e3abf20568e2ee8
Author:     Raul E Rangel <rrangel <AT> chromium <DOT> org>
AuthorDate: Thu May 18 18:32:34 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan 20 12:00:21 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=842c2e9b

dev-lang/perl: Fix clang check in configure

The check was a bit too strict. `clang` actually appears in the middle
of the version string. This change will allow perl to build correctly
when `gcc` isn't present on the system.

See: https://github.com/Perl/perl5/issues/21099
Signed-off-by: Raul E Rangel <rrangel <AT> chromium.org>
Closes: https://github.com/gentoo/gentoo/pull/32677
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../perl-5.36.0-fix-configure-for-clang.patch      | 41 ++++++++++++++++++++++
 dev-lang/perl/perl-5.36.1-r3.ebuild                |  4 +++
 dev-lang/perl/perl-5.38.0-r1.ebuild                |  4 +++
 dev-lang/perl/perl-5.38.2-r1.ebuild                |  4 +++
 4 files changed, 53 insertions(+)

diff --git a/dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch 
b/dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch
new file mode 100644
index 000000000000..3ad508c95f7e
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.36.0-fix-configure-for-clang.patch
@@ -0,0 +1,41 @@
+From 40db21129c0ba08ea457b6e40e7357e86ea1404b Mon Sep 17 00:00:00 2001
+From: Raul E Rangel <[email protected]>
+Date: Fri, 28 Jul 2023 15:50:49 -0600
+Subject: [PATCH] hints/linux: Add additional expression when matching clang
+
+Newer versions of clang actually print the distro before `clang` when
+calling `$CC --version`. This changes fixes the regex so it can match
+this new pattern.
+
+i.e.,
+
+       $ clang --version
+       Debian clang version 14.0.6
+
+       $ x86_64-pc-linux-gnu-clang --version
+       Chromium OS 17.0_pre496208_p20230501-r1 clang version 17.0.0
+
+Fixes #21099
+
+BUG=b:283275881
+See: https://github.com/Perl/perl5/issues/21099
+---
+ hints/linux.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/hints/linux.sh b/hints/linux.sh
+index e1508c7509..5202b28b09 100644
+--- a/hints/linux.sh
++++ b/hints/linux.sh
+@@ -166,7 +166,7 @@ esac
+ if [ -x /usr/bin/gcc ] ; then
+     gcc=/usr/bin/gcc
+ # clang also provides -print-search-dirs
+-elif ${cc:-cc} --version 2>/dev/null | grep -q '^clang ' ; then
++elif ${cc:-cc} --version 2>/dev/null | grep -q -e '^clang version' -e ' clang 
version'; then
+     gcc=${cc:-cc}
+ else
+     gcc=gcc
+-- 
+2.41.0.585.gd2178a4bd4-goog
+

diff --git a/dev-lang/perl/perl-5.36.1-r3.ebuild 
b/dev-lang/perl/perl-5.36.1-r3.ebuild
index 553ab9f76a38..277079bb9ef4 100644
--- a/dev-lang/perl/perl-5.36.1-r3.ebuild
+++ b/dev-lang/perl/perl-5.36.1-r3.ebuild
@@ -395,6 +395,10 @@ src_prepare() {
        add_patch "${FILESDIR}/${PN}-5.36.1-http-tiny.patch" 
"0111-5.36.1-http-tiny.patch"\
                        "Enable certificate checking in HTTP::Tiny by default"\
                        "https://bugs.gentoo.org/905296"; 
"https://bugs.debian.org/954089";
+       add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+                       "100-5.36.0-fix-configure-for-clang.patch" \
+                       "Fix clang check in configure" \
+                       "https://github.com/Perl/perl5/issues/21099";
 
        if [[ ${CHOST} == *-solaris* ]] ; then
                # do NOT mess with nsl, on Solaris this is always necessary,

diff --git a/dev-lang/perl/perl-5.38.0-r1.ebuild 
b/dev-lang/perl/perl-5.38.0-r1.ebuild
index 66a37abc47a9..c518862f3ed4 100644
--- a/dev-lang/perl/perl-5.38.0-r1.ebuild
+++ b/dev-lang/perl/perl-5.38.0-r1.ebuild
@@ -395,6 +395,10 @@ src_prepare() {
        # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" 
"100-5.26.2-hppa.patch"\
        #               "Fix broken miniperl on hppa"\
        #               "https://bugs.debian.org/869122"; 
"https://bugs.gentoo.org/634162";
+       add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+                       "100-5.36.0-fix-configure-for-clang.patch" \
+                       "Fix clang check in configure" \
+                       "https://github.com/Perl/perl5/issues/21099";
 
        if [[ ${CHOST} == *-solaris* ]] ; then
                # do NOT mess with nsl, on Solaris this is always necessary,

diff --git a/dev-lang/perl/perl-5.38.2-r1.ebuild 
b/dev-lang/perl/perl-5.38.2-r1.ebuild
index 8edc3aca52ba..d0575868dfe2 100644
--- a/dev-lang/perl/perl-5.38.2-r1.ebuild
+++ b/dev-lang/perl/perl-5.38.2-r1.ebuild
@@ -396,6 +396,10 @@ src_prepare() {
        # add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" 
"100-5.26.2-hppa.patch"\
        #               "Fix broken miniperl on hppa"\
        #               "https://bugs.debian.org/869122"; 
"https://bugs.gentoo.org/634162";
+       add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
+                       "100-5.36.0-fix-configure-for-clang.patch" \
+                       "Fix clang check in configure" \
+                       "https://github.com/Perl/perl5/issues/21099";
 
        if [[ ${CHOST} == *-solaris* ]] ; then
                # do NOT mess with nsl, on Solaris this is always necessary,

Reply via email to