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 5f341b85985bc096a6b5f49acce404a6f28855d5..9e013fa3b25b82a10b71ceabfa664c796c4d7a3f 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 dc9261265b95c7100e4369bef82175f48a3c099e..582b4dca9497363c7bfd6ae5ecc2c98d28d5ac0a 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 \