Thunderbird, enigmail, and GCC 3.4

Xin LI delphij at delphij.net
Mon Apr 21 22:05:43 UTC 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi, Coleman,

Finally I caught the issue for thunderbird.  It was due to the
difference between our floating point handling and Linux's counterpart.
~ The patch attached would fix the problem at thunderbird part.

Unfortunately enigmail plugin compiled with gcc 4.x as shipped with
FreeBSD 7.0+ would still crash with Signal 11, but with gcc 3.4 it would
work fine.  I have not yet figured out why this would happen...

Cheers,
- --
Xin LI <delphij at delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.8 (FreeBSD)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEUEARECAAYFAkgND6wACgkQi+vbBBjt66D0awCY4lzwwwmAaOLuoGEVo9OEHI8u
ZwCfUi2KfOWUR3GFFCSiba6g5YK/sjg=
=wLNg
-----END PGP SIGNATURE-----
-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/mail/thunderbird/Makefile,v
retrieving revision 1.90
diff -u -p -r1.90 Makefile
--- Makefile	19 Apr 2008 17:51:46 -0000	1.90
+++ Makefile	21 Apr 2008 21:58:18 -0000
@@ -8,7 +8,7 @@
 
 PORTNAME=	thunderbird
 DISTVERSION=	2.0.0.12
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	mail ipv6
 MASTER_SITES=	${MASTER_SITE_MOZILLA_EXTENDED}
 MASTER_SITE_SUBDIR=	thunderbird/releases/${DISTVERSION}/source
Index: files/patch-Double.cpp
===================================================================
RCS file: /home/ncvs/ports/mail/thunderbird/files/patch-Double.cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-Double.cpp
--- files/patch-Double.cpp	16 Nov 2003 18:55:33 -0000	1.2
+++ files/patch-Double.cpp	21 Apr 2008 21:05:06 -0000
@@ -1,20 +1,20 @@
---- extensions/transformiix/source/base/Double.cpp.orig	Thu Jan 30 09:26:46 2003
-+++ extensions/transformiix/source/base/Double.cpp	Sun Nov 16 01:46:42 2003
-@@ -51,10 +51,10 @@
+--- extensions/transformiix/source/base/Double.cpp.orig	2006-06-22 12:13:00.000000000 -0700
++++ extensions/transformiix/source/base/Double.cpp	2008-04-21 14:04:37.540570448 -0700
+@@ -52,10 +52,10 @@
  //A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
  #ifdef __FreeBSD__
  #include <ieeefp.h>
 -#ifdef __alpha__
 -fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
 -#else
-+#if defined(__i386__)
++#if defined(__i386__) || defined(__amd64__)
  fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;
 +#else
 +fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP;
  #endif
  fp_except_t oldmask = fpsetmask(~allmask);
  #endif
-@@ -75,22 +75,31 @@
+@@ -115,22 +115,31 @@
  #define TX_DOUBLE_HI32_EXPMASK   0x7ff00000
  #define TX_DOUBLE_HI32_MANTMASK  0x000fffff
  


More information about the freebsd-ports mailing list