]> Cypherpunks repositories - gostls13.git/commitdiff
build with warnings enabled.
authorRuss Cox <rsc@golang.org>
Wed, 19 Nov 2008 20:54:44 +0000 (12:54 -0800)
committerRuss Cox <rsc@golang.org>
Wed, 19 Nov 2008 20:54:44 +0000 (12:54 -0800)
new script "quietgcc" installed in $HOME/bin during make.bash
runs gcc with warnings, turns off inappropriate ones,
greps out useless output.

quietgcc also makes sure to run the correct 64-bit gcc.

R=r
DELTA=38  (36 added, 0 deleted, 2 changed)
OCL=17493
CL=19599

src/Make.conf
src/make.bash
src/quietgcc.bash [new file with mode: 0755]

index ddf4b97220a2962349902fa131767041901502ad..3542b70eefc68b3cead4d8cad546434f4fdcaf6c 100644 (file)
@@ -2,8 +2,8 @@
 # Use of this source code is governed by a BSD-style
 # license that can be found in the LICENSE file.
 
-CC=cc
-LD=cc
+CC=quietgcc
+LD=quietgcc
 CFLAGS=-ggdb -I$(GOROOT)/include
 BIN=$(HOME)/bin
 O=o
index 8d284d88e73df2c4b6d68fcd185dd1448639bc7a..0c9475f4d0cc238425e8500f0ac85ebd930ada22 100755 (executable)
@@ -14,6 +14,9 @@ fi
 
 bash clean.bash
 
+cp quietgcc.bash $HOME/bin/quietgcc
+chmod +x $HOME/bin/quietgcc
+
 for i in lib9 libbio libmach_amd64 libregexp cmd runtime lib
 do
        echo; echo; echo %%%% making $i %%%%; echo
diff --git a/src/quietgcc.bash b/src/quietgcc.bash
new file mode 100755 (executable)
index 0000000..560b628
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/bash
+# Copyright 2009 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+# The master for this file is $GOROOT/src/quietgcc.bash
+# Changes made to $HOME/bin/quietgcc will be overridden.
+
+# Gcc output that we don't care to see.
+ignore=': error: .Each undeclared identifier'
+ignore=$ignore'|: error: for each function it appears'
+ignore=$ignore'|is dangerous, better use'
+ignore=$ignore'|is almost always misused'
+ignore=$ignore'|: In function '
+ignore=$ignore'|: At top level: '
+ignore=$ignore'|In file included from'
+ignore=$ignore'|        from'
+
+# Figure out which cc to run.
+# Can use plain cc on real 64-bit machines
+# and on OS X, but have to use crosstool on
+# mixed64-32 machines like thresher.
+gcc=gcc
+case "`uname -a`" in
+*mixed64-32*)
+       gcc=/usr/crosstool/v10/gcc-4.2.1-glibc-2.3.2/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu/bin/gcc
+esac
+
+# Run gcc, save error status, redisplay output without noise, exit with gcc status.
+tmp=/tmp/qcc.$$.$USER.out
+$gcc -m64 -Wall -Wno-sign-compare -Wno-missing-braces \
+       -Wno-parentheses -Wno-unknown-pragmas -Wno-switch -Wno-comment \
+       "$@" >$tmp 2>&1
+status=$?
+egrep -v "$ignore" $tmp | uniq
+rm -f $tmp
+exit $status