components/stdcxx/patches/039-exception.cpp.patch
changeset 402 94ae4d75524c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/stdcxx/patches/039-exception.cpp.patch	Thu Jul 14 11:26:11 2011 -0700
@@ -0,0 +1,25 @@
+--- stdcxx-4.2.1/src/exception.cpp	2008-04-24 20:25:19.000000000 -0400
++++ stdcxx-4.2.1/src/exception.cpp	2009-07-29 16:40:30.000000000 -0400
+@@ -577,6 +577,11 @@
+     static int             __catset =  1;   // catalog set
+     static _Msgs::catalog  __cat    = -1;   // catalog id
+ 
++#if defined(_RWSTD_STRICT_SPARCV8_MUTEX_ALIGNMENT)
++#  pragma pack(8)
++#  pragma align 8(__rw_aligned_buffer)
++#endif
++
+     // facet must never be destroyed
+     static __rw_aligned_buffer<_Msgs> msgs;
+ 
+@@ -625,6 +630,10 @@
+     // retrieve error message from catalog and use it to format args
+     _STD::string fmat = msgs._C_data ()->get (__cat, __catset, id, "");
+ 
++#if defined(_RWSTD_STRICT_SPARCV8_MUTEX_ALIGNMENT)
++#  pragma pack(0)
++#endif
++
+     if (fmat.empty ())
+         return 0;   // failure to retrieve message
+