From 0453f820e47199b772ef8f7d5f8f043cca6a39cf Mon Sep 17 00:00:00 2001 From: Jef Spaleta Date: Sun, 14 Jun 2009 23:12:38 +0000 Subject: [PATCH] - Fix for gcc34 weave blitz bug #505379 --- scipy.spec | 3 +- scipy_gcc43.patch | 389 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 390 insertions(+), 2 deletions(-) create mode 100644 scipy_gcc43.patch diff --git a/scipy.spec b/scipy.spec index 0fa9040..92c9695 100644 --- a/scipy.spec +++ b/scipy.spec @@ -13,8 +13,7 @@ Source0: http://prdownloads.sourceforge.net/scipy/%{name}-%{version}.tar.gz Source1: stsci_image_setup.py Source2: stsci_convolve_setup.py Patch0: stsci_image_syntax.patch -Patch1: scipy_gcc34.patch - +Patch1: scipy_gcc43.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: numpy, python-devel,f2py diff --git a/scipy_gcc43.patch b/scipy_gcc43.patch new file mode 100644 index 0000000..2be08bb --- /dev/null +++ b/scipy_gcc43.patch @@ -0,0 +1,389 @@ +diff -r -u scipy-0.7.0.old/scipy/weave/blitz/blitz/funcs.h scipy-0.7.0/scipy/weave/blitz/blitz/funcs.h +--- scipy-0.7.0.old/scipy/weave/blitz/blitz/funcs.h 2009-02-10 17:59:17.000000000 -0900 ++++ scipy-0.7.0/scipy/weave/blitz/blitz/funcs.h 2009-06-14 14:58:47.000000000 -0800 +@@ -25,10 +25,12 @@ + #include + #include + ++#include ++ + BZ_NAMESPACE(blitz) +- ++ + /* Helper functions */ +- ++ + template + inline T blitz_sqr(T x) + { return x*x; } +@@ -59,7 +61,7 @@ + + + /* Unary functions that return same type as argument */ +- ++ + #define BZ_DEFINE_UNARY_FUNC(name,fun) \ + template \ + struct name { \ +@@ -68,7 +70,7 @@ + static inline T_numtype \ + apply(T_numtype1 a) \ + { return fun(a); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1) \ +@@ -114,13 +116,13 @@ + BZ_DEFINE_UNARY_FUNC(Fn_y0,BZ_IEEEMATHFN_SCOPE(y0)) + BZ_DEFINE_UNARY_FUNC(Fn_y1,BZ_IEEEMATHFN_SCOPE(y1)) + #endif +- ++ + #ifdef BZ_HAVE_SYSTEM_V_MATH + BZ_DEFINE_UNARY_FUNC(Fn__class,BZ_IEEEMATHFN_SCOPE(_class)) + BZ_DEFINE_UNARY_FUNC(Fn_nearest,BZ_IEEEMATHFN_SCOPE(nearest)) + BZ_DEFINE_UNARY_FUNC(Fn_rsqrt,BZ_IEEEMATHFN_SCOPE(rsqrt)) + #endif +- ++ + BZ_DEFINE_UNARY_FUNC(Fn_sqr,BZ_BLITZ_SCOPE(blitz_sqr)) + BZ_DEFINE_UNARY_FUNC(Fn_cube,BZ_BLITZ_SCOPE(blitz_cube)) + BZ_DEFINE_UNARY_FUNC(Fn_pow4,BZ_BLITZ_SCOPE(blitz_pow4)) +@@ -130,7 +132,7 @@ + BZ_DEFINE_UNARY_FUNC(Fn_pow8,BZ_BLITZ_SCOPE(blitz_pow8)) + + /* Unary functions that return a specified type */ +- ++ + #define BZ_DEFINE_UNARY_FUNC_RET(name,fun,ret) \ + template \ + struct name { \ +@@ -139,7 +141,7 @@ + static inline T_numtype \ + apply(T_numtype1 a) \ + { return fun(a); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1) \ +@@ -154,16 +156,16 @@ + #ifdef BZ_HAVE_IEEE_MATH + BZ_DEFINE_UNARY_FUNC_RET(Fn_ilogb,BZ_IEEEMATHFN_SCOPE(ilogb),int) + #endif +- ++ + #ifdef BZ_HAVE_SYSTEM_V_MATH + BZ_DEFINE_UNARY_FUNC_RET(Fn_itrunc,BZ_IEEEMATHFN_SCOPE(itrunc),int) + BZ_DEFINE_UNARY_FUNC_RET(Fn_uitrunc,BZ_IEEEMATHFN_SCOPE(uitrunc),unsigned int) + #endif +- +- ++ ++ + #ifdef BZ_HAVE_COMPLEX + /* Specialization of unary functor for complex type */ +- ++ + #define BZ_DEFINE_UNARY_CFUNC(name,fun) \ + template \ + struct name< complex > { \ +@@ -173,7 +175,7 @@ + static inline T_numtype \ + apply(T_numtype1 a) \ + { return fun(a); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1) \ +@@ -211,7 +213,7 @@ + BZ_DEFINE_UNARY_CFUNC(Fn_pow8,BZ_BLITZ_SCOPE(blitz_pow8)) + + /* Unary functions that apply only to complex and return T */ +- ++ + #define BZ_DEFINE_UNARY_CFUNC2(name,fun) \ + template \ + struct name; \ +@@ -224,7 +226,7 @@ + static inline T_numtype \ + apply(T_numtype1 a) \ + { return fun(a); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1) \ +@@ -242,11 +244,11 @@ + BZ_DEFINE_UNARY_CFUNC2(Fn_norm,BZ_CMATHFN_SCOPE(norm)) + BZ_DEFINE_UNARY_CFUNC2(Fn_real,BZ_CMATHFN_SCOPE(real)) + #endif // BZ_HAVE_COMPLEX_FCNS +- ++ + #endif // BZ_HAVE_COMPLEX +- ++ + /* Binary functions that return type based on type promotion */ +- ++ + #define BZ_DEFINE_BINARY_FUNC(name,fun) \ + template \ + struct name { \ +@@ -255,7 +257,7 @@ + static inline T_numtype \ + apply(T_numtype1 a, T_numtype2 b) \ + { return fun(a,b); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1, \ +@@ -273,7 +275,7 @@ + BZ_DEFINE_BINARY_FUNC(Fn_atan2,BZ_MATHFN_SCOPE(atan2)) + BZ_DEFINE_BINARY_FUNC(Fn_fmod,BZ_MATHFN_SCOPE(fmod)) + BZ_DEFINE_BINARY_FUNC(Fn_pow,BZ_MATHFN_SCOPE(pow)) +- ++ + #ifdef BZ_HAVE_SYSTEM_V_MATH + BZ_DEFINE_BINARY_FUNC(Fn_copysign,BZ_IEEEMATHFN_SCOPE(copysign)) + BZ_DEFINE_BINARY_FUNC(Fn_drem,BZ_IEEEMATHFN_SCOPE(drem)) +@@ -282,9 +284,9 @@ + BZ_DEFINE_BINARY_FUNC(Fn_remainder,BZ_IEEEMATHFN_SCOPE(remainder)) + BZ_DEFINE_BINARY_FUNC(Fn_scalb,BZ_IEEEMATHFN_SCOPE(scalb)) + #endif +- ++ + /* Binary functions that return a specified type */ +- ++ + #define BZ_DEFINE_BINARY_FUNC_RET(name,fun,ret) \ + template \ + struct name { \ +@@ -293,7 +295,7 @@ + static inline T_numtype \ + apply(T_numtype1 a, T_numtype2 b) \ + { return fun(a,b); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1, \ +@@ -311,10 +313,10 @@ + #ifdef BZ_HAVE_SYSTEM_V_MATH + BZ_DEFINE_BINARY_FUNC_RET(Fn_unordered,BZ_IEEEMATHFN_SCOPE(unordered),int) + #endif +- ++ + #ifdef BZ_HAVE_COMPLEX + /* Specialization of binary functor for complex type */ +- ++ + #define BZ_DEFINE_BINARY_CFUNC(name,fun) \ + template \ + struct name< complex, complex > { \ +@@ -325,7 +327,7 @@ + static inline T_numtype \ + apply(T_numtype1 a, T_numtype2 b) \ + { return fun(a,b); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1, \ +@@ -349,7 +351,7 @@ + static inline T_numtype \ + apply(T_numtype1 a, T_numtype2 b) \ + { return fun(a,b); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1, \ +@@ -373,7 +375,7 @@ + static inline T_numtype \ + apply(T_numtype1 a, T_numtype2 b) \ + { return fun(a,b); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1, \ +@@ -393,7 +395,7 @@ + #endif + + /* Binary functions that apply only to T and return complex */ +- ++ + #define BZ_DEFINE_BINARY_FUNC_CRET(name,fun) \ + template \ + struct name; \ +@@ -407,7 +409,7 @@ + static inline T_numtype \ + apply(T_numtype1 a, T_numtype2 b) \ + { return fun(a,b); } \ +- \ ++ \ + template \ + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, \ + prettyPrintFormat& format, const T1& t1, \ +@@ -425,11 +427,11 @@ + #ifdef BZ_HAVE_COMPLEX_FCNS + BZ_DEFINE_BINARY_FUNC_CRET(Fn_polar,BZ_CMATHFN_SCOPE(polar)) + #endif +- ++ + #endif // BZ_HAVE_COMPLEX +- ++ + /* Ternary functions that return type based on type promotion */ +- ++ + #define BZ_DEFINE_TERNARY_FUNC(name,fun) \ + template \ +@@ -458,7 +460,7 @@ + }; + + /* Ternary functions that return a specified type */ +- ++ + #define BZ_DEFINE_TERNARY_FUNC_RET(name,fun,ret) \ + template \ +@@ -485,9 +487,9 @@ + } \ + }; + +- ++ + /* These functions don't quite fit the usual patterns */ +- ++ + // abs() Absolute value + template + struct Fn_abs; +@@ -497,11 +499,11 @@ + struct Fn_abs< int > { + typedef int T_numtype1; + typedef int T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return BZ_MATHFN_SCOPE(abs)(a); } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -518,11 +520,11 @@ + struct Fn_abs< long int > { + typedef long int T_numtype1; + typedef long int T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return BZ_MATHFN_SCOPE(labs)(a); } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -539,11 +541,11 @@ + struct Fn_abs< float > { + typedef float T_numtype1; + typedef float T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return BZ_MATHFN_SCOPE(fabs)(a); } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -560,11 +562,11 @@ + struct Fn_abs< double > { + typedef double T_numtype1; + typedef double T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return BZ_MATHFN_SCOPE(fabs)(a); } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -581,11 +583,11 @@ + struct Fn_abs< long double > { + typedef long double T_numtype1; + typedef long double T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return BZ_MATHFN_SCOPE(fabs)(a); } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -603,11 +605,11 @@ + struct Fn_abs< complex > { + typedef complex T_numtype1; + typedef T T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return BZ_CMATHFN_SCOPE(abs)(a); } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -626,7 +628,7 @@ + template + struct Fn_isnan { + typedef int T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { +@@ -636,7 +638,7 @@ + return BZ_IEEEMATHFN_SCOPE(isnan)(a); + #endif + } +- ++ + template + static inline void prettyPrint(BZ_STD_SCOPE(string) &str, + prettyPrintFormat& format, const T1& t1) +@@ -654,7 +656,7 @@ + template + struct Cast { + typedef T_cast T_numtype; +- ++ + static inline T_numtype + apply(T_numtype1 a) + { return T_numtype(a); } +diff -r -u scipy-0.7.0.old/scipy/weave/blitz/blitz/mathfunc.h scipy-0.7.0/scipy/weave/blitz/blitz/mathfunc.h +--- scipy-0.7.0.old/scipy/weave/blitz/blitz/mathfunc.h 2009-02-10 17:59:17.000000000 -0900 ++++ scipy-0.7.0/scipy/weave/blitz/blitz/mathfunc.h 2009-06-14 14:58:57.000000000 -0800 +@@ -12,6 +12,8 @@ + #include + #endif + ++#include ++ + BZ_NAMESPACE(blitz) + + // abs(P_numtype1) Absolute value