All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.