Add some Helgrind suppressions for LinuxThreads.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7146 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/Makefile.am b/Makefile.am
index a9694a3..260f507 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,7 +20,8 @@
SUPP_FILES = \
glibc-2.2.supp glibc-2.3.supp glibc-2.4.supp glibc-2.5.supp \
glibc-2.6.supp aix5libc.supp xfree-3.supp xfree-4.supp \
- glibc-2.X-helgrind.supp
+ glibc-2.3456-NPTL-helgrind.supp \
+ glibc-2.2-LinuxThreads-helgrind.supp
dist_val_DATA = $(SUPP_FILES) default.supp
diff --git a/configure.in b/configure.in
index cc7190e..300fe29 100644
--- a/configure.in
+++ b/configure.in
@@ -473,30 +473,35 @@
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])
- DEFAULT_SUPP="glibc-2.2.supp glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.2.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.2-LinuxThreads-helgrind.supp ${DEFAULT_SUPP}"
;;
2.3)
AC_MSG_RESULT(2.3 family)
AC_DEFINE([GLIBC_2_3], 1, [Define to 1 if you're using glibc 2.3.x])
- DEFAULT_SUPP="glibc-2.3.supp glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.3.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.3456-NPTL-helgrind.supp ${DEFAULT_SUPP}"
;;
2.4)
AC_MSG_RESULT(2.4 family)
AC_DEFINE([GLIBC_2_4], 1, [Define to 1 if you're using glibc 2.4.x])
- DEFAULT_SUPP="glibc-2.4.supp glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.4.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.3456-NPTL-helgrind.supp ${DEFAULT_SUPP}"
;;
2.5)
AC_MSG_RESULT(2.5 family)
AC_DEFINE([GLIBC_2_5], 1, [Define to 1 if you're using glibc 2.5.x])
- DEFAULT_SUPP="glibc-2.5.supp glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.5.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.3456-NPTL-helgrind.supp ${DEFAULT_SUPP}"
;;
2.6)
AC_MSG_RESULT(2.6 family)
AC_DEFINE([GLIBC_2_6], 1, [Define to 1 if you're using glibc 2.6.x])
- DEFAULT_SUPP="glibc-2.6.supp glibc-2.X-helgrind.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.6.supp ${DEFAULT_SUPP}"
+ DEFAULT_SUPP="glibc-2.3456-NPTL-helgrind.supp ${DEFAULT_SUPP}"
;;
aix5)
AC_MSG_RESULT(AIX 5.1 or 5.2 or 5.3)
diff --git a/glibc-2.2-LinuxThreads-helgrind.supp b/glibc-2.2-LinuxThreads-helgrind.supp
new file mode 100644
index 0000000..20a2fd6
--- /dev/null
+++ b/glibc-2.2-LinuxThreads-helgrind.supp
@@ -0,0 +1,64 @@
+
+## Helgrind really doesn't support LinuxThreads-based threading
+## (which is absolutely ancient by now). But just in case anyone
+## is nuts enough to try it, here are some suppressions.
+
+{
+ helgrind-glibc22-LinuxThreads-1
+ Helgrind:Race
+ obj:/lib*/libpthread-0.10.so*
+}
+{
+ helgrind-glibc22-LinuxThreads-2
+ Helgrind:Race
+ obj:/lib*/ld-2.2.*so*
+ obj:/lib*/ld-2.2.*so*
+}
+{
+ helgrind-glibc22-LinuxThreads-3
+ Helgrind:Race
+ obj:/lib*/libc-2.2.*so*
+ obj:/lib*/libc-2.2.*so*
+}
+{
+ helgrind-glibc22-LinuxThreads-4
+ Helgrind:Race
+ obj:/lib*/ld-2.2.*so*
+ obj:/lib*/libc-2.2.*so*
+}
+{
+ helgrind-glibc22-LinuxThreads-5
+ Helgrind:Race
+ obj:/lib*/libc-2.2.*so*
+ fun:pthread_*
+}
+{
+ helgrind-glibc22-LinuxThreads-6
+ Helgrind:Race
+ fun:pthread_*
+ obj:/lib*/libc-2.2.*so*
+}
+{
+ helgrind-glibc22-LinuxThreads-7
+ Helgrind:Race
+ fun:mythread_wrapper
+ fun:pthread_*
+}
+{
+ helgrind-glibc22-LinuxThreads-8
+ Helgrind:Misc
+ fun:pthread_mutex_lock
+ fun:_IO_*
+}
+{
+ helgrind-glibc22-LinuxThreads-9
+ Helgrind:UnlockForeign
+ fun:pthread_mutex_unlock
+ fun:_IO_*
+}
+{
+ helgrind-glibc22-LinuxThreads-10
+ Helgrind:Misc
+ fun:_Exit
+ obj:/lib*/libpthread-0.10.so*
+}
diff --git a/glibc-2.X-helgrind.supp b/glibc-2.3456-NPTL-helgrind.supp
similarity index 100%
rename from glibc-2.X-helgrind.supp
rename to glibc-2.3456-NPTL-helgrind.supp