Re: [PATCH] valgrind: do not require valgrind 3.4.0 or newer
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 6, 2009, 00:40 UTC
- Message-ID
- <alpine.DEB.1.00.0902060139490.10279@pacific.mpi-cbg.de>
- In-Reply-To
- <7vljska0ep.fsf@gitster.siamese.dyndns.org>
Hi,
On Thu, 5 Feb 2009, Junio C Hamano wrote:
Show 46 quoted lines
> 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
> fiOkay. Want me to resubmit?
Ciao, Dscho