summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin <martin@pkgsrc.org>2005-06-16 21:38:09 +0000
committermartin <martin@pkgsrc.org>2005-06-16 21:38:09 +0000
commitf02316689a542dc195650256a5bcd8d7becca932 (patch)
tree5b4b76ee1aa2c63240bf8076ed6a700ef3a8888a
parentbd3c448267d5b007ea0452f07b5d934ea208b676 (diff)
downloadpkgsrc-f02316689a542dc195650256a5bcd8d7becca932.tar.gz
Redo the previous "double alignemnet" fix more completely. The previous
state was completely broken.
-rw-r--r--www/firefox/distinfo10
-rw-r--r--www/firefox/patches/patch-cg150
-rw-r--r--www/firefox/patches/patch-ch18
-rw-r--r--www/firefox/patches/patch-ci13
-rw-r--r--www/firefox/patches/patch-cj32
-rw-r--r--www/firefox/patches/patch-ck19
-rw-r--r--www/firefox/patches/patch-cl31
-rw-r--r--www/firefox/patches/patch-cm13
-rw-r--r--www/mozilla/distinfo10
-rw-r--r--www/mozilla/patches/patch-cd37
-rw-r--r--www/mozilla/patches/patch-cg143
-rw-r--r--www/mozilla/patches/patch-ch18
-rw-r--r--www/mozilla/patches/patch-ci13
-rw-r--r--www/mozilla/patches/patch-cj32
-rw-r--r--www/mozilla/patches/patch-ck19
-rw-r--r--www/mozilla/patches/patch-cl31
-rw-r--r--www/mozilla/patches/patch-cm13
17 files changed, 539 insertions, 63 deletions
diff --git a/www/firefox/distinfo b/www/firefox/distinfo
index c2683835796..ab2886a06b8 100644
--- a/www/firefox/distinfo
+++ b/www/firefox/distinfo
@@ -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-cc) = cb08d4b7330c9e471d172c11772c840e613ceb76
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 --git a/www/firefox/patches/patch-cg b/www/firefox/patches/patch-cg
index 6ffda9fc55b..0ed10c82b37 100644
--- a/www/firefox/patches/patch-cg
+++ b/www/firefox/patches/patch-cg
@@ -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> 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);
+ }
+
+-/*
+- * 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;
}
-+#endif
/*
- * 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 --git a/www/firefox/patches/patch-ch b/www/firefox/patches/patch-ch
new file mode 100644
index 00000000000..71b9d2e167e
--- /dev/null
+++ b/www/firefox/patches/patch-ch
@@ -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 --git a/www/firefox/patches/patch-ci b/www/firefox/patches/patch-ci
new file mode 100644
index 00000000000..5dc583851cf
--- /dev/null
+++ b/www/firefox/patches/patch-ci
@@ -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 --git a/www/firefox/patches/patch-cj b/www/firefox/patches/patch-cj
new file mode 100644
index 00000000000..9ad0ac5a9a6
--- /dev/null
+++ b/www/firefox/patches/patch-cj
@@ -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 --git a/www/firefox/patches/patch-ck b/www/firefox/patches/patch-ck
new file mode 100644
index 00000000000..ef8ea6a956e
--- /dev/null
+++ b/www/firefox/patches/patch-ck
@@ -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 --git a/www/firefox/patches/patch-cl b/www/firefox/patches/patch-cl
new file mode 100644
index 00000000000..c997e8926cd
--- /dev/null
+++ b/www/firefox/patches/patch-cl
@@ -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)
+ {
+- aNumber = Double::NaN;
++ aNumber = Double::NaN();
+ txStylesheetAttr* attr = nsnull;
+ nsresult rv = getStyleAttr(aAttributes, aAttrCount, kNameSpaceID_None,
+ aName, aRequired, &attr);
+@@ -479,7 +479,7 @@
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ txExpandedName nullExpr;
+- double prio = Double::NaN;
++ double prio = Double::NaN();
+ nsAutoPtr<txPattern> match(new txRootPattern(MB_TRUE));
+ NS_ENSURE_TRUE(match, NS_ERROR_OUT_OF_MEMORY);
+
+@@ -1038,7 +1038,7 @@
+ aState, mode);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+- double prio = Double::NaN;
++ double prio = Double::NaN();
+ rv = getNumberAttr(aAttributes, aAttrCount, txXSLTAtoms::priority,
+ PR_FALSE, aState, prio);
+ NS_ENSURE_SUCCESS(rv, rv);
diff --git a/www/firefox/patches/patch-cm b/www/firefox/patches/patch-cm
new file mode 100644
index 00000000000..9992afdff1b
--- /dev/null
+++ b/www/firefox/patches/patch-cm
@@ -0,0 +1,13 @@
+$NetBSD: patch-cm,v 1.1 2005/06/16 21:39:06 martin Exp $
+
+--- extensions/transformiix/source/xslt/txXSLTPatterns.cpp.orig 2003-11-18 23:56:46.000000000 +0100
++++ extensions/transformiix/source/xslt/txXSLTPatterns.cpp 2005-06-16 09:17:00.000000000 +0200
+@@ -99,7 +99,7 @@
+ double txUnionPattern::getDefaultPriority()
+ {
+ NS_ASSERTION(0, "Don't call getDefaultPriority on txUnionPattern");
+- return Double::NaN;
++ return Double::NaN();
+ }
+
+ /*
diff --git a/www/mozilla/distinfo b/www/mozilla/distinfo
index e1fa7ec64e0..242f6c90151 100644
--- a/www/mozilla/distinfo
+++ b/www/mozilla/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.77 2005/05/31 09:21:51 martin Exp $
+$NetBSD: distinfo,v 1.78 2005/06/16 21:38:09 martin Exp $
SHA1 (mozilla-1.7.8-source.tar.bz2) = ca682415a9ba99a3c4bd55636e1f9fda53a2545f
RMD160 (mozilla-1.7.8-source.tar.bz2) = 3e91b559c2ab76ba6dc1f99fca57b921660ab673
@@ -36,4 +36,10 @@ SHA1 (patch-bz) = 6f854d74a9d1d1174ce8eff7d65f8024a7da4711
SHA1 (patch-ca) = 479ef14631ae019ae5ca1c08a2f786294f3e972b
SHA1 (patch-cb) = fd0f033d63be066ce5c47057d72c48a085718908
SHA1 (patch-cc) = cb08d4b7330c9e471d172c11772c840e613ceb76
-SHA1 (patch-cd) = 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 --git a/www/mozilla/patches/patch-cd b/www/mozilla/patches/patch-cd
deleted file mode 100644
index cef9da8640c..00000000000
--- a/www/mozilla/patches/patch-cd
+++ /dev/null
@@ -1,37 +0,0 @@
-$NetBSD: patch-cd,v 1.1 2005/05/31 09:21:51 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 @@
- * 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)
-+{
-+ return isinf(aDbl);
-+}
-+
-+MBool Double::isNaN(double aDbl)
-+{
-+ return isnan(aDbl);
-+}
-+
-+MBool Double::isNeg(double aDbl)
-+{
-+ return aDbl<0.0;
-+}
-+#else
-+
- //A trick to handle IEEE floating point exceptions on FreeBSD - E.D.
- #ifdef __FreeBSD__
- #include <ieeefp.h>
-@@ -157,6 +175,7 @@
- {
- return (TX_DOUBLE_HI32(aDbl) & TX_DOUBLE_HI32_SIGNBIT) != 0;
- }
-+#endif
-
- /*
- * Converts the given String to a double, if the String value does not
diff --git a/www/mozilla/patches/patch-cg b/www/mozilla/patches/patch-cg
new file mode 100644
index 00000000000..c98ff3b15f3
--- /dev/null
+++ b/www/mozilla/patches/patch-cg
@@ -0,0 +1,143 @@
+$NetBSD: patch-cg,v 1.1 2005/06/16 21:38:09 martin Exp $
+
+--- extensions/transformiix/source/base/Double.cpp.orig 2004-01-15 22:23:18.000000000 +0100
++++ extensions/transformiix/source/base/Double.cpp 2005-06-16 09:47:09.000000000 +0200
+@@ -48,114 +48,34 @@
+ * Utility class for doubles
+ */
+
+-//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> 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 NAN;
++}
+
+-/* We don't know of any non-gcc compilers that perform alias optimization,
+- * so this code should work.
+- */
++double Double::PositiveInfinity()
++{
++ return INFINITY;
++}
+
+-#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 -INFINITY;
++}
+
+-/*
+- * Determines whether the given double represents positive or negative
+- * inifinity
+- */
+ MBool Double::isInfinite(double aDbl)
+ {
+- return ((TX_DOUBLE_HI32(aDbl) & ~TX_DOUBLE_HI32_SIGNBIT) == TX_DOUBLE_HI32_EXPMASK &&
+- !TX_DOUBLE_LO32(aDbl));
++ return isinf(aDbl);
+ }
+
+-/*
+- * 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;
+ }
+
+ /*
+@@ -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 --git a/www/mozilla/patches/patch-ch b/www/mozilla/patches/patch-ch
new file mode 100644
index 00000000000..528089d3107
--- /dev/null
+++ b/www/mozilla/patches/patch-ch
@@ -0,0 +1,18 @@
+$NetBSD: patch-ch,v 1.1 2005/06/16 21:38:09 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 --git a/www/mozilla/patches/patch-ci b/www/mozilla/patches/patch-ci
new file mode 100644
index 00000000000..004347983db
--- /dev/null
+++ b/www/mozilla/patches/patch-ci
@@ -0,0 +1,13 @@
+$NetBSD: patch-ci,v 1.1 2005/06/16 21:38:09 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 --git a/www/mozilla/patches/patch-cj b/www/mozilla/patches/patch-cj
new file mode 100644
index 00000000000..611b5745d25
--- /dev/null
+++ b/www/mozilla/patches/patch-cj
@@ -0,0 +1,32 @@
+$NetBSD: patch-cj,v 1.1 2005/06/16 21:38:09 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 --git a/www/mozilla/patches/patch-ck b/www/mozilla/patches/patch-ck
new file mode 100644
index 00000000000..350ec0e1583
--- /dev/null
+++ b/www/mozilla/patches/patch-ck
@@ -0,0 +1,19 @@
+$NetBSD: patch-ck,v 1.1 2005/06/16 21:38:09 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 --git a/www/mozilla/patches/patch-cl b/www/mozilla/patches/patch-cl
new file mode 100644
index 00000000000..c84355bbf36
--- /dev/null
+++ b/www/mozilla/patches/patch-cl
@@ -0,0 +1,31 @@
+$NetBSD: patch-cl,v 1.1 2005/06/16 21:38:09 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)
+ {
+- aNumber = Double::NaN;
++ aNumber = Double::NaN();
+ txStylesheetAttr* attr = nsnull;
+ nsresult rv = getStyleAttr(aAttributes, aAttrCount, kNameSpaceID_None,
+ aName, aRequired, &attr);
+@@ -479,7 +479,7 @@
+ NS_ENSURE_SUCCESS(rv, rv);
+
+ txExpandedName nullExpr;
+- double prio = Double::NaN;
++ double prio = Double::NaN();
+ nsAutoPtr<txPattern> match(new txRootPattern(MB_TRUE));
+ NS_ENSURE_TRUE(match, NS_ERROR_OUT_OF_MEMORY);
+
+@@ -1038,7 +1038,7 @@
+ aState, mode);
+ NS_ENSURE_SUCCESS(rv, rv);
+
+- double prio = Double::NaN;
++ double prio = Double::NaN();
+ rv = getNumberAttr(aAttributes, aAttrCount, txXSLTAtoms::priority,
+ PR_FALSE, aState, prio);
+ NS_ENSURE_SUCCESS(rv, rv);
diff --git a/www/mozilla/patches/patch-cm b/www/mozilla/patches/patch-cm
new file mode 100644
index 00000000000..336b931f716
--- /dev/null
+++ b/www/mozilla/patches/patch-cm
@@ -0,0 +1,13 @@
+$NetBSD: patch-cm,v 1.1 2005/06/16 21:38:09 martin Exp $
+
+--- extensions/transformiix/source/xslt/txXSLTPatterns.cpp.orig 2003-11-18 23:56:46.000000000 +0100
++++ extensions/transformiix/source/xslt/txXSLTPatterns.cpp 2005-06-16 09:17:00.000000000 +0200
+@@ -99,7 +99,7 @@
+ double txUnionPattern::getDefaultPriority()
+ {
+ NS_ASSERTION(0, "Don't call getDefaultPriority on txUnionPattern");
+- return Double::NaN;
++ return Double::NaN();
+ }
+
+ /*