From: Jonathan Perkin <jperkin@joyent.com>
To: dash@vger.kernel.org
Subject: [PATCH] [SHELL] Fix build on Solaris 9
Date: Fri, 11 Dec 2015 11:56:43 +0000 [thread overview]
Message-ID: <20151211115623.GA54973@joyent.com> (raw)
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
next reply other threads:[~2015-12-11 11:56 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-11 11:56 Jonathan Perkin [this message]
2016-06-06 14:25 ` shell: Fix build on Solaris 9 Herbert Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151211115623.GA54973@joyent.com \
--to=jperkin@joyent.com \
--cc=dash@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 read-only IMAP folder(s) and NNTP newsgroup(s).