* [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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).