mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 00:12:56 +00:00
perl540: fix build in stage1, add C locale patch
- Add patch from Perl upstream fixing build if only C locale is available - Change back from `perl538` to `perl` (perl540) in bootstrap-stage-1
This commit is contained in:
parent
5d6c361032
commit
c49774ff46
@ -0,0 +1,57 @@
|
||||
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>
|
||||
---
|
||||
AUTHORS | 1 +
|
||||
locale.c | 16 ++++++++++++++++
|
||||
2 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/AUTHORS b/AUTHORS
|
||||
index b2e0bf2043a9..b196b93bda13 100644
|
||||
--- 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>
|
||||
diff --git a/locale.c b/locale.c
|
||||
index 168b94914318..d764b4b3c11e 100644
|
||||
--- 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;
|
@ -67,6 +67,9 @@ stdenv.mkDerivation (rec {
|
||||
++ lib.optional ((lib.versions.majorMinor version) == "5.38") ./no-sys-dirs-5.38.0.patch
|
||||
++ lib.optional ((lib.versions.majorMinor version) == "5.40") ./no-sys-dirs-5.40.0.patch
|
||||
|
||||
# Fix compilation on platforms with only a C locale: https://github.com/Perl/perl5/pull/22569
|
||||
++ lib.optional (version == "5.40.0") ./fix-build-with-only-C-locale-5.40.0.patch
|
||||
|
||||
++ lib.optional stdenv.hostPlatform.isSunOS ./ld-shared.patch
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
|
||||
++ lib.optional (crossCompiling && (lib.versionAtLeast version "5.40.0")) ./cross540.patch
|
||||
|
@ -308,8 +308,7 @@ in
|
||||
# This is not an issue for the final stdenv, because this perl
|
||||
# won't be included in the final stdenv and won't be exported to
|
||||
# top-level pkgs as an override either.
|
||||
# FIXME: Pinning this stage to 538 as 540 doesn't build in stage1 atm
|
||||
perl = super.perl538.override { enableThreading = false; enableCrypt = false; };
|
||||
perl = super.perl.override { enableThreading = false; enableCrypt = false; };
|
||||
};
|
||||
|
||||
# `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64.
|
||||
|
Loading…
Reference in New Issue
Block a user