pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/www Redo the previous "double alignemnet" fix more com...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/660c0246d311
branches:  trunk
changeset: 495660:660c0246d311
user:      martin <martin%pkgsrc.org@localhost>
date:      Thu Jun 16 21:38:09 2005 +0000

description:
Redo the previous "double alignemnet" fix more completely. The previous
state was completely broken.

diffstat:

 www/firefox/distinfo         |   10 ++-
 www/firefox/patches/patch-cg |  150 ++++++++++++++++++++++++++++++++++++------
 www/firefox/patches/patch-ch |   18 +++++
 www/firefox/patches/patch-ci |   13 +++
 www/firefox/patches/patch-cj |   32 +++++++++
 www/firefox/patches/patch-ck |   19 +++++
 www/firefox/patches/patch-cl |   31 ++++++++
 www/firefox/patches/patch-cm |   13 +++
 www/mozilla/distinfo         |   10 ++-
 www/mozilla/patches/patch-cd |   37 ----------
 www/mozilla/patches/patch-cg |  143 ++++++++++++++++++++++++++++++++++++++++
 www/mozilla/patches/patch-ch |   18 +++++
 www/mozilla/patches/patch-ci |   13 +++
 www/mozilla/patches/patch-cj |   32 +++++++++
 www/mozilla/patches/patch-ck |   19 +++++
 www/mozilla/patches/patch-cl |   31 ++++++++
 www/mozilla/patches/patch-cm |   13 +++
 17 files changed, 539 insertions(+), 63 deletions(-)

diffs (truncated from 699 to 300 lines):

diff -r 1117d937ff93 -r 660c0246d311 www/firefox/distinfo
--- a/www/firefox/distinfo      Thu Jun 16 21:19:07 2005 +0000
+++ b/www/firefox/distinfo      Thu Jun 16 21:38:09 2005 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.30 2005/06/02 12:37:33 martin Exp $
+$NetBSD: distinfo,v 1.31 2005/06/16 21:39:06 martin Exp $
 
 SHA1 (firefox-1.0.4/firefox-1.0.4-source.tar.bz2) = d030628e52e1bebe9d6515d7fab5a126a1b6b38a
 RMD160 (firefox-1.0.4/firefox-1.0.4-source.tar.bz2) = 4b04740fe4615ddddd16ec296509177ab29d4edc
@@ -39,4 +39,10 @@
 SHA1 (patch-cd) = bbe839bce72a1d6816fa0c091172a818fb469981
 SHA1 (patch-ce) = f7db7a46d40b80287774f93d55b05a5ad0c79214
 SHA1 (patch-cf) = 337bc106afe7ce3fa6678fca4c0317714393a977
-SHA1 (patch-cg) = bc93de493522d6685b983f961513ff97d0a92266
+SHA1 (patch-cg) = 5991f102f19ef73ae771f9fc352ece5ce89eb928
+SHA1 (patch-ch) = 281dc9957784b4f75170377d09c22735ce7f8500
+SHA1 (patch-ci) = b9868757c31ea577c2df99eb7f41503d55d904f0
+SHA1 (patch-cj) = a17331d248dd0d3ed85c81f6c1095f384d810b0d
+SHA1 (patch-ck) = 5db42f8047046e10f388bdaf299c35c415a50f8d
+SHA1 (patch-cl) = 1450e99f5e5f31f0e8d01b68bb50494f84eed068
+SHA1 (patch-cm) = 2a347bcf5814816539835caf65dd888f71ceea20
diff -r 1117d937ff93 -r 660c0246d311 www/firefox/patches/patch-cg
--- a/www/firefox/patches/patch-cg      Thu Jun 16 21:19:07 2005 +0000
+++ b/www/firefox/patches/patch-cg      Thu Jun 16 21:38:09 2005 +0000
@@ -1,37 +1,143 @@
-$NetBSD: patch-cg,v 1.1 2005/06/02 12:37:33 martin Exp $
+$NetBSD: patch-cg,v 1.2 2005/06/16 21:39:06 martin Exp $
 
 --- extensions/transformiix/source/base/Double.cpp.orig        2004-01-15 22:23:18.000000000 +0100
-+++ extensions/transformiix/source/base/Double.cpp     2005-05-30 15:51:38.000000000 +0200
-@@ -48,6 +48,24 @@
++++ extensions/transformiix/source/base/Double.cpp     2005-06-16 09:47:09.000000000 +0200
+@@ -48,114 +48,34 @@
   * Utility class for doubles
   */
  
-+/* this should be some other predicate - like "has working math support" */
-+#if defined(__NetBSD__) || (defined(__sun__) && defined(_LP64))
-+MBool Double::isInfinite(double aDbl)
+-//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
+-fp_except_t allmask = FP_X_INV|FP_X_OFL|FP_X_UFL|FP_X_DZ|FP_X_IMP|FP_X_DNML;
+-#endif
+-fp_except_t oldmask = fpsetmask(~allmask);
+-#endif
+-
+-/**
+- * Macros to workaround math-bugs bugs in various platforms
+- */
+-
+-/**
+- * Stefan Hanske <sh990154%mail.uni-greifswald.de@localhost> reports:
+- *  ARM is a little endian architecture but 64 bit double words are stored
+- * differently: the 32 bit words are in little endian byte order, the two words
+- * are stored in big endian`s way.
+- */
+-
+-#if defined(__arm) || defined(__arm32__) || defined(_arm26__) || defined(__arm__)
+-#define CPU_IS_ARM
+-#endif
+-
+-#if (__GNUC__ == 2 && __GNUC_MINOR__ > 95) || __GNUC__ > 2
+-/**
+- * This version of the macros is safe for the alias optimizations
+- * that gcc does, but uses gcc-specific extensions.
+- */
+-
+-typedef union txdpun {
+-    PRFloat64 d;
+-    struct {
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
+-        PRUint32 lo, hi;
+-#else
+-        PRUint32 hi, lo;
+-#endif
+-    } s;
+-} 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; }))
+-
+-#else // __GNUC__
++double Double::NaN()
 +{
-+      return isinf(aDbl);
++      return NAN;
 +}
-+
-+MBool Double::isNaN(double aDbl)
+ 
+-/* We don't know of any non-gcc compilers that perform alias optimization,
+- * so this code should work.
+- */
++double Double::PositiveInfinity()
 +{
-+      return isnan(aDbl);
++      return INFINITY;
 +}
-+
-+MBool Double::isNeg(double aDbl)
+ 
+-#if defined(IS_LITTLE_ENDIAN) && !defined(CPU_IS_ARM)
+-#define TX_DOUBLE_HI32(x)        (((PRUint32 *)&(x))[1])
+-#define TX_DOUBLE_LO32(x)        (((PRUint32 *)&(x))[0])
+-#else
+-#define TX_DOUBLE_HI32(x)        (((PRUint32 *)&(x))[0])
+-#define TX_DOUBLE_LO32(x)        (((PRUint32 *)&(x))[1])
+-#endif
+-
+-#endif // __GNUC__
+-
+-#define TX_DOUBLE_HI32_SIGNBIT   0x80000000
+-#define TX_DOUBLE_HI32_EXPMASK   0x7ff00000
+-#define TX_DOUBLE_HI32_MANTMASK  0x000fffff
+-
+-//-- 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};
+-#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};
+-#endif
+-
+-const double Double::NaN = *((double*)nanMask);
+-const double Double::POSITIVE_INFINITY = *((double*)infMask);
+-const double Double::NEGATIVE_INFINITY = *((double*)negInfMask);
++double Double::NegativeInfinity()
 +{
-+      return aDbl<0.0;
++      return -INFINITY;
 +}
-+#else
-+
- //A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
- #ifdef __FreeBSD__
- #include <ieeefp.h>
-@@ -157,6 +175,7 @@
+ 
+-/*
+- * Determines whether the given double represents positive or negative
+- * inifinity
+- */
+ MBool Double::isInfinite(double aDbl)
  {
-     return (TX_DOUBLE_HI32(aDbl) & TX_DOUBLE_HI32_SIGNBIT) != 0;
+-    return ((TX_DOUBLE_HI32(aDbl) & ~TX_DOUBLE_HI32_SIGNBIT) == TX_DOUBLE_HI32_EXPMASK &&
+-            !TX_DOUBLE_LO32(aDbl));
++      return isinf(aDbl);
  }
-+#endif
+ 
+-/*
+- * Determines whether the given double is NaN
+- */
+ MBool Double::isNaN(double aDbl)
+ {
+-    return ((TX_DOUBLE_HI32(aDbl) & TX_DOUBLE_HI32_EXPMASK) == TX_DOUBLE_HI32_EXPMASK &&
+-            (TX_DOUBLE_LO32(aDbl) || (TX_DOUBLE_HI32(aDbl) & TX_DOUBLE_HI32_MANTMASK)));
++      return isnan(aDbl);
+ }
+ 
+-/*
+- * Determines whether the given double is negative
+- */
+ MBool Double::isNeg(double aDbl)
+ {
+-    return (TX_DOUBLE_HI32(aDbl) & TX_DOUBLE_HI32_SIGNBIT) != 0;
++      return aDbl<0.0;
+ }
  
  /*
-  * Converts the given String to a double, if the String value does not
+@@ -244,7 +164,7 @@
+     {
+         if (mState == eIllegal || mBuffer.IsEmpty() ||
+             (mBuffer.Length() == 1 && mBuffer[0] == '.')) {
+-            return Double::NaN;
++            return Double::NaN();
+         }
+         return mSign*PR_strtod(mBuffer.get(), 0);
+     }
diff -r 1117d937ff93 -r 660c0246d311 www/firefox/patches/patch-ch
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox/patches/patch-ch      Thu Jun 16 21:38:09 2005 +0000
@@ -0,0 +1,18 @@
+$NetBSD: patch-ch,v 1.1 2005/06/16 21:39:06 martin Exp $
+
+--- extensions/transformiix/source/base/primitives.h.orig      2003-01-17 13:43:05.000000000 +0100
++++ extensions/transformiix/source/base/primitives.h   2005-06-16 09:46:56.000000000 +0200
+@@ -51,10 +51,9 @@
+     /*
+      * Usefull constants
+      */
+-
+-    static const double NaN;
+-    static const double POSITIVE_INFINITY;
+-    static const double NEGATIVE_INFINITY;
++    static double NaN();
++    static double PositiveInfinity();
++    static double NegativeInfinity();
+ 
+     /*
+      * Determines whether the given double represents positive or negative
diff -r 1117d937ff93 -r 660c0246d311 www/firefox/patches/patch-ci
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox/patches/patch-ci      Thu Jun 16 21:38:09 2005 +0000
@@ -0,0 +1,13 @@
+$NetBSD: patch-ci,v 1.1 2005/06/16 21:39:06 martin Exp $
+
+--- extensions/transformiix/source/xpath/FunctionCall.cpp.orig 2003-11-04 16:13:03.000000000 +0100
++++ extensions/transformiix/source/xpath/FunctionCall.cpp      2005-06-16 09:14:19.000000000 +0200
+@@ -92,7 +92,7 @@
+     nsRefPtr<txAExprResult> exprResult;
+     nsresult rv = aExpr->evaluate(aContext, getter_AddRefs(exprResult));
+     if (NS_FAILED(rv))
+-        return Double::NaN;
++        return Double::NaN();
+ 
+     return exprResult->numberValue();
+ }
diff -r 1117d937ff93 -r 660c0246d311 www/firefox/patches/patch-cj
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox/patches/patch-cj      Thu Jun 16 21:38:09 2005 +0000
@@ -0,0 +1,32 @@
+$NetBSD: patch-cj,v 1.1 2005/06/16 21:39:06 martin Exp $
+
+--- extensions/transformiix/source/xpath/MultiplicativeExpr.cpp.orig   2003-11-20 00:06:14.000000000 +0100
++++ extensions/transformiix/source/xpath/MultiplicativeExpr.cpp        2005-06-16 09:29:24.000000000 +0200
+@@ -71,22 +71,22 @@
+ #if defined(XP_WIN)
+                 /* XXX MSVC miscompiles such that (NaN == 0) */
+                 if (Double::isNaN(rightDbl))
+-                    result = Double::NaN;
++                    result = Double::NaN();
+                 else
+ #endif
+                 if (leftDbl == 0 || Double::isNaN(leftDbl))
+-                    result = Double::NaN;
++                    result = Double::NaN();
+                 else if (Double::isNeg(leftDbl) ^ Double::isNeg(rightDbl))
+-                    result = Double::NEGATIVE_INFINITY;
++                    result = Double::NegativeInfinity();
+                 else
+-                    result = Double::POSITIVE_INFINITY;
++                    result = Double::PositiveInfinity();
+             }
+             else
+                 result = leftDbl / rightDbl;
+             break;
+         case MODULUS:
+             if (rightDbl == 0) {
+-                result = Double::NaN;
++                result = Double::NaN();
+             }
+             else {
+ #if defined(XP_WIN)
diff -r 1117d937ff93 -r 660c0246d311 www/firefox/patches/patch-ck
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox/patches/patch-ck      Thu Jun 16 21:38:09 2005 +0000
@@ -0,0 +1,19 @@
+$NetBSD: patch-ck,v 1.1 2005/06/16 21:39:06 martin Exp $
+
+--- extensions/transformiix/source/xslt/functions/txFormatNumberFunctionCall.cpp.orig  2003-06-17 00:31:17.000000000 +0200
++++ extensions/transformiix/source/xslt/functions/txFormatNumberFunctionCall.cpp       2005-06-16 10:06:22.000000000 +0200
+@@ -112,12 +112,12 @@
+         return aContext->recycler()->getStringResult(format->mNaN, aResult);
+     }
+ 
+-    if (value == Double::POSITIVE_INFINITY) {
++    if (value == Double::PositiveInfinity()) {
+         return aContext->recycler()->getStringResult(format->mInfinity,
+                                                      aResult);
+     }
+ 
+-    if (value == Double::NEGATIVE_INFINITY) {
++    if (value == Double::NegativeInfinity()) {
+         nsAutoString res;
+         res.Append(format->mMinusSign);
+         res.Append(format->mInfinity);
diff -r 1117d937ff93 -r 660c0246d311 www/firefox/patches/patch-cl
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/www/firefox/patches/patch-cl      Thu Jun 16 21:38:09 2005 +0000
@@ -0,0 +1,31 @@
+$NetBSD: patch-cl,v 1.1 2005/06/16 21:39:06 martin Exp $
+
+--- extensions/transformiix/source/xslt/txStylesheetCompileHandlers.cpp.orig   2004-01-29 23:04:29.000000000 +0100
++++ extensions/transformiix/source/xslt/txStylesheetCompileHandlers.cpp        2005-06-16 09:18:13.000000000 +0200
+@@ -258,7 +258,7 @@
+               txStylesheetCompilerState& aState,
+               double& aNumber)
+ {



Home | Main Index | Thread Index | Old Index