------- Comment #14 from pcarlini at suse dot de 2005-11-08 11:50 ------- (In reply to comment #13)
> Indeed, other parts of libstdc++ already rely on __gthread_active_p(). Sure, see mt_alloc: there is an external __GTHREADS and an internal __gthread_active_p(). > Using __GTHREADS would get us halfway, but nobody in his right mind > (certainly no distributor) is going to compile with --enable-threads=single > on a platform that does posix - you get a crippled compiler. I'd hate to > have to keep two compilers around. This is meaningless. The configure option is present and has to be used consistently in the whole library. Again, see mt_alloc. > I've verified that adding a check on __gthread_active_p() to > bits/basic_string.h does the right thing. It only does so after a complete > recompile of libstdc++ though, the code is indeed instantiated earlier (as > you mentioned already). Of course does the right thing, there is no doubt about this. But, again, it's inconsistent and ugly adding conditionals all around only in basic_string and not touching all the other places. We simply want to do the same thing that mt_alloc is already doing, centralized in one place. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24704