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