summaryrefslogtreecommitdiff
path: root/lang/p2c/patches
diff options
context:
space:
mode:
authordholland <dholland>2011-12-18 16:54:08 +0000
committerdholland <dholland>2011-12-18 16:54:08 +0000
commitaea13ada77f68f4e34c59c6a4092209b4bd8ac31 (patch)
treede45071f1ee43b694d05c0649a59b7760a615d95 /lang/p2c/patches
parent368ac7bce5b5bcfc8ef396261db5420b0c0dbc96 (diff)
downloadpkgsrc-aea13ada77f68f4e34c59c6a4092209b4bd8ac31.tar.gz
Assorted fixes:
- explain why we need post-extract chmods - sort PLIST - add patch comments - clean up some pkglint - fix a symbol name conflict with logf (from math.h + a gcc builtin) - fix some other bugs/issues found by gcc - add standard headers - remove some bogus BSD/System V include probing - probably fix gcc 4.5 build (not fully tested) - bump PKGREVISION
Diffstat (limited to 'lang/p2c/patches')
-rw-r--r--lang/p2c/patches/patch-aa22
-rw-r--r--lang/p2c/patches/patch-ab4
-rw-r--r--lang/p2c/patches/patch-ac89
-rw-r--r--lang/p2c/patches/patch-ad4
-rw-r--r--lang/p2c/patches/patch-ae36
-rw-r--r--lang/p2c/patches/patch-comment_c61
-rw-r--r--lang/p2c/patches/patch-decl_c33
-rw-r--r--lang/p2c/patches/patch-expr_c15
-rw-r--r--lang/p2c/patches/patch-makeproto_c38
-rw-r--r--lang/p2c/patches/patch-out_c15
-rw-r--r--lang/p2c/patches/patch-trans_c155
-rw-r--r--lang/p2c/patches/patch-trans_h93
12 files changed, 551 insertions, 14 deletions
diff --git a/lang/p2c/patches/patch-aa b/lang/p2c/patches/patch-aa
index ba5e23c3cc1..bcffab8b211 100644
--- a/lang/p2c/patches/patch-aa
+++ b/lang/p2c/patches/patch-aa
@@ -1,6 +1,11 @@
-$NetBSD: patch-aa,v 1.1.1.1 1999/01/31 03:47:27 jwise Exp $
---- Makefile.orig Fri Jan 29 14:52:07 1999
-+++ Makefile Fri Jan 29 15:15:47 1999
+$NetBSD: patch-aa,v 1.2 2011/12/18 16:54:08 dholland Exp $
+
+ - configure for pkgsrc
+ - use ranlib properly
+ - fix install permissions
+
+--- Makefile.orig 1991-04-24 20:30:37.000000000 +0000
++++ Makefile
@@ -18,13 +18,13 @@
@@ -22,7 +27,7 @@ $NetBSD: patch-aa,v 1.1.1.1 1999/01/31 03:47:27 jwise Exp $
#MANFILE = p2c.man.Z # compressed nroff source (for man.1.Z)
# Directories (public version)
-@@ -39,7 +39,7 @@
+@@ -39,7 +39,7 @@ MANFILE = p2c.cat # human-reada
CC = cc # you may wish to use gcc here instead
OPT = # -O # uncomment this for optimization
DEB = # -g # uncomment this for debugging
@@ -31,7 +36,7 @@ $NetBSD: patch-aa,v 1.1.1.1 1999/01/31 03:47:27 jwise Exp $
CFLAGS = $(OPT) $(DEB) $(DEFS)
LFLAGS =
-@@ -63,9 +63,9 @@
+@@ -63,9 +63,9 @@ LIBSRCS = p2clib.c loc.p2clib.c
LIBOBJS = p2clib.o loc.p2clib.o
OTHERLIBOBJS =
@@ -44,7 +49,7 @@ $NetBSD: patch-aa,v 1.1.1.1 1999/01/31 03:47:27 jwise Exp $
MISCSRCS = makeproto.c
PROTOS = p2c.proto p2c.hdrs
-@@ -129,7 +129,8 @@
+@@ -129,7 +129,8 @@ p2c.cat: p2c.man.inst
# Third, execute "make install" to compile and set things up.
# (You may need to have a system operator do these steps for you.)
@@ -54,7 +59,7 @@ $NetBSD: patch-aa,v 1.1.1.1 1999/01/31 03:47:27 jwise Exp $
newhome:
rm -f trans.o # force trans.c to be recompiled (if HOMEDIR changes)
-@@ -156,35 +157,35 @@
+@@ -156,35 +157,35 @@ makedirs:
if [ ! -d $(INCDIR) ]; then mkdir $(INCDIR); fi
$(BINDIR)/p2c: p2c
@@ -63,8 +68,9 @@ $NetBSD: patch-aa,v 1.1.1.1 1999/01/31 03:47:27 jwise Exp $
$(LIBDIR)/libp2c.a: libp2c.a
- $(COPY) libp2c.a $(LIBDIR)/libp2c.a
+- if [ -f /usr/bin/ranlib -o -f /bin/ranlib ]; then ranlib $(LIBDIR)/libp2c.a; fi
+ $(COPYDATA) libp2c.a $(LIBDIR)/libp2c.a
- if [ -f /usr/bin/ranlib -o -f /bin/ranlib ]; then ranlib $(LIBDIR)/libp2c.a; fi
++ ranlib $(LIBDIR)/libp2c.a || true
$(MANDIR)/p2c.1: $(MANFILE)
- $(COPY) $(MANFILE) $(MANDIR)/p2c.1
diff --git a/lang/p2c/patches/patch-ab b/lang/p2c/patches/patch-ab
index 97273ff3ea4..a70e2da0c32 100644
--- a/lang/p2c/patches/patch-ab
+++ b/lang/p2c/patches/patch-ab
@@ -1,4 +1,6 @@
-$NetBSD: patch-ab,v 1.2 1999/12/08 09:47:21 rh Exp $
+$NetBSD: patch-ab,v 1.3 2011/12/18 16:54:09 dholland Exp $
+
+- use standard headers
--- p2clib.c.orig Wed Apr 24 22:30:49 1991
+++ p2clib.c Wed Dec 8 10:47:00 1999
diff --git a/lang/p2c/patches/patch-ac b/lang/p2c/patches/patch-ac
index 06ab5bde23f..ed49926e637 100644
--- a/lang/p2c/patches/patch-ac
+++ b/lang/p2c/patches/patch-ac
@@ -1,7 +1,74 @@
-$NetBSD: patch-ac,v 1.1 2009/09/03 13:14:10 joerg Exp $
+$NetBSD: patch-ac,v 1.2 2011/12/18 16:54:09 dholland Exp $
---- lex.c.orig 1991-04-24 22:30:40.000000000 +0200
+- fix symbol conflict with getline (which is now a POSIX thing)
+- fix symbol conflict with logf (from math.h)
+- fix wrong printf format
+
+--- lex.c.orig 1991-04-24 20:30:40.000000000 +0000
+++ lex.c
+@@ -500,7 +500,7 @@ void counterror()
+ if (outf != stdout)
+ printf("Translation aborted: Too many errors.\n");
+ if (verbose)
+- fprintf(logf, "Translation aborted: Too many errors.\n");
++ fprintf(loggf, "Translation aborted: Too many errors.\n");
+ closelogfile();
+ exit(EXIT_FAILURE);
+ }
+@@ -521,9 +521,9 @@ char *msg;
+ printf("Translation aborted.\n");
+ }
+ if (verbose) {
+- fprintf(logf, "%s, line %d/%d: %s\n",
++ fprintf(loggf, "%s, line %d/%d: %s\n",
+ infname, inf_lnum, outf_lnum, msg);
+- fprintf(logf, "Translation aborted.\n");
++ fprintf(loggf, "Translation aborted.\n");
+ }
+ closelogfile();
+ exit(EXIT_FAILURE);
+@@ -542,7 +542,7 @@ char *msg;
+ {
+ if (checkeatnote(msg)) {
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Omitted warning: %s\n",
++ fprintf(loggf, "%s, %d/%d: Omitted warning: %s\n",
+ infname, inf_lnum, outf_lnum, msg);
+ return;
+ }
+@@ -557,7 +557,7 @@ char *proc, *msg;
+ {
+ if (checkeatnote(msg)) {
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Omitted internal error in %s: %s\n",
++ fprintf(loggf, "%s, %d/%d: Omitted internal error in %s: %s\n",
+ infname, inf_lnum, outf_lnum, proc, msg);
+ return;
+ }
+@@ -576,7 +576,7 @@ char *msg;
+ {
+ if (blockkind == TOK_IMPORT || checkeatnote(msg)) {
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Omitted note: %s\n",
++ fprintf(loggf, "%s, %d/%d: Omitted note: %s\n",
+ infname, inf_lnum, outf_lnum, msg);
+ return;
+ }
+@@ -592,12 +592,12 @@ char *msg;
+ {
+ if (blockkind == TOK_IMPORT || checkeatnote(msg)) {
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Omitted end-note: %s\n",
++ fprintf(loggf, "%s, %d/%d: Omitted end-note: %s\n",
+ infname, inf_lnum, outf_lnum, msg);
+ return;
+ }
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Recorded end-note: %s\n",
++ fprintf(loggf, "%s, %d/%d: Recorded end-note: %s\n",
+ infname, inf_lnum, outf_lnum, msg);
+ (void) strlist_add(&endnotelist, msg);
+ }
@@ -969,7 +969,7 @@ void progress()
@@ -38,6 +105,15 @@ $NetBSD: patch-ac,v 1.1 2009/09/03 13:14:10 joerg Exp $
*inbuf = 0;
inbufptr = inbuf;
gettok();
+@@ -1251,7 +1251,7 @@ char *fn;
+ else
+ printf("Reading include file \"%s\"\n", fn);
+ if (verbose)
+- fprintf(logf, "Reading include file \"%s\"\n", fn);
++ fprintf(loggf, "Reading include file \"%s\"\n", fn);
+ if (expandincludes == 0) {
+ push_input_file(fp, fn, 2);
+ curtok = TOK_INCLUDE;
@@ -2206,7 +2206,7 @@ int starparen; /* 0={ }, 1=(* *), 2=C
else
commentline(CMT_POST);
@@ -65,6 +141,15 @@ $NetBSD: patch-ac,v 1.1 2009/09/03 13:14:10 joerg Exp $
break;
case ' ':
+@@ -2529,7 +2529,7 @@ void gettok()
+ case TOK_OCTLIT:
+ case TOK_INTLIT:
+ case TOK_MININT:
+- printf(", curtokint = %d", curtokint);
++ printf(", curtokint = %ld", curtokint);
+ break;
+ case TOK_REALLIT:
+ case TOK_STRLIT:
@@ -2559,7 +2559,7 @@ void gettok()
case 0:
if (commenting_flag)
diff --git a/lang/p2c/patches/patch-ad b/lang/p2c/patches/patch-ad
index 2aef62fd83b..304fa53b6ae 100644
--- a/lang/p2c/patches/patch-ad
+++ b/lang/p2c/patches/patch-ad
@@ -1,4 +1,6 @@
-$NetBSD: patch-ad,v 1.1 2009/09/03 13:14:10 joerg Exp $
+$NetBSD: patch-ad,v 1.2 2011/12/18 16:54:09 dholland Exp $
+
+- fix symbol conflict with getline (which is now a POSIX thing)
--- p2c.hdrs.orig 2009-09-03 14:57:47.000000000 +0200
+++ p2c.hdrs
diff --git a/lang/p2c/patches/patch-ae b/lang/p2c/patches/patch-ae
index e0a0308ba96..59336ef831c 100644
--- a/lang/p2c/patches/patch-ae
+++ b/lang/p2c/patches/patch-ae
@@ -1,7 +1,19 @@
-$NetBSD: patch-ae,v 1.1 2009/09/03 13:14:10 joerg Exp $
+$NetBSD: patch-ae,v 1.2 2011/12/18 16:54:09 dholland Exp $
---- parse.c.orig 2009-09-03 14:57:44.000000000 +0200
+- fix symbol conflict with getline (which is now a POSIX thing)
+- fix symbol conflict with logf (from math.h)
+
+--- parse.c.orig 1991-04-24 20:30:42.000000000 +0000
+++ parse.c
+@@ -3150,7 +3150,7 @@ Static Stmt *p_body()
+ long saveserial;
+
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Translating %s (in %s)\n",
++ fprintf(loggf, "%s, %d/%d: Translating %s (in %s)\n",
+ infname, inf_lnum, outf_lnum,
+ curctx->name, curctx->ctx->name);
+ notephase = 1;
@@ -3769,7 +3769,7 @@ Token blkind;
out_include(fname, 1);
outsection(majorspace);
@@ -11,3 +23,23 @@ $NetBSD: patch-ae,v 1.1 2009/09/03 13:14:10 joerg Exp $
gettok();
}
+@@ -4157,8 +4157,8 @@ int need;
+ if (!fp) {
+ if (need)
+ perror(infnbuf);
+- if (logf)
+- fprintf(logf, "(Unable to open search file \"%s\")\n", infnbuf);
++ if (loggf)
++ fprintf(loggf, "(Unable to open search file \"%s\")\n", infnbuf);
+ return 0;
+ }
+ flushcomments(NULL, -1, -1);
+@@ -4195,7 +4195,7 @@ int need;
+ else
+ printf("Reading import text for \"%s\"\n", mod->name);
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: Reading import text for \"%s\"\n",
++ fprintf(loggf, "%s, %d/%d: Reading import text for \"%s\"\n",
+ infname, inf_lnum, outf_lnum, mod->name);
+ pushctx(mod);
+ gettok();
diff --git a/lang/p2c/patches/patch-comment_c b/lang/p2c/patches/patch-comment_c
new file mode 100644
index 00000000000..ee81434b074
--- /dev/null
+++ b/lang/p2c/patches/patch-comment_c
@@ -0,0 +1,61 @@
+$NetBSD: patch-comment_c,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- fix symbol conflict with logf (from math.h)
+- fix wrong printf formats
+
+--- comment.c.orig 1991-04-24 20:30:39.000000000 +0000
++++ comment.c
+@@ -286,7 +286,7 @@ long serial;
+ else if (outf != stdout)
+ printf("%s, line %d/%d: %s\n", infname, inf_lnum, outf_lnum, msg);
+ if (verbose)
+- fprintf(logf, "%s, %d/%d: %s\n", infname, inf_lnum, outf_lnum, msg);
++ fprintf(loggf, "%s, %d/%d: %s\n", infname, inf_lnum, outf_lnum, msg);
+ if (notephase == 2 || regression)
+ prefix = format_s("\004 p2c: %s:", infname);
+ else
+@@ -368,7 +368,7 @@ int kind;
+ curcomments = savecmt;
+ grabbed_comment = 1;
+ if (cmtdebug > 1)
+- fprintf(outf, "Grabbed comment [%d] \"%s\"\n", cmt->value & CMT_MASK, cmt->s);
++ fprintf(outf, "Grabbed comment [%ld] \"%s\"\n", cmt->value & CMT_MASK, cmt->s);
+ return cmt;
+ }
+
+@@ -406,7 +406,7 @@ int kind, stamp;
+ while (cmt && !matchcomment(cmt, kind, stamp))
+ cmt = cmt->next;
+ if (cmt && cmtdebug > 1)
+- fprintf(outf, "Found comment [%d] \"%s\"\n", cmt->value & CMT_MASK, cmt->s);
++ fprintf(outf, "Found comment [%ld] \"%s\"\n", cmt->value & CMT_MASK, cmt->s);
+ return cmt;
+ }
+
+@@ -422,7 +422,7 @@ int kind, stamp;
+ while ((sl = *cmt)) {
+ if (matchcomment(sl, kind, stamp)) {
+ if (cmtdebug > 1)
+- fprintf(outf, "Extracted comment [%d] \"%s\"\n",
++ fprintf(outf, "Extracted comment [%ld] \"%s\"\n",
+ sl->value & CMT_MASK, sl->s);
+ *cmt = sl->next;
+ *last = sl;
+@@ -442,7 +442,7 @@ int okind, ostamp, kind, stamp;
+ while (cmt) {
+ if (matchcomment(cmt, okind, ostamp)) {
+ if (cmtdebug > 1)
+- fprintf(outf, "Changed comment [%s:%d] \"%s\" ",
++ fprintf(outf, "Changed comment [%s:%ld] \"%s\" ",
+ CMT_NAMES[getcommentkind(cmt)],
+ cmt->value & CMT_MASK, cmt->s);
+ if (kind >= 0)
+@@ -450,7 +450,7 @@ int okind, ostamp, kind, stamp;
+ if (stamp >= 0)
+ cmt->value = (cmt->value & ~CMT_MASK) | stamp;
+ if (cmtdebug > 1)
+- fprintf(outf, " to [%s:%d]\n",
++ fprintf(outf, " to [%s:%ld]\n",
+ CMT_NAMES[getcommentkind(cmt)], cmt->value & CMT_MASK);
+ }
+ cmt = cmt->next;
diff --git a/lang/p2c/patches/patch-decl_c b/lang/p2c/patches/patch-decl_c
new file mode 100644
index 00000000000..aa9e937e236
--- /dev/null
+++ b/lang/p2c/patches/patch-decl_c
@@ -0,0 +1,33 @@
+$NetBSD: patch-decl_c,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- add missing casts to make printf calls correct
+
+--- decl.c~ 1991-04-24 20:30:43.000000000 +0000
++++ decl.c
+@@ -816,7 +816,7 @@ void handle_nameof()
+ sl2->value = sl->value;
+ if (debug > 0)
+ fprintf(outf, "symbol %s gets \"%s\" -> \"%s\"\n",
+- sp->name, sl2->s, sl2->value);
++ sp->name, sl2->s, (char *)sl2->value);
+ }
+ strlist_empty(&nameoflist);
+ }
+@@ -973,7 +973,7 @@ enum meaningkind kind, namekind;
+ sl = strlist_cifind(sym->symbolnames, curctx->sym->name);
+ if (sl) {
+ if (debug > 2)
+- fprintf(outf, "found \"%s\"\n", sl->value);
++ fprintf(outf, "found \"%s\"\n", (char *)sl->value);
+ name = (char *)sl->value;
+ wasaliased = 1;
+ }
+@@ -984,7 +984,7 @@ enum meaningkind kind, namekind;
+ sl = strlist_find(sym->symbolnames, "");
+ if (sl) {
+ if (debug > 2)
+- fprintf(outf, "found \"%s\"\n", sl->value);
++ fprintf(outf, "found \"%s\"\n", (char *)sl->value);
+ name = (char *)sl->value;
+ wasaliased = 1;
+ }
diff --git a/lang/p2c/patches/patch-expr_c b/lang/p2c/patches/patch-expr_c
new file mode 100644
index 00000000000..0bb798e0195
--- /dev/null
+++ b/lang/p2c/patches/patch-expr_c
@@ -0,0 +1,15 @@
+$NetBSD: patch-expr_c,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- fix wrong printf format
+
+--- expr.c~ 1991-04-24 20:30:45.000000000 +0000
++++ expr.c
+@@ -207,7 +207,7 @@ Type *type;
+
+ case TK_REAL:
+ if (ord_type(val.type)->kind == TK_INTEGER) {
+- sprintf(buf, "%d.0", val.i);
++ sprintf(buf, "%ld.0", val.i);
+ val.s = stralloc(buf);
+ val.type = tp_real;
+ return val;
diff --git a/lang/p2c/patches/patch-makeproto_c b/lang/p2c/patches/patch-makeproto_c
new file mode 100644
index 00000000000..7cfbca81638
--- /dev/null
+++ b/lang/p2c/patches/patch-makeproto_c
@@ -0,0 +1,38 @@
+$NetBSD: patch-makeproto_c,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- use standard headers
+- remove outdated and bogus system type probing
+- fix wrong printf call
+
+--- makeproto.c~ 1991-04-24 20:30:50.000000000 +0000
++++ makeproto.c
+@@ -9,18 +9,8 @@
+ #include <stdio.h>
+ #include <ctype.h>
+ #include <time.h>
+-
+-#ifdef FILE /* a #define in BSD, a typedef in SYSV (hp-ux, at least) */
+-# ifndef BSD
+-# define BSD 1
+-# endif
+-#endif
+-
+-#ifdef BSD
+-# include <strings.h>
+-#else
+-# include <string.h>
+-#endif
++#include <string.h>
++#include <stdlib.h>
+
+
+
+@@ -418,7 +408,7 @@ char **argv;
+ argdecls[i] + strlen(warntypes[j].bad));
+ strcpy(argdecls[i], temp);
+ fprintf(stderr, "Warning: Argument %s of %s has type %s\n",
+- argnames[i], fname, warntypes[j]);
++ argnames[i], fname, warntypes[j].bad);
+ }
+ }
+ }
diff --git a/lang/p2c/patches/patch-out_c b/lang/p2c/patches/patch-out_c
new file mode 100644
index 00000000000..de5e30bfac3
--- /dev/null
+++ b/lang/p2c/patches/patch-out_c
@@ -0,0 +1,15 @@
+$NetBSD: patch-out_c,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- fix symbol conflict with logf (from math.h)
+
+--- out.c~ 1991-04-24 20:30:39.000000000 +0000
++++ out.c
+@@ -1136,7 +1136,7 @@ register char *msg;
+ " seconds, %ld tries on line %d [251]", alts, outf_lnum);
+ note(outbuf);
+ } else if (verbose) {
+- fprintf(logf, "%s, %d/%d: Line breaker spent %ld tries\n",
++ fprintf(loggf, "%s, %d/%d: Line breaker spent %ld tries\n",
+ infname, inf_lnum, outf_lnum, alts);
+ }
+ if (testinglinebreaker)
diff --git a/lang/p2c/patches/patch-trans_c b/lang/p2c/patches/patch-trans_c
new file mode 100644
index 00000000000..d9fca6a9208
--- /dev/null
+++ b/lang/p2c/patches/patch-trans_c
@@ -0,0 +1,155 @@
+$NetBSD: patch-trans_c,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- fix symbol conflict with logf (from math.h)
+- fix wrong printf formats
+- don't try to use sbrk() to figure the heap size
+
+--- trans.c.orig 1991-04-24 20:30:37.000000000 +0000
++++ trans.c
+@@ -551,17 +551,17 @@ Static void openlogfile()
+ if (!name)
+ name = format_s("%s.log", codefname);
+ saveoldfile(name);
+- logf = fopen(name, "w");
+- if (logf) {
+- fprintf(logf, "\nTranslation of %s to %s by p2c %s\n",
++ loggf = fopen(name, "w");
++ if (loggf) {
++ fprintf(loggf, "\nTranslation of %s to %s by p2c %s\n",
+ infname, codefname, P2C_VERSION);
+- fprintf(logf, "Translated");
++ fprintf(loggf, "Translated");
+ uname = getenv("USER");
+ if (uname)
+- fprintf(logf, " by %s", uname);
++ fprintf(loggf, " by %s", uname);
+ time(&starting_time);
+- fprintf(logf, " on %s", ctime(&starting_time));
+- fprintf(logf, "\n\n");
++ fprintf(loggf, " on %s", ctime(&starting_time));
++ fprintf(loggf, "\n\n");
+ } else {
+ perror(name);
+ verbose = 0;
+@@ -573,18 +573,18 @@ void closelogfile()
+ {
+ long ending_time;
+
+- if (logf) {
+- fprintf(logf, "\n\n");
+-#if defined(unix) || defined(__unix)
+- fprintf(logf, "Total memory used: %ld bytes.\n", (long)sbrk(0));
++ if (loggf) {
++ fprintf(loggf, "\n\n");
++#if 0
++ fprintf(loggf, "Total memory used: %ld bytes.\n", (long)sbrk(0));
+ #endif
+ time(&ending_time);
+- fprintf(logf, "Processed %d source lines in %ld:%ld seconds.\n",
++ fprintf(loggf, "Processed %d source lines in %ld:%ld seconds.\n",
+ inf_ltotal,
+ (ending_time - starting_time) / 60,
+ (ending_time - starting_time) % 60);
+- fprintf(logf, "\n\nTranslation completed on %s", ctime(&ending_time));
+- fclose(logf);
++ fprintf(loggf, "\n\nTranslation completed on %s", ctime(&ending_time));
++ fclose(loggf);
+ }
+ }
+
+@@ -833,7 +833,7 @@ char **argv;
+ setbuf(codef, NULL); /* for debugging */
+ outf = codef;
+ outf_lnum = 1;
+- logf = NULL;
++ loggf = NULL;
+ if (verbose)
+ openlogfile();
+ setup_complete = 0;
+@@ -1000,12 +1000,12 @@ Type *tp;
+ return;
+ }
+ if (ISBOGUS(tp)) {
+- fprintf(outf, "0x%lX\n", tp);
++ fprintf(outf, "%p\n", tp);
+ return;
+ }
+- fprintf(outf, " Type %lx, kind=%s", tp, typekindname(tp->kind));
++ fprintf(outf, " Type %p, kind=%s", tp, typekindname(tp->kind));
+ #ifdef HASDUMPS
+- fprintf(outf, ", meaning=%lx, basetype=%lx, indextype=%lx\n",
++ fprintf(outf, ", meaning=%p, basetype=%p, indextype=%p\n",
+ tp->meaning, tp->basetype, tp->indextype);
+ tp->dumped = 1;
+ if (tp->basetype)
+@@ -1026,13 +1026,13 @@ Meaning *mp;
+ return;
+ }
+ if (ISBOGUS(mp)) {
+- fprintf(outf, "0x%lX\n", mp);
++ fprintf(outf, "%p\n", mp);
+ return;
+ }
+- fprintf(outf, " Meaning %lx, name=%s, kind=%s", mp, ((mp->name) ? mp->name : "<null>"),
++ fprintf(outf, " Meaning %p, name=%s, kind=%s", mp, ((mp->name) ? mp->name : "<null>"),
+ meaningkindname(mp->kind));
+ #ifdef HASDUMPS
+- fprintf(outf, ", ctx=%lx, cbase=%lx, cnext=%lx, type=%lx\n",
++ fprintf(outf, ", ctx=%p, cbase=%p, cnext=%p, type=%p\n",
+ mp->ctx, mp->cbase, mp->cnext, mp->type);
+ if (mp->type && !mp->type->dumped)
+ dumptype(mp->type);
+@@ -1077,7 +1077,7 @@ int waddr;
+ return;
+ }
+ if (ISBOGUS(tp)) {
+- fprintf(outf, "0x%lX", tp);
++ fprintf(outf, "%p", tp);
+ return;
+ }
+ if (tp == tp_int) fprintf(outf, "I");
+@@ -1117,7 +1117,7 @@ int waddr;
+ waddr = 1;
+ }
+ if (waddr) {
+- fprintf(outf, "%lX", tp);
++ fprintf(outf, "%p", tp);
+ if (tp->dumped)
+ return;
+ fprintf(outf, ":");
+@@ -1251,7 +1251,7 @@ Expr *ex;
+ return;
+ }
+ if (ISBOGUS(ex)) {
+- fprintf(outf, "0x%lX", ex);
++ fprintf(outf, "p", ex);
+ return;
+ }
+ if (ex->kind == EK_CONST && ex->val.type == tp_integer &&
+@@ -1291,7 +1291,7 @@ Expr *ex;
+ }
+ }
+ if (ISBOGUS(ex->val.s))
+- fprintf(outf, "[0x%lX]", ex->val.s);
++ fprintf(outf, "[%p]", ex->val.s);
+ else if (ex->val.s) {
+ switch (ex->kind) {
+
+@@ -1310,7 +1310,7 @@ Expr *ex;
+ fprintf(outf, "[s=%s]", ex->val.s);
+ break;
+ default:
+- fprintf(outf, "[s=%lx]", ex->val.s);
++ fprintf(outf, "[s=%p]", ex->val.s);
+ }
+ break;
+ }
+@@ -1353,7 +1353,7 @@ int indent;
+ }
+ while (sp) {
+ if (ISBOGUS(sp)) {
+- fprintf(outf, "0x%lX\n", sp);
++ fprintf(outf, "%p\n", sp);
+ return;
+ }
+ fprintf(outf, "%s", stmtkindname(sp->kind));
diff --git a/lang/p2c/patches/patch-trans_h b/lang/p2c/patches/patch-trans_h
new file mode 100644
index 00000000000..b8f5cb269b3
--- /dev/null
+++ b/lang/p2c/patches/patch-trans_h
@@ -0,0 +1,93 @@
+$NetBSD: patch-trans_h,v 1.1 2011/12/18 16:54:09 dholland Exp $
+
+- use standard includes
+- remove ancient system type probing
+- fix symbol conflict with logf (from math.h)
+
+--- trans.h.orig 1991-04-24 20:30:53.000000000 +0000
++++ trans.h
+@@ -37,57 +37,12 @@ the Free Software Foundation, Inc., 675
+
+
+ #include <stdio.h>
+-
+-
+-/* If the following heuristic fails, compile -DBSD=0 for non-BSD systems,
+- or -DBSD=1 for BSD systems. */
+-
+-#ifdef M_XENIX
+-# define BSD 0
+-#endif
+-
+-#ifdef FILE /* a #define in BSD, a typedef in SYSV (hp-ux, at least) */
+-# ifndef BSD
+-# define BSD 1
+-# endif
+-#endif
+-
+-#ifdef BSD
+-# if !BSD
+-# undef BSD
+-# endif
+-#endif
+-
+-
+-#ifdef __STDC__
+-# include <stddef.h>
+-# include <stdlib.h>
+-# include <limits.h>
+-#else
+-# ifndef BSD
+-# include <malloc.h>
+-# include <memory.h>
+-# include <values.h>
+-# endif
+-# define EXIT_SUCCESS 0
+-# define EXIT_FAILURE 1
+-# define CHAR_BIT 8
+-# define LONG_MAX (((unsigned long)~0L) >> 1)
+-# define LONG_MIN (- LONG_MAX - 1)
+-#endif
+-
+-
+-
+-#if defined(BSD) && !defined(__STDC__)
+-# include <strings.h>
+-# define memcpy(a,b,n) bcopy(b,a,n)
+-# define memcmp(a,b,n) bcmp(a,b,n)
+-char *malloc(), *realloc();
+-#else
+-# include <string.h>
+-#endif
+-
++#include <stddef.h>
++#include <stdlib.h>
++#include <limits.h>
++#include <string.h>
+ #include <ctype.h>
++#include <unistd.h>
+
+
+ #ifdef __GNUC__ /* Fast, in-line version of strcmp */
+@@ -1678,7 +1633,7 @@ extern int final_parens, final_ptrdescs,
+
+ extern char *infname, *outfname, *codefname, *hdrfname;
+ extern char *requested_module;
+-extern FILE *inf, *outf, *codef, *hdrf, *logf;
++extern FILE *inf, *outf, *codef, *hdrf, *loggf;
+ extern short setup_complete, found_module;
+ extern short regression, verbose, conserve_mem;
+ extern int inf_lnum, inf_ltotal;
+@@ -1757,12 +1712,6 @@ extern Strlist *attrlist;
+
+
+
+-/* Our library omits declarations for these functions! */
+-
+-int link PP( (char *, char *) );
+-int unlink PP( (char *) );
+-
+-
+
+ #define minspcthresh ((minspacingthresh >= 0) ? minspacingthresh : minspacing)
+