Blame SOURCES/gcc34-pr23591.patch

6693b3
2006-01-10  Benjamin Kosnik  <bkoz@redhat.com>
6693b3
	    Ulrich Drepper  <drepper@redhat.com>
6693b3
6693b3
	PR libstdc++/23591
6693b3
	* libsupc++/eh_globals.cc: Make global thread local.
6693b3
6693b3
--- libstdc++-v3/libsupc++/eh_globals.cc.jj	2005-11-21 14:43:32.000000000 +0100
6693b3
+++ libstdc++-v3/libsupc++/eh_globals.cc	2006-04-21 15:38:55.000000000 +0200
6693b3
@@ -36,6 +36,26 @@
6693b3
 
6693b3
 using namespace __cxxabiv1;
6693b3
 
6693b3
+#if 1
6693b3
+namespace __gnu_internal
6693b3
+{
6693b3
+  __cxxabiv1::__cxa_eh_globals*
6693b3
+  get_global() throw()
6693b3
+  {
6693b3
+    static __thread __cxxabiv1::__cxa_eh_globals global __attribute__((tls_model ("initial-exec")));
6693b3
+    return &global;
6693b3
+  }
6693b3
+}
6693b3
+
6693b3
+extern "C" __cxa_eh_globals*
6693b3
+__cxxabiv1::__cxa_get_globals_fast() throw()
6693b3
+{ return __gnu_internal::get_global(); }
6693b3
+
6693b3
+extern "C" __cxa_eh_globals*
6693b3
+__cxxabiv1::__cxa_get_globals() throw()
6693b3
+{ return __gnu_internal::get_global(); }
6693b3
+
6693b3
+#else
6693b3
 
6693b3
 // Single-threaded fallback buffer.
6693b3
 static __cxa_eh_globals globals_static;
6693b3
@@ -125,3 +145,4 @@ __cxa_get_globals () throw()
6693b3
   return &globals_static;
6693b3
 #endif
6693b3
 }
6693b3
+#endif