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