aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Perkin <jperkin@joyent.com>2015-12-11 11:56:43 +0000
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:54 +0000
commit8479f924b3c218feedfb08ea29d6e8f8a1680fdd (patch)
tree0dceb21953c78929f0f36d142bda0d46a4c04d53
parent4e8511b9af7387ed958094485407e636cd06dcc8 (diff)
downloadklibc-8479f924b3c218feedfb08ea29d6e8f8a1680fdd.tar.gz
[klibc] dash: shell: Fix build on Solaris 9
[ dash commit cb924afe2e3465ec2f91fab55d31f7e3c26d03f4 ] Ensure dash can build in a default Solaris 9 or older environment: - Execute scripts with $SHELL rather than /bin/sh, the latter does not support e.g. "if ! .." used by mkbuiltins. - /bin/awk does not support ?: syntax, use explicit statements instead. - /bin/nl requires no spaces between options and arguments. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--usr/dash/mkbuiltins12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr/dash/mkbuiltins b/usr/dash/mkbuiltins
index 8c74d6b10236a..b4d6f4ec5501c 100644
--- a/usr/dash/mkbuiltins
+++ b/usr/dash/mkbuiltins
@@ -84,9 +84,13 @@ awk '{ for (i = 2 ; i <= NF ; i++) {
opt = substr($2, 2)
$2 = $3
}
- printf "\t{ \"%s\", %s, %d },\n", $1,
- (opt ~ /n/) ? "NULL" : $2,
- (opt ~ /s/) + (opt ~ /[su]/) * 2 + (opt ~ /a/) * 4
+ mask = 0
+ cmd = $2
+ if (opt ~ /n/) { cmd = "NULL" }
+ if (opt ~ /s/) { mask += 1 }
+ if (opt ~ /[su]/) { mask += 2 }
+ if (opt ~ /a/) { mask += 4 }
+ printf "\t{ \"%s\", %s, %d },\n", $1, cmd, mask
}'
echo '};'
@@ -97,7 +101,7 @@ cat <<\!
*/
!
-sed 's/ -[a-z]*//' $temp2 | nl -b a -v 0 |
+sed 's/ -[a-z]*//' $temp2 | nl -ba -v0 |
LC_ALL= LC_COLLATE=C sort -u -k 3,3 |
tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ |
awk '{ printf "#define %s (builtincmd + %d)\n", $3, $1}'