On Tue, 24 Nov 2009 16:53:35 +0200 Mikolaj Golub wrote: > Hi, > > I have problems with compiling our application under 8.0. > > It fails due to these definitions in pthread.h that look like a typo or > incorrectly applied patch: > > 170 #define pthread_cleanup_push(cleanup_routine, cleanup_arg) > \ > 171 { > \ > 172 struct _pthread_cleanup_info > __cleanup_info__; \ > 173 __pthread_cleanup_push_imp(cleanup_routine, > cleanup_arg,\ > 174 &__cleanup_info__); > \ > 175 { > 176 > 177 #define pthread_cleanup_pop(execute) > \ > 178 } > \ > 179 __pthread_cleanup_pop_imp(execute); > \ > 180 } > > > This patch fixes the problem for me:
I was hurry when said that the patch fixed the problem. The application compiled but later it crashed in pthread_cleanup_pop: (gdb) bt #0 0xbf4f9ee0 in ?? () #1 0x287d18c9 in __pthread_cleanup_pop_imp () from /lib/libthr.so.3 #2 0x287d18ed in pthread_cleanup_pop () from /lib/libthr.so.3 #3 0x287d123c in pthread_exit () from /lib/libthr.so.3 #4 0x287c7757 in pthread_getprio () from /lib/libthr.so.3 #5 0x00000000 in ?? () So, I don't know what these macros actually were supposed to be. They were introduced in r179662: Revision 1.43: download - view: text, markup, annotated - select for diffs Mon Jun 9 01:14:10 2008 UTC (17 months, 2 weeks ago) by davidxu Branches: MAIN Diff to: previous 1.42: preferred, colored Changes since revision 1.42: +21 -2 lines SVN rev 179662 on 2008-06-09 01:14:10Z by davidxu Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros, use stack space to keep cleanup information, this eliminates overhead of calling malloc() and free() in thread library. Discussed on: thread@ > --- pthread.h.orig 2009-11-24 16:44:13.000000000 +0200 > +++ pthread.h 2009-11-24 16:44:45.000000000 +0200 > @@ -172,10 +172,10 @@ > struct _pthread_cleanup_info __cleanup_info__; > \ > __pthread_cleanup_push_imp(cleanup_routine, > cleanup_arg,\ > &__cleanup_info__); > \ > - { > + } > > #define pthread_cleanup_pop(execute) > \ > - } > \ > + { \ > __pthread_cleanup_pop_imp(execute); > \ > } -- Mikolaj Golub _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"