Date: Mon, 21 Apr 2008 22:01:19 GMT From: Xin LI <delphij@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/122975: [PATCH] Fix for mail/thunderbird SIGFPE crash on FreeBSD/amd64 Message-ID: <200804212201.m3LM1JoW052387@freefall.freebsd.org> Resent-Message-ID: <200804212210.m3LMA3fT052781@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 122975 >Category: ports >Synopsis: [PATCH] Fix for mail/thunderbird SIGFPE crash on FreeBSD/amd64 >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Apr 21 22:10:03 UTC 2008 >Closed-Date: >Last-Modified: >Originator: Xin LI >Release: FreeBSD 7.0-STABLE i386 >Organization: The FreeBSD Project >Environment: System: FreeBSD freefall.freebsd.org 7.0-STABLE FreeBSD 7.0-STABLE #34: Sat Apr 12 11:52:18 UTC 2008 simon@freefall.freebsd.org:/usr/src/sys/i386/compile/FREEFALL i386 >Description: thunderbird crashes on FreeBSD/amd64 8.0-CURRENT due to SIGFPE issue, which is caused by caculation towards to 0 for a lot of pieces of code. This patch extends the mask of underflow exception from covering only i386 to both i386 and amd64. >How-To-Repeat: >Fix: --- thunderbird.diff begins here --- 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 --- thunderbird.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804212201.m3LM1JoW052387>