I'm having a problem with a C++ program where the the pthread_cleanup_push cleanup routine is not being called when the thread is cancelled. This is happening because class destructors are not being called by the exception unwind routine. I found the problem to be caused by the fact that some of the system calls that are cancellation points, in this case sleep(), don't have the .eh_frame info needed to unwind the stack frames and break the unwind chain. I see that the CFLAGS for some modules have -fexceptions set, which will cause the .eh_frame to be generated, but this flag is not set for all the standard Linux defined cancellation points. Am I missing something here or has this always been broken?
Thanks Al Cooper _______________________________________________ uClibc mailing list uClibc@uclibc.org http://lists.busybox.net/mailman/listinfo/uclibc