From 3cec9df0a05e42f88a4ac82d23b894ecb11b6782 Mon Sep 17 00:00:00 2001 From: he Date: Fri, 19 Jun 2009 11:25:15 +0000 Subject: Update from version 0.9 to 0.9nb1. Pkgsrc changes: o For the benefit of 64-bit strict alignment archs using gcc, such as NetBSD/sparc64, ensure that the specially crafted double values are properly aligned. Thanks to martin@ for pointing to the problem. This should stop regxpcom from dropping core on NetBSD/sparc64. OK'ed by wiz@ --- time/sunbird/Makefile | 4 ++-- time/sunbird/distinfo | 3 ++- time/sunbird/patches/patch-en | 47 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 time/sunbird/patches/patch-en (limited to 'time') diff --git a/time/sunbird/Makefile b/time/sunbird/Makefile index c82f63ef8bf..081d4f1afb0 100644 --- a/time/sunbird/Makefile +++ b/time/sunbird/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.7 2009/05/29 13:22:11 he Exp $ +# $NetBSD: Makefile,v 1.8 2009/06/19 11:25:15 he Exp $ MOZILLA= sunbird -#PKGREVISION= 1 +PKGREVISION= 1 COMMENT= Mozilla stand-alone calendar application diff --git a/time/sunbird/distinfo b/time/sunbird/distinfo index 8fa89fa2fe6..b3787d2e6b1 100644 --- a/time/sunbird/distinfo +++ b/time/sunbird/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.13 2009/06/04 13:50:59 hasso Exp $ +$NetBSD: distinfo,v 1.14 2009/06/19 11:25:15 he Exp $ SHA1 (lightning-sunbird-0.9-source.tar.bz2) = e85bbc08515cc64258fbba837b89f6ba55005480 RMD160 (lightning-sunbird-0.9-source.tar.bz2) = d127fd16a59b945b10b125edf27a310c52a2725f @@ -66,3 +66,4 @@ SHA1 (patch-ej) = 2fa7456d555af1914e5368dec611685c433dd6eb SHA1 (patch-ek) = 663dc7b550ee5ee8fae36ed0a3fd33cf648424a9 SHA1 (patch-el) = a3de4f5b9ff7939c5c4b970b7060154044958db0 SHA1 (patch-em) = f764352c692409dc47b774705d987b135ae18a98 +SHA1 (patch-en) = eaa1cb5d2d87aa6f6fbe9aeb4b3b557f183cbc0a diff --git a/time/sunbird/patches/patch-en b/time/sunbird/patches/patch-en new file mode 100644 index 00000000000..40db68e2a12 --- /dev/null +++ b/time/sunbird/patches/patch-en @@ -0,0 +1,47 @@ +$NetBSD: patch-en,v 1.1 2009/06/19 11:25:15 he Exp $ + +For the benefit of 64-bit strict alignment archs using gcc, such +as NetBSD/sparc64, ensure that the specially crafted double values +are properly aligned. + +--- extensions/transformiix/source/base/Double.cpp.orig 2006-06-22 21:13:00.000000000 +0200 ++++ extensions/transformiix/source/base/Double.cpp +@@ -95,8 +95,12 @@ typedef union txdpun { + #define TX_DOUBLE_HI32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.hi; })) + #define TX_DOUBLE_LO32(x) (__extension__ ({ txdpun u; u.d = (x); u.s.lo; })) + ++#define __d_align __attribute__ ((aligned (__alignof__(double)))) ++ + #else // __GNUC__ + ++#define __d_align /* Empty */ ++ + /* We don't know of any non-gcc compilers that perform alias optimization, + * so this code should work. + */ +@@ -117,17 +121,19 @@ typedef union txdpun { + + //-- Initialize Double related constants + #ifdef IS_BIG_ENDIAN +-const PRUint32 nanMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, ++const PRUint32 nanMask[2] __d_align = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, + 0xffffffff}; +-const PRUint32 infMask[2] = {TX_DOUBLE_HI32_EXPMASK, 0}; +-const PRUint32 negInfMask[2] = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0}; ++const PRUint32 infMask[2] __d_align = {TX_DOUBLE_HI32_EXPMASK, 0}; ++const PRUint32 negInfMask[2] __d_align = {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0}; + #else +-const PRUint32 nanMask[2] = {0xffffffff, ++const PRUint32 nanMask[2] __d_align = {0xffffffff, + TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK}; +-const PRUint32 infMask[2] = {0, TX_DOUBLE_HI32_EXPMASK}; +-const PRUint32 negInfMask[2] = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT}; ++const PRUint32 infMask[2] __d_align = {0, TX_DOUBLE_HI32_EXPMASK}; ++const PRUint32 negInfMask[2] __d_align = {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT}; + #endif + ++#undef __d_align ++ + const double Double::NaN = *((double*)nanMask); + const double Double::POSITIVE_INFINITY = *((double*)infMask); + const double Double::NEGATIVE_INFINITY = *((double*)negInfMask); -- cgit v1.2.3