dash.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] [SHELL] Fix build on Solaris 9
@ 2015-12-11 11:56 Jonathan Perkin
  2016-06-06 14:25 ` shell: " Herbert Xu
  0 siblings, 1 reply; 2+ messages in thread
From: Jonathan Perkin @ 2015-12-11 11:56 UTC (permalink / raw)
  To: dash

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.
---
 src/Makefile.am |  4 ++--
 src/mkbuiltins  | 12 ++++++++----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 120ffa2..139355e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -46,13 +46,13 @@ EXTRA_DIST = \
 	mknodes.c nodetypes nodes.c.pat mksyntax.c mksignames.c
 
 token.h token_vars.h: mktokens
-	sh $^
+	$(SHELL) $^
 
 builtins.def: builtins.def.in $(top_builddir)/config.h
 	$(COMPILE) -E -x c -o $@ $<
 
 builtins.c builtins.h: mkbuiltins builtins.def
-	sh $^
+	$(SHELL) $^
 
 init.c: mkinit $(dash_CFILES)
 	./$^
diff --git a/src/mkbuiltins b/src/mkbuiltins
index 8c74d6b..b4d6f4e 100644
--- a/src/mkbuiltins
+++ b/src/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}'
-- 
2.4.9 (Apple Git-60)

-- 
Jonathan Perkin  -  Joyent, Inc.  -  www.joyent.com

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: shell: Fix build on Solaris 9
  2015-12-11 11:56 [PATCH] [SHELL] Fix build on Solaris 9 Jonathan Perkin
@ 2016-06-06 14:25 ` Herbert Xu
  0 siblings, 0 replies; 2+ messages in thread
From: Herbert Xu @ 2016-06-06 14:25 UTC (permalink / raw)
  To: Jonathan Perkin; +Cc: dash

On Fri, Dec 11, 2015 at 11:56:43AM +0000, Jonathan Perkin wrote:
> 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.

Patch applied.  Thanks!
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-06-06 14:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-11 11:56 [PATCH] [SHELL] Fix build on Solaris 9 Jonathan Perkin
2016-06-06 14:25 ` shell: " Herbert Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).