Do siglongjmp, although without running cleanup handlers in the section
of stack which it skips over.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@438 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/vg_libpthread.c b/coregrind/vg_libpthread.c
index 25688c8..22799a7 100644
--- a/coregrind/vg_libpthread.c
+++ b/coregrind/vg_libpthread.c
@@ -1622,11 +1622,19 @@
 /* not weak: __attribute__((weak)) */
 void longjmp(jmp_buf env, int val)
 {
-   __my_pthread_testcancel();
    __libc_longjmp(env, val);
 }
 
 
+extern void __libc_siglongjmp (sigjmp_buf env, int val)
+                               __attribute__ ((noreturn));
+void siglongjmp(sigjmp_buf env, int val)
+{
+   kludged("siglongjmp (cleanup handlers are ignored)");
+   __libc_siglongjmp(env, val);
+}
+
+
 extern
 int __libc_send(int s, const void *msg, size_t len, int flags);
 __attribute__((weak))