]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Do siglongjmp, although without running cleanup handlers in the section
authorJulian Seward <jseward@acm.org>
Tue, 18 Jun 2002 09:07:54 +0000 (09:07 +0000)
committerJulian Seward <jseward@acm.org>
Tue, 18 Jun 2002 09:07:54 +0000 (09:07 +0000)
of stack which it skips over.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@438

coregrind/arch/x86-linux/vg_libpthread.c
coregrind/arch/x86-linux/vg_libpthread_unimp.c
coregrind/vg_libpthread.c
coregrind/vg_libpthread_unimp.c
vg_libpthread.c
vg_libpthread_unimp.c

index 25688c8b9f58e2da3ca83ec9eda03e7bd66717e6..22799a7a9e7551f38ad1f4dc92f28de442d3c70c 100644 (file)
@@ -1622,11 +1622,19 @@ void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
 /* 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))
index 74fc79c9369ee7e026e157063db3645ce6833fd7..5e526571eb82ee04ed103e5ec593c2fccc5143b2 100644 (file)
@@ -158,7 +158,7 @@ void sem_open ( void )  { unimp("sem_open"); }
 void sem_timedwait ( void )  { unimp("sem_timedwait"); }
 void sem_unlink ( void )  { unimp("sem_unlink"); }
 //void sigaction ( void )  { unimp("sigaction"); }
-void siglongjmp ( void )  { unimp("siglongjmp"); }
+//void siglongjmp ( void )  { unimp("siglongjmp"); }
 //void sigwait ( void )  { unimp("sigwait"); }
 
 void __pthread_clock_gettime ( void ) { unimp("__pthread_clock_gettime"); }
index 25688c8b9f58e2da3ca83ec9eda03e7bd66717e6..22799a7a9e7551f38ad1f4dc92f28de442d3c70c 100644 (file)
@@ -1622,11 +1622,19 @@ void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
 /* 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))
index 74fc79c9369ee7e026e157063db3645ce6833fd7..5e526571eb82ee04ed103e5ec593c2fccc5143b2 100644 (file)
@@ -158,7 +158,7 @@ void sem_open ( void )  { unimp("sem_open"); }
 void sem_timedwait ( void )  { unimp("sem_timedwait"); }
 void sem_unlink ( void )  { unimp("sem_unlink"); }
 //void sigaction ( void )  { unimp("sigaction"); }
-void siglongjmp ( void )  { unimp("siglongjmp"); }
+//void siglongjmp ( void )  { unimp("siglongjmp"); }
 //void sigwait ( void )  { unimp("sigwait"); }
 
 void __pthread_clock_gettime ( void ) { unimp("__pthread_clock_gettime"); }
index 25688c8b9f58e2da3ca83ec9eda03e7bd66717e6..22799a7a9e7551f38ad1f4dc92f28de442d3c70c 100644 (file)
@@ -1622,11 +1622,19 @@ void __libc_longjmp(jmp_buf env, int val) __attribute((noreturn));
 /* 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))
index 74fc79c9369ee7e026e157063db3645ce6833fd7..5e526571eb82ee04ed103e5ec593c2fccc5143b2 100644 (file)
@@ -158,7 +158,7 @@ void sem_open ( void )  { unimp("sem_open"); }
 void sem_timedwait ( void )  { unimp("sem_timedwait"); }
 void sem_unlink ( void )  { unimp("sem_unlink"); }
 //void sigaction ( void )  { unimp("sigaction"); }
-void siglongjmp ( void )  { unimp("siglongjmp"); }
+//void siglongjmp ( void )  { unimp("siglongjmp"); }
 //void sigwait ( void )  { unimp("sigwait"); }
 
 void __pthread_clock_gettime ( void ) { unimp("__pthread_clock_gettime"); }