components/stdcxx/patches/084-podarray.h.patch
changeset 402 94ae4d75524c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/stdcxx/patches/084-podarray.h.patch	Thu Jul 14 11:26:11 2011 -0700
@@ -0,0 +1,38 @@
+--- stdcxx-4.2.1/src/podarray.h	2008-04-24 17:25:19.000000000 -0700
++++ stdcxx-4.2.1/src/podarray.h	2011-03-22 15:11:44.663375428 -0700
+@@ -46,6 +46,13 @@
+ _RWSTD_NAMESPACE (__rw) { 
+ 
+ 
++#if defined(_RWSTD_OS_SUNOS)
++#if defined(__amd64) || defined(__x86_64__) || defined(__sparcv9)
++#pragma align 16(__rw_aligned_buffer)
++#else
++#pragma align 8(__rw_aligned_buffer)
++#endif
++#endif
+ // __rw_aligned_buffer specializations should be objects with static
+ // storage duration that must "survive" all other static objects and
+ // that do not need to be destroyed; this is a POD
+@@ -53,11 +60,21 @@
+ struct __rw_aligned_buffer
+ {
+     union {
++#if defined(_RWSTD_OS_SUNOS)
++	unsigned long long _C_pad0;
++#if defined(__amd64) || defined(__x86_64__) || defined(__sparcv9)
++	unsigned long long _C_pad1;
++#pragma align 16(_C_data)
++#else
++#pragma align 8(_C_data)
++#endif
++#else
+ #ifndef _RWSTD_NO_LONG_DOUBLE
+         long double _C_pad;                     // guarantee suitable alignment
+ #else
+         double      _C_pad;
+ #endif   // _RWSTD_NO_LONG_DOUBLE
++#endif   // defined(_RWSTD_OS_SUNOS)
+         void       *_C_void_pad;
+         void      (*_C_pfn_pad)();
+         char        _C_data [sizeof (_TypeT)];  // data to back _TypeT up with