head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.10 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.8 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.6 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.4 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.2 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.1.0.4 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.2 pkgsrc-2009Q2-base:1.1; locks; strict; comment @# @; 1.2 date 2009.11.29.03.06.44; author tnn; state dead; branches; next 1.1; 1.1 date 2009.06.19.11.34.31; author he; state Exp; branches; next ; desc @@ 1.2 log @update to thunderbird-3.0rc1. The 2.x version is still available in mail/thunderbird2. Major changes: - New Mail Account Setup Wizard - Redesigned Mail Toolbar - Tabbed Email Messages - Smart Folders - New Message Summary View - Column Headings - Message Archive - Activity Manager - New Add-ons Manager - Improved Address Book - Improved Gmail Integration Full release notes: http://www.mozillamessaging.com/en-US/thunderbird/3.0rc1/releasenotes/ @ text @$NetBSD: patch-ea,v 1.1 2009/06/19 11:34:31 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); @ 1.1 log @Update from version 2.0.0.21 to 2.0.0.21nb1. 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@@ @ text @d1 1 a1 1 $NetBSD$ @