valgrind: do not require valgrind 3.4.0 or newer
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Thu, 5 Feb 2009 21:03:00 +0000 (22:03 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Feb 2009 01:48:22 +0000 (17:48 -0800)
Valgrind 3.4.0 is pretty new, and even if --track-origins is a nice
feature, it is not the end of the world if that is not available.  So
play nice and use that option only when only an older version of
valgrind is available.

In the same spirit, refrain from the use of '...' in suppression
files, which is also a feature only valgrind 3.4 and newer understand.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/valgrind/default.supp
t/valgrind/valgrind.sh

index 5f341b8..9e013fa 100644 (file)
@@ -38,6 +38,8 @@
        writing-data-from-zlib-triggers-even-more-errors
        Memcheck:Param
        write(buf)
-       ...
+       obj:/lib/ld-*.so
+       fun:write_in_full
+       fun:write_buffer
        fun:write_loose_object
 }
index dc92612..582b4dc 100755 (executable)
@@ -2,11 +2,20 @@
 
 base=$(basename "$0")
 
+TRACK_ORIGINS=
+
+VALGRIND_VERSION=$(valgrind --version)
+VALGRIND_MAJOR=$(expr "$VALGRIND_VERSION" : '[^0-9]*\([0-9]*\)')
+VALGRIND_MINOR=$(expr "$VALGRIND_VERSION" : '[^0-9]*[0-9]*\.\([0-9]*\)')
+test 3 -gt "$VALGRIND_MAJOR" ||
+test 3 -eq "$VALGRIND_MAJOR" -a 4 -gt "$VALGRIND_MINOR" ||
+TRACK_ORIGINS=--track-origins=yes
+
 exec valgrind -q --error-exitcode=126 \
        --leak-check=no \
        --suppressions="$GIT_VALGRIND/default.supp" \
        --gen-suppressions=all \
-       --track-origins=yes \
+       $TRACK_ORIGINS \
        --log-fd=4 \
        --input-fd=4 \
        $GIT_VALGRIND_OPTIONS \