|
From: <sv...@va...> - 2008-04-25 11:33:27
|
Author: dirk
Date: 2008-04-25 12:33:30 +0100 (Fri, 25 Apr 2008)
New Revision: 7915
Log:
glibc 2.8 has the very same checking reports as did
glibc 2.7 have.. as did glibc 2.6, as did glibc 2.5, as did glibc 2.4
as did glibc 2.4. so consolidate into one suppression file
Added:
trunk/glibc-2.X.supp.in
Modified:
trunk/
trunk/configure.in
Property changes on: trunk
___________________________________________________________________
Name: svn:ignore
- acinclude.m4
aclocal.m4
autom4te-*.cache
autom4te.cache
bin
cachegrind
cachegrind.out.*
compile
config.guess
config.h*
config.log
config.status
config.sub
configure
default.supp
depcomp
include
.in_place
install-sh
lib
Makefile
Makefile.in
missing
mkinstalldirs
share
stamp-h*
svn-commit.tmp
svn-commit.2.tmp
valgrind
valgrind.pc
valgrind.spec
valt_load_address*.lds
vg_annotate
vg_cachegen
+ acinclude.m4
aclocal.m4
autom4te-*.cache
autom4te.cache
bin
cachegrind
cachegrind.out.*
compile
config.guess
config.h*
config.log
config.status
config.sub
configure
default.supp
glibc-2.X.supp
depcomp
include
.in_place
install-sh
lib
Makefile
Makefile.in
missing
mkinstalldirs
share
stamp-h*
svn-commit.tmp
svn-commit.2.tmp
valgrind
valgrind.pc
valgrind.spec
valt_load_address*.lds
vg_annotate
vg_cachegen
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2008-04-24 23:59:49 UTC (rev 7914)
+++ trunk/configure.in 2008-04-25 11:33:30 UTC (rev 7915)
@@ -398,7 +398,7 @@
AC_SUBST(DEFAULT_SUPP)
-libc=""
+GLIBC_VERSION=""
AC_EGREP_CPP([GLIBC_22], [
#include <features.h>
@@ -408,7 +408,7 @@
#endif
#endif
],
-libc="2.2")
+GLIBC_VERSION="2.2")
AC_EGREP_CPP([GLIBC_23], [
#include <features.h>
@@ -418,7 +418,7 @@
#endif
#endif
],
-libc="2.3")
+GLIBC_VERSION="2.3")
AC_EGREP_CPP([GLIBC_24], [
#include <features.h>
@@ -428,7 +428,7 @@
#endif
#endif
],
-libc="2.4")
+GLIBC_VERSION="2.4")
AC_EGREP_CPP([GLIBC_25], [
#include <features.h>
@@ -438,7 +438,7 @@
#endif
#endif
],
-libc="2.5")
+GLIBC_VERSION="2.5")
AC_EGREP_CPP([GLIBC_26], [
#include <features.h>
@@ -448,7 +448,7 @@
#endif
#endif
],
-libc="2.6")
+GLIBC_VERSION="2.6")
AC_EGREP_CPP([GLIBC_27], [
#include <features.h>
@@ -458,19 +458,29 @@
#endif
#endif
],
-libc="2.7")
+GLIBC_VERSION="2.7")
+AC_EGREP_CPP([GLIBC_28], [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ == 8)
+ GLIBC_28
+ #endif
+#endif
+],
+GLIBC_VERSION="2.8")
+
AC_EGREP_CPP([AIX5_LIBC], [
#include <standards.h>
#if defined(_AIXVERSION_510) || defined(_AIXVERSION_520) || defined(_AIXVERSION_530)
AIX5_LIBC
#endif
],
-libc="aix5")
+GLIBC_VERSION="aix5")
-AC_MSG_CHECKING([the libc version])
+AC_MSG_CHECKING([the GLIBC_VERSION version])
-case "${libc}" in
+case "${GLIBC_VERSION}" in
2.2)
AC_MSG_RESULT(2.2 family)
AC_DEFINE([GLIBC_2_2], 1, [Define to 1 if you're using glibc 2.2.x])
@@ -512,10 +522,18 @@
2.7)
AC_MSG_RESULT(2.7 family)
AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
- DEFAULT_SUPP="glibc-2.7.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
;;
+ 2.8)
+ AC_MSG_RESULT(2.8 family)
+ AC_DEFINE([GLIBC_2_7], 1, [Define to 1 if you're using glibc 2.7.x])
+ DEFAULT_SUPP="glibc-2.X.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.34567-NPTL-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.X-drd.supp ${DEFAULT_SUPP}"
+ ;;
+
aix5)
AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
AC_DEFINE([AIX5_LIBC], 1, [Define to 1 if you're using AIX 5.1 or 5.2 or 5.3])
@@ -524,11 +542,12 @@
*)
AC_MSG_RESULT(unsupported version)
- AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.7])
- AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 libc])
+ AC_MSG_ERROR([Valgrind requires glibc version 2.2 - 2.8])
+ AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 GLIBC_VERSION])
;;
esac
+AC_SUBST(GLIBC_VERSION)
# We don't know how to detect the X client library version
# (detecting the server version is easy, but no help). So we
@@ -1057,6 +1076,7 @@
Makefile
valgrind.spec
valgrind.pc
+ glibc-2.X.supp
docs/Makefile
docs/lib/Makefile
docs/images/Makefile
Copied: trunk/glibc-2.X.supp.in (from rev 7914, trunk/glibc-2.6.supp)
===================================================================
--- trunk/glibc-2.X.supp.in (rev 0)
+++ trunk/glibc-2.X.supp.in 2008-04-25 11:33:30 UTC (rev 7915)
@@ -0,0 +1,196 @@
+
+##----------------------------------------------------------------------##
+
+# Errors to suppress by default with glibc @GLIBC_VERSION@.x
+
+# Format of this file is:
+# {
+# name_of_suppression
+# tool_name:supp_kind
+# (optional extra info for some suppression types)
+# caller0 name, or /name/of/so/file.so
+# caller1 name, or ditto
+# (optionally: caller2 name)
+# (optionally: caller3 name)
+# }
+#
+# For Memcheck, the supp_kinds are:
+#
+# Param Value1 Value2 Value4 Value8 Value16 Jump
+# Free Addr1 Addr2 Addr4 Addr8 Addr16
+# Cond (previously known as Value0)
+#
+# and the optional extra info is:
+# if Param: name of system call param
+
+{
+ dl-hack1
+ Memcheck:Cond
+ fun:_dl_start
+ fun:_start
+}
+
+{
+ dl-hack2
+ Memcheck:Cond
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+ obj:/lib*/ld-@GLIBC_VERSION@*.so
+}
+
+{
+ dl-hack3-1
+ Memcheck:Cond
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+}
+{
+ dl-hack3-2
+ Memcheck:Cond
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/ld-@GLIBC_VERSION@*.so*
+ obj:/lib*/libc-@GLIBC_VERSION@*.so*
+}
+
+{
+ dl-hack4-64bit-1
+ Memcheck:Addr8
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+}
+{
+ dl-hack4-64bit-2
+ Memcheck:Addr8
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/libc-@GLIBC_VERSION@*.so*
+}
+{
+ dl-hack4-64bit-3
+ Memcheck:Addr8
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/ld-@GLIBC_VERSION@*.so*
+ obj:/lib64/libdl-@GLIBC_VERSION@*.so*
+}
+
+
+
+##----------------------------------------------------------------------##
+{
+ glibc-2.5.x-on-SUSE-10.2-(PPC)-1
+ Memcheck:Cond
+ fun:_dl_start_final
+ fun:_dl_start
+ fun:_start
+}
+{
+ glibc-2.5.x-on-SUSE-10.2-(PPC)-2a
+ Memcheck:Cond
+ fun:index
+ obj:*ld-@GLIBC_VERSION@.*.so
+}
+{
+ glibc-2.5.x-on-SuSE-10.2-(PPC)-2b
+ Memcheck:Addr4
+ fun:index
+ fun:expand_dynamic_string_token
+}
+{
+ glibc-2.5.5-on-SuSE-10.2-(PPC)-2c
+ Memcheck:Addr4
+ fun:index
+ obj:*ld-@GLIBC_VERSION@.*.so
+}
+{
+ glibc-2.3.5-on-SuSE-10.1-(PPC)-3
+ Memcheck:Addr4
+ fun:*wordcopy_fwd_dest_aligned*
+ fun:mem*cpy
+ obj:*lib*@GLIBC_VERSION@.*.so
+}
+
+{
+ glibc-@GLIBC_VERSION@-on-SUSE-10.3-(x86)
+ Memcheck:Addr4
+ obj:/lib/ld-@GLIBC_VERSION@*.so
+ obj:/lib/ld-@GLIBC_VERSION@*.so
+ obj:/lib/ld-@GLIBC_VERSION@*.so
+}
+
+{
+ glibc24-64bit-padding-1a
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:send
+ fun:get_mapping
+ fun:__nscd_get_map_ref
+ fun:nscd*
+}
+{
+ glibc24-64bit-padding-1b
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:__sendto_nocancel
+ obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@.so
+}
+{
+ glibc24-64bit-padding-1c
+ Memcheck:Param
+ socketcall.send(msg)
+ fun:send
+ fun:__nscd_get_map_ref
+ fun:nscd_get*_r
+ fun:*nscd*
+ obj:/*libc-@GLIBC_VERSION@.so
+}
+
+
+{
+ X11-64bit-padding-3a
+ Memcheck:Param
+ write(buf)
+ obj:/*libpthread-2.4.so*
+ obj:/usr/lib*/libX11.so*
+ obj:/usr/lib*/libX11.so*
+ obj:/usr/lib*/libX11.so*
+}
+
+{
+ X11-64bit-padding-4a
+ Memcheck:Param
+ socketcall.sendto(msg)
+ fun:send
+ obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@.so
+}
+{
+ X11-64bit-padding-4b
+ Memcheck:Param
+ socketcall.send(msg)
+ fun:send
+ obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@.so
+ obj:/*libc-@GLIBC_VERSION@.so
+}
+
+##----------------------------------------------------------------------##
+# MontaVista Linux 4.0.1 on ppc32
+{
+ MVL-401-linuxthreads-pthread_create
+ Memcheck:Param
+ write(buf)
+ fun:pthread_create
+}
+{
+ MVL-401-linuxthreads-pthread_create
+ Memcheck:Param
+ write(buf)
+ obj:/lib/libpthread-0.10.so
+ fun:pthread_create
+}
Property changes on: trunk/glibc-2.X.supp.in
___________________________________________________________________
Name: svn:mergeinfo
+
|
|
From: Bart V. A. <bar...@gm...> - 2008-04-25 12:08:31
|
On Fri, Apr 25, 2008 at 1:33 PM, <sv...@va...> wrote: Hello Dirk, + obj:/lib*/ld-@GLIBC_VERSION@*.so + obj:/lib*/ld-@GLIBC_VERSION@*.so + obj:/lib*/ld-@GLIBC_VERSION@*.so + obj:/lib*/ld-@GLIBC_VERSION@*.so Your changes will cause trouble when compiling Valgrind with one glibc version and running it with another glibc version. Until now this worked. Bart. |
|
From: Dirk M. <dm...@gm...> - 2008-04-25 14:54:30
|
On Friday 25 April 2008, Bart Van Assche wrote: > + obj:/lib*/ld-@GLIBC_VERSION@*.so > Your changes will cause trouble when compiling Valgrind with one glibc > version and running it with another glibc version. Until now this > worked. Really, how? during configure it detected the glibc version (lets say 2.6) and then it included glibc-2.6.supp, which had /lib/ld-2.6.so* hardcoded. how's the current solution different? BTW, I only added this for glibc 2.8 support which I need now. if you run something <= 2.6, there should be no difference. Greetings, Dirk |
|
From: Bart V. A. <bar...@gm...> - 2008-04-25 16:21:06
|
On Fri, Apr 25, 2008 at 4:53 PM, Dirk Mueller <dm...@gm...> wrote: > Really, how? during configure it detected the glibc version (lets say 2.6) and > then it included glibc-2.6.supp, which had /lib/ld-2.6.so* hardcoded. how's > the current solution different? > > BTW, I only added this for glibc 2.8 support which I need now. if you run > something <= 2.6, there should be no difference. Hmm, you're right. But my opinion is that it would have been even more elegant if the configure-time glibc version check would have been eliminated, e.g. by introducing '*' at the right place in the patterns that depend on the glibc version. Bart. |
|
From: Bart V. A. <bar...@gm...> - 2008-04-26 08:17:55
|
On Fri, Apr 25, 2008 at 1:33 PM, <sv...@va...> wrote: > Author: dirk > Date: 2008-04-25 12:33:30 +0100 (Fri, 25 Apr 2008) > New Revision: 7915 > > Log: > glibc 2.8 has the very same checking reports as did > glibc 2.7 have.. as did glibc 2.6, as did glibc 2.5, as did glibc 2.4 > as did glibc 2.4. so consolidate into one suppression file Hello Dirk, Although your modifications are OK they break Valgrind on OpenSUSE 11. This is because of a bug in the OpenSUSE glibc-devel package: $ rpm -qf /usr/include/features.h glibc-devel-2.8-6 $ grep 'define.*__GLIBC_MINOR__' /usr/include/features.h #define __GLIBC_MINOR__ 7 Bart. |
|
From: Dirk M. <dm...@gm...> - 2008-04-28 14:44:05
|
On Saturday 26 April 2008, Bart Van Assche wrote: > Although your modifications are OK they break Valgrind on OpenSUSE 11. > This is because of a bug in the OpenSUSE glibc-devel package: this is already fixed, update (glibc-devel). Hint: I'm the packager of valgrind for openSUSE. Greetings, Dirk |
|
From: Bart V. A. <bar...@gm...> - 2008-04-28 19:34:08
|
On Mon, Apr 28, 2008 at 4:41 PM, Dirk Mueller <dm...@gm...> wrote: > On Saturday 26 April 2008, Bart Van Assche wrote: > > > Although your modifications are OK they break Valgrind on OpenSUSE 11. > > This is because of a bug in the OpenSUSE glibc-devel package: > > this is already fixed, update (glibc-devel). > > Hint: I'm the packager of valgrind for openSUSE. Thanks for the info, by this time I have updated the glibc packages of my openSUSE 11 virtual machine. And I knew that you are involved in openSUSE -- I told you about the issue with __GLIBC_MINOR__ in the hope that you could get it resolved more quickly then when I had filed a bug report. And apparently my assumption was right :-) Bart. |