Change _pthread_cleanup_push and _pthread_cleanup_pop into no-ops
rather than aborts.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@237 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index d869d53..a8665fa 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -1524,6 +1524,28 @@
       ignored("_pthread_cleanup_pop_restore");
 }
 
+/*--------*/
+void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
+                            void (*__routine) (void *),
+                            void *__arg)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) 
+      ignored("_pthread_cleanup_push");
+}
+
+void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
+                           int __execute)
+{
+   static int moans = N_MOANS;
+   if (moans-- > 0) {
+      if (__execute)
+         ignored("_pthread_cleanup_pop-EXECUTE");
+      else 
+         ignored("_pthread_cleanup_pop-NO-EXECUTE");
+   }
+}
+
 
 /* This doesn't seem to be needed to simulate libpthread.so's external
    interface, but many people complain about its absence. */