[klibc] [klibc:update-dash] shell: Fix build on Solaris 9

klibc-bot for Jonathan Perkin jperkin at joyent.com
Thu Jan 24 19:15:41 PST 2019


Commit-ID:  4174c219dac355e252fb190f4f34653c713b0d69
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=4174c219dac355e252fb190f4f34653c713b0d69
Author:     Jonathan Perkin <jperkin at joyent.com>
AuthorDate: Fri, 11 Dec 2015 11:56:43 +0000
Committer:  Ben Hutchings <ben at decadent.org.uk>
CommitDate: Fri, 25 Jan 2019 02:57:21 +0000

[klibc] shell: Fix build on Solaris 9

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 at gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>

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

diff --git a/usr/dash/mkbuiltins b/usr/dash/mkbuiltins
index 8c74d6b1..b4d6f4ec 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}'


More information about the klibc mailing list