diff options
Diffstat (limited to 'pkg/awk')
| -rw-r--r-- | pkg/awk/.gitignore | 1 | ||||
| -rw-r--r-- | pkg/awk/gen.rc | 25 | ||||
| -rw-r--r-- | pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch | 26 | ||||
| -rw-r--r-- | pkg/awk/rev | 1 | ||||
| m--------- | pkg/awk/src | 0 |
5 files changed, 53 insertions, 0 deletions
diff --git a/pkg/awk/.gitignore b/pkg/awk/.gitignore new file mode 100644 index 00000000..012dc66e --- /dev/null +++ b/pkg/awk/.gitignore @@ -0,0 +1 @@ +/tools.ninja diff --git a/pkg/awk/gen.rc b/pkg/awk/gen.rc new file mode 100644 index 00000000..9d9b3a2e --- /dev/null +++ b/pkg/awk/gen.rc @@ -0,0 +1,25 @@ +cflags\ + '-std=c90' \ + -D '_POSIX_C_SOURCE=200809L' \ + -I '$outdir' \ + -I '$srcdir' + +yacc gram '$srcdir'/awkgram.y +build '$outdir'/ytab.h copy '$outdir'/gram.tab.h + +{ + include 'toolchain/$host_toolchain.ninja' + cflags -I '$outdir' + exe maketab -d '$outdir'/ytab.h maketab.c +} >tools.ninja ; subninja tools.ninja + +rule maketab '(cd $outdir && ./maketab) >$out.tmp && mv $out.tmp $out' +build '$outdir'/proctab.c maketab '|' '$outdir'/^(maketab ytab.h) + +exe awk -d '$outdir'/ytab.h\ + b.c main.c parse.c tran.c lib.c run.c lex.c\ + '$outdir'/^(gram.tab.c proctab.c) +file bin/awk '$outdir'/awk 755 +file share/man/man1/awk.1 '$srcdir'/awk.1 644 + +fetch git diff --git a/pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch b/pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch new file mode 100644 index 00000000..cf62346a --- /dev/null +++ b/pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch @@ -0,0 +1,26 @@ +From dd4904dd150f9dfa2c3ca0392d6870c85fc14c26 Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Sat, 10 Dec 2016 19:57:39 -0800 +Subject: [PATCH] maketab: Only consider #define lines that match the expected + form + +--- + maketab.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/maketab.c b/maketab.c +index 31acd75..63208c8 100644 +--- a/maketab.c ++++ b/maketab.c +@@ -132,7 +132,7 @@ int main(int argc, char *argv[]) + i = 0; + while (fgets(buf, sizeof buf, fp) != NULL) { + n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok); +- if (c != '#' || (n != 4 && strcmp(def,"define") != 0)) /* not a valid #define */ ++ if (c != '#' || n != 4 || strcmp(def,"define") != 0) /* not a valid #define */ + continue; + if (tok < FIRSTTOKEN || tok > LASTTOKEN) { + /* fprintf(stderr, "maketab funny token %d %s ignored\n", tok, buf); */ +-- +2.11.0 + diff --git a/pkg/awk/rev b/pkg/awk/rev new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/pkg/awk/rev @@ -0,0 +1 @@ +2 diff --git a/pkg/awk/src b/pkg/awk/src new file mode 160000 +Subproject e37f882d7273c61cb0b33c47d5fed3801ad38a6 |
