Package: ginac
Severity: normal
Tags: patch

When building 'ginac' on amd64 with gcc-4.0,
I get the following error:

if /bin/sh ../libtool --mode=compile x86_64-linux-g++ -DHAVE_CONFIG_H -I. -I. 
-I..     -O2 -finline-limit=1200 -MT exprseq.lo -MD -MP -MF ".deps/exprseq.Tpo" 
-c -o exprseq.lo exprseq.cpp; \
then mv -f ".deps/exprseq.Tpo" ".deps/exprseq.Plo"; else rm -f 
".deps/exprseq.Tpo"; exit 1; fi
 x86_64-linux-g++ -DHAVE_CONFIG_H -I. -I. -I.. -O2 -finline-limit=1200 -MT 
exprseq.lo -MD -MP -MF .deps/exprseq.Tpo -c exprseq.cpp  -fPIC -DPIC -o 
.libs/exprseq.o
exprseq.cpp:32: error: explicit specialization of 'bool 
GiNaC::container<std::vector>::info(unsigned int) const' must be introduced by 
'template <>'
exprseq.cpp:32: error: template-id 'info<>' for 'bool 
GiNaC::container<std::vector>::info(unsigned int) const' does not match any 
template declaration
exprseq.cpp:32: error: invalid function declaration
make[3]: *** [exprseq.lo] Error 1
make[3]: Leaving directory `/ginac-1.3.0/ginac'

With the attached patch 'ginac' can be compiled
on amd64 using gcc-4.0.

Regards
Andreas Jochens

diff -urN ../tmp-orig/ginac-1.3.0/ginac/exprseq.cpp ./ginac/exprseq.cpp
--- ../tmp-orig/ginac-1.3.0/ginac/exprseq.cpp   2004-01-08 15:56:39.000000000 
+0100
+++ ./ginac/exprseq.cpp 2005-03-07 11:59:15.836936319 +0100
@@ -29,7 +29,7 @@
   print_func<print_tree>(&exprseq::do_print_tree))
 
 /** Specialization of container::info() for exprseq. */
-bool exprseq::info(unsigned inf) const
+template <> bool exprseq::info(unsigned inf) const
 {
        if (inf == info_flags::exprseq)
                return true;
diff -urN ../tmp-orig/ginac-1.3.0/ginac/inifcns.h ./ginac/inifcns.h
--- ../tmp-orig/ginac-1.3.0/ginac/inifcns.h     2004-10-19 14:05:53.000000000 
+0200
+++ ./ginac/inifcns.h   2005-03-07 12:00:42.751160271 +0100
@@ -108,7 +108,7 @@
        return function(zeta2_SERIAL::serial, ex(p1), ex(p2));
 }
 class zeta_SERIAL;
-template<> inline bool is_the_function<class zeta_SERIAL>(const ex& x)
+template<> inline bool is_the_function<zeta_SERIAL>(const ex& x)
 {
        return is_the_function<zeta1_SERIAL>(x) || 
is_the_function<zeta2_SERIAL>(x);
 }
@@ -127,7 +127,7 @@
        return function(G3_SERIAL::serial, ex(x), ex(s), ex(y));
 }
 class G_SERIAL;
-template<> inline bool is_the_function<class G_SERIAL>(const ex& x)
+template<> inline bool is_the_function<G_SERIAL>(const ex& x)
 {
        return is_the_function<G2_SERIAL>(x) || is_the_function<G3_SERIAL>(x);
 }
@@ -162,7 +162,7 @@
        return function(psi2_SERIAL::serial, ex(p1), ex(p2));
 }
 class psi_SERIAL;
-template<> inline bool is_the_function<class psi_SERIAL>(const ex & x)
+template<> inline bool is_the_function<psi_SERIAL>(const ex & x)
 {
        return is_the_function<psi1_SERIAL>(x) || 
is_the_function<psi2_SERIAL>(x);
 }
diff -urN ../tmp-orig/ginac-1.3.0/ginac/lst.cpp ./ginac/lst.cpp
--- ../tmp-orig/ginac-1.3.0/ginac/lst.cpp       2004-01-08 15:56:32.000000000 
+0100
+++ ./ginac/lst.cpp     2005-03-07 12:03:03.961903992 +0100
@@ -29,7 +29,7 @@
   print_func<print_tree>(&lst::do_print_tree))
 
 /** Specialization of container::info() for lst. */
-bool lst::info(unsigned inf) const
+template <> bool lst::info(unsigned inf) const
 {
        if (inf == info_flags::list)
                return true;
diff -urN ../tmp-orig/ginac-1.3.0/ginac/structure.h ./ginac/structure.h
--- ../tmp-orig/ginac-1.3.0/ginac/structure.h   2004-03-15 17:29:17.000000000 
+0100
+++ ./ginac/structure.h 2005-03-07 12:07:21.948107894 +0100
@@ -188,9 +188,9 @@
        ex to_polynomial(exmap & repl) const { return 
inherited::to_polynomial(repl); }
 
        // polynomial algorithms
-       numeric integer_content() const { return 1; }
+       long integer_content() const { return 1; }
        ex smod(const numeric & xi) const { return *this; }
-       numeric max_coefficient() const { return 1; }
+       long max_coefficient() const { return 1; }
 
        // indexed objects
        exvector get_free_indices() const { return exvector(); }


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to