mirror of
git://git.savannah.gnu.org/config.git
synced 2025-07-07 13:48:21 +12:00
config.sub: work around command assignment bug in some shells
When combining variable assignments with a shell command, some older shells (notably heirloom-sh and presumably also Solaris 10 /bin/sh) have a bug which causes the assignment to alter the current execution environment whenever the command is a shell built-in. For example: % dash -c 'x=good; x=bad echo >/dev/null; echo $x' good % jsh -c 'x=good; x=bad echo >/dev/null; echo $x' bad The config.sub script contains a few commands of the form: IFS=- read ... which triggers this bug, causing the IFS assignment to persist for the remainder of the script. This can cause misbehaviour in certain cases, for example: % jsh config.sub i386-linux-gnu config.sub: test: unknown operator gnu % jsh config.sub i386-gnu/linux sed: can't read s|gnu/linux|gnu|: No such file or directory Invalid configuration `i386-gnu/linux': OS `' not recognized * config.sub: Save and restore IFS explicitly to avoid shell bugs. * doc/config.sub.1: Regenerate. Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
This commit is contained in:

committed by
Dmitry V. Levin

parent
2707e389a5
commit
191bcb948f
@ -1,5 +1,5 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.16.
|
||||
.TH CONFIG.SUB "1" "August 2021" "GNU config.sub (2021-08-04)" "User Commands"
|
||||
.TH CONFIG.SUB "1" "August 2021" "GNU config.sub (2021-08-14)" "User Commands"
|
||||
.SH NAME
|
||||
config.sub \- validate and canonicalize a configuration triplet
|
||||
.SH SYNOPSIS
|
||||
|
Reference in New Issue
Block a user