This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Heads up: Several thousand g++ and libstdc++ test failures onsparc[64]
Loren James Rittle wrote:
Not a Solaris bug; correction of a minor confusion of the use of the
gthr API. At the time the code was written, it was not known by the
author(s), that some environments might find the macro defined to 1,
yet the dynamic check returned 0...
Thank you for testing, adding a ChangeLog and committing.
Is the below suitable? If so I would commit.
A better fix might (a) update the gthr-single.h file to make it work
like all other implementations thus removing the need to check the
macro in this case and (b) update the other gthr-*.h files such that
the __gthread_once API did the right thing internally w.r.t. the
dynamic check; thus removing the need for multiple paths in the
caller. However, changing the gthr ABI/API is a lot more complex...
At the moment out of my scope. I jump from A to B to C and I feel
sometimes at nowhere land.
Thanks,
Andreas
2003-10-14 Petur Runolfsson <peturr02@ru.is>
Andreas Tobler <a.tobler@schweiz.ch>
* src/locale.cc (locale::_S_initialize): Workaround a
confusion of the use of the gthr API when __gthread_active_p()
returns true.
RCS file: /cvs/gcc/gcc/libstdc++-v3/src/locale.cc,v
retrieving revision 1.96
diff -u -r1.96 locale.cc
--- src/locale.cc 9 Oct 2003 21:17:11 -0000 1.96
+++ src/locale.cc 14 Oct 2003 04:32:49 -0000
@@ -395,12 +395,9 @@
#ifdef __GTHREADS
if (__gthread_active_p())
__gthread_once(&_S_once, _S_initialize_once);
- else
#endif
- {
- if (!_S_classic)
- _S_initialize_once();
- }
+ if (!_S_classic)
+ _S_initialize_once();
}
void