summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Lars Schneider <larsxschneider@gmail.com>2016-02-25 09:42:22 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2016-02-25 12:49:45 -0800
commit658df95a4adb825f0c8a5faea7b545da6d1d5003 (patch)
tree7a1df49eaa3ccdf81c01399d1ffd1d1318fe3459
parentMerge branch 'ls/travis-prove-order' (diff)
downloadtgif-658df95a4adb825f0c8a5faea7b545da6d1d5003.tar.xz
add DEVELOPER makefile knob to check for acknowledged warnings
We assume Git developers have a reasonably modern compiler and recommend them to enable the DEVELOPER makefile knob to ensure their patches are clear of all compiler warnings the Git core project cares about. Enable the DEVELOPER makefile knob in the Travis-CI build. Suggested-by: Jeff King <peff@peff.net> Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--.travis.yml2
-rw-r--r--Documentation/CodingGuidelines5
-rw-r--r--Makefile12
3 files changed, 18 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml
index f8b73ec3da..78e433ba71 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,12 +21,12 @@ addons:
env:
global:
+ - DEVELOPER=1
- P4_VERSION="15.2"
- GIT_LFS_VERSION="1.1.0"
- DEFAULT_TEST_TARGET=prove
- GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
- GIT_TEST_OPTS="--verbose --tee"
- - CFLAGS="-g -O2 -Wall -Werror"
- GIT_TEST_CLONE_2GB=YesPlease
# t9810 occasionally fails on Travis CI OS X
# t9816 occasionally fails with "TAP out of sequence errors" on Travis CI OS X
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index c6e536f180..0ddd36879a 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -171,6 +171,11 @@ For C programs:
- We try to keep to at most 80 characters per line.
+ - As a Git developer we assume you have a reasonably modern compiler
+ and we recommend you to enable the DEVELOPER makefile knob to
+ ensure your patch is clear of all compiler warnings we care about,
+ by e.g. "echo DEVELOPER=1 >>config.mak".
+
- We try to support a wide range of C compilers to compile Git with,
including old ones. That means that you should not use C99
initializers, even if a lot of compilers grok it.
diff --git a/Makefile b/Makefile
index fc2f1ab2c3..7dc5b88e58 100644
--- a/Makefile
+++ b/Makefile
@@ -380,6 +380,18 @@ ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS)
ALL_LDFLAGS = $(LDFLAGS)
STRIP ?= strip
+ifdef DEVELOPER
+CFLAGS += -Werror \
+ -Wdeclaration-after-statement \
+ -Wno-format-zero-length \
+ -Wold-style-definition \
+ -Woverflow \
+ -Wpointer-arith \
+ -Wstrict-prototypes \
+ -Wunused \
+ -Wvla
+endif
+
# Create as necessary, replace existing, make ranlib unneeded.
ARFLAGS = rcs