From 3ef8ce701db0a010771c62171fc7ae355214ed05 Mon Sep 17 00:00:00 2001 From: David Allsopp 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