commit:     3d29aec46e21a2ce66b39dc08ea8b559943520d2
Author:     Andrei Horodniceanu <a.horodniceanu <AT> proton <DOT> me>
AuthorDate: Wed Sep 11 16:27:31 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Sep 11 18:53:33 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d29aec4

dev-lang/perl: fix compilation in EPREFIX bootstrap

Closes: https://bugs.gentoo.org/939014
Signed-off-by: Andrei Horodniceanu <a.horodniceanu <AT> proton.me>
Closes: https://github.com/gentoo/gentoo/pull/38568
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...0.0-fix-compilation-in-eprefix-bug-939014.patch | 51 ++++++++++++++++++++++
 dev-lang/perl/perl-5.40.0.ebuild                   |  4 ++
 2 files changed, 55 insertions(+)

diff --git 
a/dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch 
b/dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch
new file mode 100644
index 000000000000..3362947876b1
--- /dev/null
+++ 
b/dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch
@@ -0,0 +1,51 @@
+https://bugs.gentoo.org/939014
+https://github.com/Perl/perl5/pull/22569
+
+From bd0ab509f890a6638bd5033ef58526f8c74f7e4b Mon Sep 17 00:00:00 2001
+From: Andrei Horodniceanu <[email protected]>
+Date: Wed, 4 Sep 2024 12:46:44 +0300
+Subject: [PATCH] locale.c: Fix compilation on platforms with only a C locale
+
+Signed-off-by: Andrei Horodniceanu <[email protected]>
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -103,6 +103,7 @@ Andreas König                  <[email protected]>
+ Andreas Marienborg             <[email protected]>
+ Andreas Schwab                 <[email protected]>
+ Andreas Voegele                <[email protected]>
++Andrei Horodniceanu            <[email protected]>
+ Andrei Yelistratov             <[email protected]>
+ Andrej Borsenkow               <[email protected]>
+ Andrew Bettison                <[email protected]>
+--- a/locale.c
++++ b/locale.c
+@@ -8963,6 +8963,7 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
+      * categories into our internal indices. */
+     if (map_LC_ALL_position_to_index[0] == LC_ALL_INDEX_) {
+ 
++#    ifdef PERL_LC_ALL_CATEGORY_POSITIONS_INIT
+         /* Use this array, initialized by a config.h constant */
+         int lc_all_category_positions[] = PERL_LC_ALL_CATEGORY_POSITIONS_INIT;
+         STATIC_ASSERT_STMT(   C_ARRAY_LENGTH(lc_all_category_positions)
+@@ -8975,6 +8976,21 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
+             map_LC_ALL_position_to_index[i] =
+                               
get_category_index(lc_all_category_positions[i]);
+         }
++#    else
++        /* It is possible for both PERL_LC_ALL_USES_NAME_VALUE_PAIRS and
++         * PERL_LC_ALL_CATEGORY_POSITIONS_INIT not to be defined, e.g. on
++         * systems with only a C locale during ./Configure.  Assume that this
++         * can only happen as part of some sort of bootstrapping so allow
++         * compilation to succeed by ignoring correctness.
++         */
++        for (unsigned int i = 0;
++             i < C_ARRAY_LENGTH(map_LC_ALL_position_to_index);
++             i++)
++        {
++            map_LC_ALL_position_to_index[i] = 0;
++        }
++#    endif
++
+     }
+ 
+     LOCALE_UNLOCK;

diff --git a/dev-lang/perl/perl-5.40.0.ebuild b/dev-lang/perl/perl-5.40.0.ebuild
index cd9a0e1fd69e..92d162e038f9 100644
--- a/dev-lang/perl/perl-5.40.0.ebuild
+++ b/dev-lang/perl/perl-5.40.0.ebuild
@@ -81,6 +81,10 @@ PDEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}/${P}-fix-compilation-in-eprefix-bug-939014.patch"
+)
+
 # bug 390719, bug 523624
 # virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
 

Reply via email to