diff options
author | martin <martin@pkgsrc.org> | 2005-06-16 21:38:09 +0000 |
---|---|---|
committer | martin <martin@pkgsrc.org> | 2005-06-16 21:38:09 +0000 |
commit | f02316689a542dc195650256a5bcd8d7becca932 (patch) | |
tree | 5b4b76ee1aa2c63240bf8076ed6a700ef3a8888a | |
parent | bd3c448267d5b007ea0452f07b5d934ea208b676 (diff) | |
download | pkgsrc-f02316689a542dc195650256a5bcd8d7becca932.tar.gz |
Redo the previous "double alignemnet" fix more completely. The previous
state was completely broken.
-rw-r--r-- | www/firefox/distinfo | 10 | ||||
-rw-r--r-- | www/firefox/patches/patch-cg | 150 | ||||
-rw-r--r-- | www/firefox/patches/patch-ch | 18 | ||||
-rw-r--r-- | www/firefox/patches/patch-ci | 13 | ||||
-rw-r--r-- | www/firefox/patches/patch-cj | 32 | ||||
-rw-r--r-- | www/firefox/patches/patch-ck | 19 | ||||
-rw-r--r-- | www/firefox/patches/patch-cl | 31 | ||||
-rw-r--r-- | www/firefox/patches/patch-cm | 13 | ||||
-rw-r--r-- | www/mozilla/distinfo | 10 | ||||
-rw-r--r-- | www/mozilla/patches/patch-cd | 37 | ||||
-rw-r--r-- | www/mozilla/patches/patch-cg | 143 | ||||
-rw-r--r-- | www/mozilla/patches/patch-ch | 18 | ||||
-rw-r--r-- | www/mozilla/patches/patch-ci | 13 | ||||
-rw-r--r-- | www/mozilla/patches/patch-cj | 32 | ||||
-rw-r--r-- | www/mozilla/patches/patch-ck | 19 | ||||
-rw-r--r-- | www/mozilla/patches/patch-cl | 31 | ||||
-rw-r--r-- | www/mozilla/patches/patch-cm | 13 |
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(); + } + + /* |