--- /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
+