ocaml/0005-Run-whole-of-gen_primitives.sh-with-LC_ALL-C.patch
2019-12-05 12:56:42 +00:00

52 lines
1.7 KiB
Diff

From 3ef8ce701db0a010771c62171fc7ae355214ed05 Mon Sep 17 00:00:00 2001
From: David Allsopp <david.allsopp@metastack.com>
Date: Thu, 26 Sep 2019 13:51:08 +0100
Subject: [PATCH 05/12] Run whole of gen_primitives.sh with LC_ALL=C
Fixes #8985. Assuming the locale has been generated, running
LC_COLLATE=sv_SE.UTF-8 make world failed previously since the w
character is not matched in [a-z] in this locale.
---
Changes | 4 ++++
runtime/gen_primitives.sh | 5 ++++-
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/Changes b/Changes
index 63cac3ef9..257a75e3d 100644
--- a/Changes
+++ b/Changes
@@ -8,6 +8,10 @@ OCaml 4.09 maintenance branch:
- #8965, #8979: Alpine build failure caused by check-parser-uptodate-or-warn.sh
(Gabriel Scherer and David Allsopp, report by Anton Kochkov)
+- #8985, #8986: fix generation of the primitives when the locale collation is
+ incompatible with C.
+ (David Allsopp, review by Nicolás Ojeda Bär, report by Sebastian Rasmussen)
+
OCaml 4.09.0 (19 September 2019):
---------------------------------
diff --git a/runtime/gen_primitives.sh b/runtime/gen_primitives.sh
index e3ca2779b..63365a7fb 100755
--- a/runtime/gen_primitives.sh
+++ b/runtime/gen_primitives.sh
@@ -17,6 +17,9 @@
# duplicated from $(ROOTDIR)/runtime/Makefile
+# #8985: the meaning of character range a-z depends on the locale, so force C
+# locale throughout.
+export LC_ALL=C
(
for prim in \
alloc array compare extern floats gc_ctrl hash intern interp ints io \
@@ -27,4 +30,4 @@
done
sed -n -e 's/^CAMLprim_int64_[0-9](\([a-z0-9_][a-z0-9_]*\)).*/caml_int64_\1\
caml_int64_\1_native/p' ints.c
-) | LC_ALL=C sort | uniq
+) | sort | uniq
--
2.23.0