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]