This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]