Subject: 64-bit www/firefox on sparc64
To: None <port-sparc64@NetBSD.org>
From: None <sigsegv@rambler.ru>
List: port-sparc64
Date: 03/17/2005 01:41:57
This is a multi-part message in MIME format.
--------------010001040300050603060106
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Just a quick note to say I fixed up a few things which were causing 
firefox to terminate with "Bus error". The attached patch allows firefox 
to build and install properly, it even runs after installation, but it's 
very unstable, it keeps crashing from time to time, stop button does not 
seem to work, and SSL seems to be broken. But if anyone wants to 
experiment...

--------------010001040300050603060106
Content-Type: text/plain;
 name="Double.cpp.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="Double.cpp.diff"

*** extensions/transformiix/source/base/Double.cpp.orig	Wed Mar 16 17:58:58 2005
--- extensions/transformiix/source/base/Double.cpp	Wed Mar 16 17:59:16 2005
***************
*** 116,130 ****
--- 116,173 ----
  
  //-- Initialize Double related constants
  #ifdef IS_BIG_ENDIAN
+ /*
  const PRUint32 nanMask[2] =    {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};
+ */
+ 
+ /* alignment needs to be to 'double' datatype */
+ union {
+ const PRUint32 nanMask[2];
+ double dummy;
+ } un_nanMask = { {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK, 0xffffffff} };
+ #define nanMask (un_nanMask.nanMask)
+ 
+ union {
+ const PRUint32 infMask[2];
+ double dummy;
+ } un_infMask = { {TX_DOUBLE_HI32_EXPMASK, 0} };
+ #define infMask (un_infMask.infMask)
+ 
+ union {
+ const PRUint32 negInfMask[2];
+ double dummy;
+ } un_negInfMask = { {TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT, 0} };
+ #define negInfMask (un_negInfMask.negInfMask)
+ 
  #else
+ /*
  const PRUint32 nanMask[2] =    {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};
+ */
+ 
+ /* alignment needs to be to 'double' datatype */
+ union {
+ const PRUint32 nanMask[2];
+ double dummy;
+ } un_nanMask = { {0xffffffff, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_MANTMASK} };
+ #define nanMask (un_nanMask.nanMask)
+ 
+ union {
+ const PRUint32 infMask[2];
+ double dummy;
+ } un_infMask = { {0, TX_DOUBLE_HI32_EXPMASK} };
+ #define infMask (un_infMask.infMask)
+ 
+ union {
+ const PRUint32 negInfMask[2];
+ double dummy;
+ } un_negInfMask = { {0, TX_DOUBLE_HI32_EXPMASK | TX_DOUBLE_HI32_SIGNBIT} };
+ #define negInfMask (un_negInfMask.negInfMask)
  #endif
  
  const double Double::NaN = *((double*)nanMask);

--------------010001040300050603060106--