3.1.52 fails to build in hppa/linux
Rafael Laboissiere
rafael at debian.org
Sun Feb 22 15:43:14 CST 2009
* John W. Eaton <jwe at octave.org> [2009-02-22 16:18]:
> Yeah, it would be bad if Octave doesn't build with the latest GCC,
> even if it is only fails on some platforms. This would cause trouble
> for getting Octave into Debian testing, for example.
Yes.
> Assuming these are bugs in GCC, can anyone easily check to see if they
> are fixed in the current GCC sources (what will become GCC 4.x)?
There is a gcc-snapshot package in Debian:
$ apt-get install gcc-snapshot
$ LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH PATH=/usr/lib/gcc-snapshot/bin:$PATH g++ --version
g++ (Debian 20090129-1) 4.4.0 20090129 (experimental) [trunk revision 143770]
When I use this version of g++ to compile oct-inttype.cc with "#undef
OCTAVE_INT_USE_LONG_DOUBLE" in config.h, I can still replicate the
"ambiguous template specialization" compilation failure on amd64.
Also:
$ cat test.cc
#include <iostream>
class A
{
public:
class B {};
template <class T, class X> void x(X a) { std::cout << a; }
template <class T> void x(int a);
};
template <class T>
void A::x (int a)
{
std::cout << 'x' << a;
}
template void A::x<A::B> (int a);
$ LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH PATH=/usr/lib/gcc-snapshot/bin:$PATH g++ -c test.cc
test.cc:15: error: ambiguous template specialization 'x<A::B>' for 'void A::x(int)'
Too bad :-(
--
Rafael
More information about the Octave-maintainers
mailing list