[klibc] [klibc:update-dash] dash: builtin: Clear LC_ALL in mkbuiltins

klibc-bot for Fredrik Fornwall fredrik at fornwall.net
Sat Mar 28 14:48:42 PDT 2020


Commit-ID:  2133c29de320e3173d7cb1aec32676afa8b0dc17
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=2133c29de320e3173d7cb1aec32676afa8b0dc17
Author:     Fredrik Fornwall <fredrik at fornwall.net>
AuthorDate: Sun, 24 May 2015 23:05:48 +0200
Committer:  Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sat, 28 Mar 2020 21:42:54 +0000

[klibc] dash: builtin: Clear LC_ALL in mkbuiltins

[ dash commit fe393c0f9ab72de5a7d32aab53e5e8275cad8735 ]

In mkbuiltins LC_COLLATE is set, but since "The value of the LC_ALL
environment variable has precedence over any of the other environment
variables starting with LC_"
(http://pubs.opengroup.org/onlinepubs/7908799/xbd/envvar.html), this
has no effect when LC_ALL is set.

This breaks when having e.g. LC_ALL=en_US.UTF-8 during make, which
causes the test case
    dash -c :
to fail, probably due to broken ordering in builtins.c. The patch
corrects that by clearing LC_ALL.

Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>

---
 usr/dash/mkbuiltins | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/usr/dash/mkbuiltins b/usr/dash/mkbuiltins
index f412a41b..8c74d6b1 100644
--- a/usr/dash/mkbuiltins
+++ b/usr/dash/mkbuiltins
@@ -78,7 +78,7 @@ awk '{	for (i = 2 ; i <= NF ; i++) {
 		if ($i ~ /^-/)
 			line = $(++i) "\t" line
 		print line
-	}}' $temp | LC_COLLATE=C sort -k 1,1 | tee $temp2 | awk '{
+	}}' $temp | LC_ALL= LC_COLLATE=C sort -k 1,1 | tee $temp2 | awk '{
 		opt = ""
 		if (NF > 2) {
 			opt = substr($2, 2)
@@ -97,8 +97,9 @@ cat <<\!
  */
 
 !
-sed 's/	-[a-z]*//' $temp2 | nl -b a -v 0 | LC_COLLATE=C sort -u -k 3,3 |
-tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ |
+sed 's/	-[a-z]*//' $temp2 | nl -b a -v 0 |
+	LC_ALL= LC_COLLATE=C sort -u -k 3,3 |
+	tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ |
 	awk '{	printf "#define %s (builtincmd + %d)\n", $3, $1}'
 printf '\n#define NUMBUILTINS %d\n' $(wc -l < $temp2)
 echo '


More information about the klibc mailing list