* [PATCH] valgrind: do not require valgrind 3.4.0 or newer
[not found] <cover.1233858507u.git.johannes.schindelin@gmx.de>
@ 2009-02-05 18:34 ` Johannes Schindelin
2009-02-05 19:00 ` Peter Baumann
2009-02-05 20:32 ` Junio C Hamano
0 siblings, 2 replies; 9+ messages in thread
From: Johannes Schindelin @ 2009-02-05 18:34 UTC (permalink / raw)
To: git, gitster; +Cc: peff
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>
---
This patch is on top of my valgrind series.
In related news, Mark Adler has prepared a patch for the zlib vs
valgrind issue which has a low impact on performance, yet keeps
valgrind happy.
I fully expect this patch to hit the next zlib version.
Note that with the current suppressions, there was only a
hard-to-fix issue with certain gcc compilers in conjunction with
-DUNALIGNED_OK -O3 flags when compiling zlib, so not many users
are affected anyway (ahem, except for all the Ubuntu users, ahem).
t/valgrind/default.supp | 4 +++-
t/valgrind/valgrind.sh | 8 +++++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/t/valgrind/default.supp b/t/valgrind/default.supp
index 5f341b8..9e013fa 100644
--- a/t/valgrind/default.supp
+++ b/t/valgrind/default.supp
@@ -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
}
diff --git a/t/valgrind/valgrind.sh b/t/valgrind/valgrind.sh
index dc92612..a77023a 100755
--- a/t/valgrind/valgrind.sh
+++ b/t/valgrind/valgrind.sh
@@ -2,11 +2,17 @@
base=$(basename "$0")
+TRACK_ORIGINS=
+case "$(valgrind --version)" in
+valgrind-{3.[4-9],3.[1-3][0-9],[4-9],[1-3][0-9]}*)
+ TRACK_ORIGINS=--track-origins=yes
+esac
+
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 \
--
1.6.1.1.598.g140d5
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-05 18:34 ` [PATCH] valgrind: do not require valgrind 3.4.0 or newer Johannes Schindelin
@ 2009-02-05 19:00 ` Peter Baumann
2009-02-05 20:20 ` Johannes Schindelin
2009-02-05 20:32 ` Junio C Hamano
1 sibling, 1 reply; 9+ messages in thread
From: Peter Baumann @ 2009-02-05 19:00 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git, gitster, peff
On Thu, Feb 05, 2009 at 07:34:27PM +0100, Johannes Schindelin wrote:
> 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.
Reading the patch/the sentence above suggests that you actuallly ment:
"So play nice and don't use that option when only an older version of
valgrind is available."
Greetings,
Peter
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-05 19:00 ` Peter Baumann
@ 2009-02-05 20:20 ` Johannes Schindelin
0 siblings, 0 replies; 9+ messages in thread
From: Johannes Schindelin @ 2009-02-05 20:20 UTC (permalink / raw)
To: Peter Baumann; +Cc: git, gitster, peff
Hi,
On Thu, 5 Feb 2009, Peter Baumann wrote:
> On Thu, Feb 05, 2009 at 07:34:27PM +0100, Johannes Schindelin wrote:
> > 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.
>
> Reading the patch/the sentence above suggests that you actuallly ment:
>
> "So play nice and don't use that option when only an older version of
> valgrind is available."
Yes. How did you guess?
:-)
Ciao,
Dscho
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-05 18:34 ` [PATCH] valgrind: do not require valgrind 3.4.0 or newer Johannes Schindelin
2009-02-05 19:00 ` Peter Baumann
@ 2009-02-05 20:32 ` Junio C Hamano
2009-02-05 20:51 ` Johannes Schindelin
2009-02-05 21:03 ` Johannes Schindelin
1 sibling, 2 replies; 9+ messages in thread
From: Junio C Hamano @ 2009-02-05 20:32 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git, gitster, peff
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> 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.
s/older/newer/?
> +TRACK_ORIGINS=
> +case "$(valgrind --version)" in
> +valgrind-{3.[4-9],3.[1-3][0-9],[4-9],[1-3][0-9]}*)
> + TRACK_ORIGINS=--track-origins=yes
> +esac
What kind of case pattern is that?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-05 20:32 ` Junio C Hamano
@ 2009-02-05 20:51 ` Johannes Schindelin
2009-02-05 21:03 ` Johannes Schindelin
1 sibling, 0 replies; 9+ messages in thread
From: Johannes Schindelin @ 2009-02-05 20:51 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, peff
Hi,
On Thu, 5 Feb 2009, Junio C Hamano wrote:
> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>
> > 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.
>
> s/older/newer/?
s/only an older/a newer/ even.
> > +TRACK_ORIGINS=
> > +case "$(valgrind --version)" in
> > +valgrind-{3.[4-9],3.[1-3][0-9],[4-9],[1-3][0-9]}*)
> > + TRACK_ORIGINS=--track-origins=yes
> > +esac
>
> What kind of case pattern is that?
A non-working one.
Grumbles,
Dscho
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-05 20:32 ` Junio C Hamano
2009-02-05 20:51 ` Johannes Schindelin
@ 2009-02-05 21:03 ` Johannes Schindelin
2009-02-06 0:12 ` Junio C Hamano
1 sibling, 1 reply; 9+ messages in thread
From: Johannes Schindelin @ 2009-02-05 21:03 UTC (permalink / raw)
To: git, gitster
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>
---
t/valgrind/default.supp | 4 +++-
t/valgrind/valgrind.sh | 11 ++++++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/t/valgrind/default.supp b/t/valgrind/default.supp
index 5f341b8..9e013fa 100644
--- a/t/valgrind/default.supp
+++ b/t/valgrind/default.supp
@@ -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
}
diff --git a/t/valgrind/valgrind.sh b/t/valgrind/valgrind.sh
index dc92612..582b4dc 100755
--- a/t/valgrind/valgrind.sh
+++ b/t/valgrind/valgrind.sh
@@ -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 \
--
1.6.1.1.636.gf819e
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-05 21:03 ` Johannes Schindelin
@ 2009-02-06 0:12 ` Junio C Hamano
2009-02-06 0:40 ` Johannes Schindelin
0 siblings, 1 reply; 9+ messages in thread
From: Junio C Hamano @ 2009-02-06 0:12 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> 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>
Thanks.
> +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
It took me a while to convince myself that
"3 > major || (3 == major && 4 > minor) || do-this"
is equivalent to
"if (3 < major || (3 == major && 4 <= minor)) { do-this }"
which would be:
if test 3 -lt "$VALGRIND_MAJOR" ||
test 3 -eq "$VALGRIND_MAJOR" -a 4 -le "$VALGRIND_MINOR"
then
TRACK_ORIGINS=--track-origins=yes
fi
or more commonly:
if test "$VALGRIND_MAJOR" -gt 3 ||
test "$VALGRIND_MAJOR" -eq 3 -a "$VALGRIND_MINOR" -ge 4
then
TRACK_ORIGINS=--track-origins=yes
fi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-06 0:12 ` Junio C Hamano
@ 2009-02-06 0:40 ` Johannes Schindelin
2009-02-06 0:52 ` Junio C Hamano
0 siblings, 1 reply; 9+ messages in thread
From: Johannes Schindelin @ 2009-02-06 0:40 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
Hi,
On Thu, 5 Feb 2009, Junio C Hamano wrote:
> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>
> > 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>
>
> Thanks.
>
> > +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
>
> It took me a while to convince myself that
>
> "3 > major || (3 == major && 4 > minor) || do-this"
>
> is equivalent to
>
> "if (3 < major || (3 == major && 4 <= minor)) { do-this }"
>
> which would be:
>
> if test 3 -lt "$VALGRIND_MAJOR" ||
> test 3 -eq "$VALGRIND_MAJOR" -a 4 -le "$VALGRIND_MINOR"
> then
> TRACK_ORIGINS=--track-origins=yes
> fi
>
> or more commonly:
>
> if test "$VALGRIND_MAJOR" -gt 3 ||
> test "$VALGRIND_MAJOR" -eq 3 -a "$VALGRIND_MINOR" -ge 4
> then
> TRACK_ORIGINS=--track-origins=yes
> fi
Okay. Want me to resubmit?
Ciao,
Dscho
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
2009-02-06 0:40 ` Johannes Schindelin
@ 2009-02-06 0:52 ` Junio C Hamano
0 siblings, 0 replies; 9+ messages in thread
From: Junio C Hamano @ 2009-02-06 0:52 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: git
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> Hi,
>
> On Thu, 5 Feb 2009, Junio C Hamano wrote:
>
>> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>>
>> > 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>
>>
>> Thanks.
>>
>> > +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
>>
>> It took me a while to convince myself that
>>
>> "3 > major || (3 == major && 4 > minor) || do-this"
>>
>> is equivalent to
>>
>> "if (3 < major || (3 == major && 4 <= minor)) { do-this }"
>>
>> which would be:
>>
>> if test 3 -lt "$VALGRIND_MAJOR" ||
>> test 3 -eq "$VALGRIND_MAJOR" -a 4 -le "$VALGRIND_MINOR"
>> then
>> TRACK_ORIGINS=--track-origins=yes
>> fi
>>
>> or more commonly:
>>
>> if test "$VALGRIND_MAJOR" -gt 3 ||
>> test "$VALGRIND_MAJOR" -eq 3 -a "$VALGRIND_MINOR" -ge 4
>> then
>> TRACK_ORIGINS=--track-origins=yes
>> fi
>
> Okay. Want me to resubmit?
Nah, sorry for being unclear that I was only stating an observation, not
complaints.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2009-02-06 0:54 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <cover.1233858507u.git.johannes.schindelin@gmx.de>
2009-02-05 18:34 ` [PATCH] valgrind: do not require valgrind 3.4.0 or newer Johannes Schindelin
2009-02-05 19:00 ` Peter Baumann
2009-02-05 20:20 ` Johannes Schindelin
2009-02-05 20:32 ` Junio C Hamano
2009-02-05 20:51 ` Johannes Schindelin
2009-02-05 21:03 ` Johannes Schindelin
2009-02-06 0:12 ` Junio C Hamano
2009-02-06 0:40 ` Johannes Schindelin
2009-02-06 0:52 ` Junio C Hamano
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.