From 255fb521da978916da0d4a2052d7941d950e2a6a Mon Sep 17 00:00:00 2001
From: Shenghou Ma <minux.ma@gmail.com>
Date: Tue, 5 Feb 2013 21:43:04 +0800
Subject: [PATCH] cmd/dist: add -Wstrict-prototypes to CFLAGS and fix all the
 compiler errors Plan 9 compilers insist this but as we don't have Plan 9
 builders, we'd better let gcc check the prototypes.

Inspired by CL 7289050.

R=golang-dev, seed, dave, rsc, lucio.dere
CC=akumar, golang-dev
https://golang.org/cl/7288056
---
 src/cmd/5g/gg.h      | 2 +-
 src/cmd/6g/gg.h      | 2 +-
 src/cmd/8g/gg.h      | 2 +-
 src/cmd/dist/build.c | 3 +++
 src/cmd/ld/lib.h     | 2 +-
 src/cmd/ld/macho.h   | 2 +-
 src/cmd/prof/main.c  | 8 ++++----
 src/libmach/darwin.c | 2 +-
 8 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/cmd/5g/gg.h b/src/cmd/5g/gg.h
index fe427227c6..c45be79f41 100644
--- a/src/cmd/5g/gg.h
+++ b/src/cmd/5g/gg.h
@@ -84,7 +84,7 @@ void	cgen_dcl(Node*);
 int	needconvert(Type*, Type*);
 void	genconv(Type*, Type*);
 void	allocparams(void);
-void	checklabels();
+void	checklabels(void);
 void	ginscall(Node*, int);
 
 /*
diff --git a/src/cmd/6g/gg.h b/src/cmd/6g/gg.h
index df99c1a654..2c9a43ffe6 100644
--- a/src/cmd/6g/gg.h
+++ b/src/cmd/6g/gg.h
@@ -80,7 +80,7 @@ void	cgen_dcl(Node*);
 int	needconvert(Type*, Type*);
 void	genconv(Type*, Type*);
 void	allocparams(void);
-void	checklabels();
+void	checklabels(void);
 void	ginscall(Node*, int);
 int	gen_as_init(Node*);
 void	clearslim(Node*);
diff --git a/src/cmd/8g/gg.h b/src/cmd/8g/gg.h
index b67ca1f859..99f9952358 100644
--- a/src/cmd/8g/gg.h
+++ b/src/cmd/8g/gg.h
@@ -93,7 +93,7 @@ void	cgen_dcl(Node*);
 int	needconvert(Type*, Type*);
 void	genconv(Type*, Type*);
 void	allocparams(void);
-void	checklabels();
+void	checklabels(void);
 void	ginscall(Node*, int);
 
 /*
diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c
index 533fafb3c1..afa0c470eb 100644
--- a/src/cmd/dist/build.c
+++ b/src/cmd/dist/build.c
@@ -398,6 +398,9 @@ setup(void)
 // gccargs is the gcc command line to use for compiling a single C file.
 static char *proto_gccargs[] = {
 	"-Wall",
+	// native Plan 9 compilers don't like non-standard prototypes
+	// so let gcc catch them.
+	"-Wstrict-prototypes",
 	"-Wno-sign-compare",
 	"-Wno-missing-braces",
 	"-Wno-parentheses",
diff --git a/src/cmd/ld/lib.h b/src/cmd/ld/lib.h
index c134729f66..d2a8b6fbef 100644
--- a/src/cmd/ld/lib.h
+++ b/src/cmd/ld/lib.h
@@ -182,7 +182,7 @@ void	Lflag(char *arg);
 void	usage(void);
 void	adddynrel(Sym*, Reloc*);
 void	adddynrela(Sym*, Sym*, Reloc*);
-Sym*	lookuprel();
+Sym*	lookuprel(void);
 void	ldobj1(Biobuf *f, char*, int64 len, char *pn);
 void	ldobj(Biobuf*, char*, int64, char*, int);
 void	ldelf(Biobuf*, char*, int64, char*);
diff --git a/src/cmd/ld/macho.h b/src/cmd/ld/macho.h
index f551041502..baea6ff03d 100644
--- a/src/cmd/ld/macho.h
+++ b/src/cmd/ld/macho.h
@@ -50,7 +50,7 @@ struct MachoDebug {
 	uint32	filesize;
 };
 
-MachoHdr*	getMachoHdr();
+MachoHdr*	getMachoHdr(void);
 MachoSeg*	newMachoSeg(char*, int);
 MachoSect*	newMachoSect(MachoSeg*, char*);
 MachoLoad*	newMachoLoad(uint32, uint32);
diff --git a/src/cmd/prof/main.c b/src/cmd/prof/main.c
index e6cc836bce..7a1d419611 100644
--- a/src/cmd/prof/main.c
+++ b/src/cmd/prof/main.c
@@ -426,14 +426,14 @@ addppword(uvlong pc)
 }
 
 void
-startpptrace()
+startpptrace(void)
 {
 	ppstart = nppdata;
 	addppword(~0);
 }
 
 void
-endpptrace()
+endpptrace(void)
 {
 	ppdata[ppstart] = nppdata-ppstart-1;
 }
@@ -644,7 +644,7 @@ compareleaf(const void *va, const void *vb)
 }
 
 void
-dumphistogram()
+dumphistogram(void)
 {
 	int i, h, n;
 	PC *x;
@@ -699,7 +699,7 @@ struct Trace {
 };
 
 void
-dumppprof()
+dumppprof(void)
 {
 	uvlong i, n, *p, *e;
 	int ntrace;
diff --git a/src/libmach/darwin.c b/src/libmach/darwin.c
index 63abde3136..753d940fdc 100644
--- a/src/libmach/darwin.c
+++ b/src/libmach/darwin.c
@@ -751,7 +751,7 @@ havet:
 static void*
 excthread(void *v)
 {
-	extern boolean_t exc_server();
+	extern boolean_t exc_server(mach_msg_header_t *, mach_msg_header_t *);
 	mach_msg_server(exc_server, 2048, excport, 0);
 	return 0;
 }
-- 
2.30.9