Heads up: Several thousand g++ and libstdc++ test failures on sparc[64]

Andreas Tobler toa@pop.agri.ch
Tue Oct 14 04:37:00 GMT 2003


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

	



More information about the Libstdc++ mailing list