summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Horodniceanu <a.horodniceanu@proton.me>2024-09-11 19:27:31 +0300
committerSam James <sam@gentoo.org>2024-09-11 19:53:33 +0100
commit3d29aec46e21a2ce66b39dc08ea8b559943520d2 (patch)
treeadbadaeaa46b54e0d060016617daee2481c7a740 /dev-lang/perl
parentsys-libs/glibc: fix invalid free in stdio for 2.40 (diff)
downloadgentoo-3d29aec46e21a2ce66b39dc08ea8b559943520d2.tar.gz
gentoo-3d29aec46e21a2ce66b39dc08ea8b559943520d2.tar.bz2
gentoo-3d29aec46e21a2ce66b39dc08ea8b559943520d2.zip
dev-lang/perl: fix compilation in EPREFIX bootstrap
Closes: https://bugs.gentoo.org/939014 Signed-off-by: Andrei Horodniceanu <a.horodniceanu@proton.me> Closes: https://github.com/gentoo/gentoo/pull/38568 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-lang/perl')
-rw-r--r--dev-lang/perl/files/perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch51
-rw-r--r--dev-lang/perl/perl-5.40.0.ebuild4
2 files changed, 55 insertions, 0 deletions
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 <a.horodniceanu@proton.me>
+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 <a.horodniceanu@proton.me>
+--- a/AUTHORS
++++ b/AUTHORS
+@@ -103,6 +103,7 @@ Andreas König <a.koenig@mind.de>
+ Andreas Marienborg <andreas.marienborg@gmail.com>
+ Andreas Schwab <schwab@suse.de>
+ Andreas Voegele <andreas@andreasvoegele.com>
++Andrei Horodniceanu <a.horodniceanu@proton.me>
+ Andrei Yelistratov <andrew@sundale.net>
+ Andrej Borsenkow <Andrej.Borsenkow@mow.siemens.ru>
+ Andrew Bettison <andrewb@zip.com.au>
+--- 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