Package: gcc-4.4-hppa-linux-gnu Severity: normal I think that I found (when debugging Boehm GC) a gcc bug on hppa.
Attached is a testcase program, test-pthread-cancel.c. I test it on paer.debian.org, where the kernel is: Linux version 2.6.32-3-parisc64 (Debian 2.6.32-9) (m...@debian.org) (gcc version 4.3.4 (GCC) ) #1 Thu Feb 25 13:08:44 UTC 2010 $ gcc -pthread test-pthread-cancel.c $ ./a.out clean it up $ gcc -pthread test-pthread-cancel.c -fexceptions $ ./a.out $ # No output On i486-pc-linux-gnu, we see output for both cases (with/without -fexceptions). It seems that signal handling has been changed after gcc-4.4.3/gcc/config/pa/linux-unwind.h was written. We can see the value 0x34190000 at the register rp, but not at the register sp. ----------------------------------- test-pthread-cancel.c #include <pthread.h> #include <time.h> #include <stdio.h> static void clean(void *arg) { puts ("clean it up"); } static void * f(void *arg) { struct timespec t; t.tv_sec = 0; t.tv_nsec = 1000; pthread_cleanup_push (clean, NULL); while (1) nanosleep (&t, NULL); pthread_cleanup_pop(1); } int main (int argc, char argv[]) { struct timespec t; t.tv_sec = 0; t.tv_nsec = 10000; pthread_t tid; pthread_create (&tid, NULL, f, NULL); nanosleep (&t, NULL); pthread_cancel (tid); pthread_join (tid, NULL); } ----------------------------------- -- -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org