tstellar / rpms / ocaml

Forked from rpms/ocaml 3 years ago
Clone
Blob Blame History Raw
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/13] 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