Re: [eigen] eigen3 compile error on jaunty (gcc 4.3.3)

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Btw, not sure if this helps, but it seems that other people (boost) had issues with gcc 4.3.3.

http://www.google.com/search?num=100&hl=en&q=gcc+4.3.3+error:+template+argument+1+is+invalid&aq=f&aqi=&aql=&oq=&gs_rfai=

Cheers,
Radu.

On 09/02/2010 09:48 AM, Radu Bogdan Rusu wrote:
Thanks Benoit. The patch applied cleanly on the latest rev, and 'make
check' did pass further, but it still got an error in the end:

[ 0%] Building CXX object
unsupported/test/CMakeFiles/polynomialsolver_9.dir/polynomialsolver.cpp.o
In file included from eigen/Eigen/Core:258,
from eigen/Eigen/QR:4,
from eigen/unsupported/test/../../test/main.h:163,
from eigen/unsupported/test/polynomialsolver.cpp:25:
eigen/Eigen/src/Core/DenseStorageBase.h: In member function 'void
Eigen::DenseStorageBase<Derived>::resize(typename
Eigen::ei_traits<Derived>::Index)':
eigen/Eigen/src/Core/DenseStorageBase.h:188: error: template argument 1
is invalid
eigen/Eigen/src/Core/DenseStorageBase.h: In member function 'void
Eigen::DenseStorageBase<Derived>::_init2(const typename
Eigen::ei_traits<Derived>::Scalar&, const typename
Eigen::ei_traits<Derived>::Scalar&, typename
Eigen::ei_enable_if<(Eigen::ei_dense_xpr_base::type::SizeAtCompileTime
== 2), T0>::type*)':
eigen/Eigen/src/Core/DenseStorageBase.h:495: error: template argument 1
is invalid
make[3]: ***
[unsupported/test/CMakeFiles/polynomialsolver_9.dir/polynomialsolver.cpp.o]
Error 1
make[2]: *** [unsupported/test/CMakeFiles/polynomialsolver_9.dir/all]
Error 2
make[1]: *** [test/CMakeFiles/check.dir/rule] Error 2
make: *** [check] Error 2

So it looks like the problem is:
EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE and
EIGEN_STATIC_ASSERT_VECTOR_ONLY.

Thanks,
Radu.

On 09/02/2010 09:27 AM, Benoit Jacob wrote:
Can you try the following patch against the current revision?

If it works, and you need to backport it to beta1, that should be easy
enough (it might even apply!)

Benoit

2010/9/2 Radu Bogdan Rusu<rusu@xxxxxxxxxxxxxxxx>:
Thanks Benoit and Gael!

Is there a way for someone else with 4.3.3 to try this? Should I send
you
our chroot? (clean plain install of Ubuntu 9.04)

Radu.

On 09/02/2010 04:17 AM, Benoit Jacob wrote:

So the last reasonable explanation is that this is a bug in gcc 4.3.3
that was fixed in 4.3.4....

Benoit

2010/9/2 Gael Guennebaud<gael.guennebaud@xxxxxxxxx>:

sorry but I cannot reproduce. I tried with gcc 4.2, 4.3.4, 4.5 in both
32 and 64 bits.....


gael

On Wed, Sep 1, 2010 at 11:21 PM, Radu Bogdan
Rusu<rusu@xxxxxxxxxxxxxxxx>
wrote:

Benoit, I just checked the latest revision, and I get the same errors

In file included from eigen3/eigen/Eigen/Core:244,
from eigen3/eigen/Eigen/QR:4,
from
eigen3/eigen/unsupported/test/../../test/main.h:163,
from
eigen3/eigen/unsupported/test/polynomialutils.cpp:25:
eigen3/eigen/Eigen/src/Core/MatrixBase.h:355: error: template
argument 2
is
invalid
eigen3/eigen/Eigen/src/Core/MatrixBase.h:356: warning: type
qualifiers
ignored on function return type
In file included from eigen3/eigen/Eigen/Core:258,
from eigen3/eigen/Eigen/QR:4,
from
eigen3/eigen/unsupported/test/../../test/main.h:163,
from
eigen3/eigen/unsupported/test/polynomialutils.cpp:25:
eigen3/eigen/Eigen/src/Core/DenseStorageBase.h: In member function
'void
Eigen::DenseStorageBase<Derived>::resize(typename
Eigen::ei_traits<Derived>::Index)':
eigen3/eigen/Eigen/src/Core/DenseStorageBase.h:188: error: template
argument
1 is invalid
eigen3/eigen/Eigen/src/Core/DenseStorageBase.h: In member function
'void
Eigen::DenseStorageBase<Derived>::_init2(const typename
Eigen::ei_traits<Derived>::Scalar&, const typename
Eigen::ei_traits<Derived>::Scalar&, typename
Eigen::ei_enable_if<(Eigen::ei_dense_xpr_base::type::SizeAtCompileTime

==
2), T0>::type*)':
eigen3/eigen/Eigen/src/Core/DenseStorageBase.h:495: error: template
argument
1 is invalid
make[3]: ***

[unsupported/test/CMakeFiles/polynomialutils_8.dir/polynomialutils.cpp.o]

Error 1
make[2]: *** [unsupported/test/CMakeFiles/polynomialutils_8.dir/all]
Error 2
make[1]: *** [test/CMakeFiles/check.dir/rule] Error 2
make: *** [check] Error 2


Except the line numbers are different. This is:

$ hg clone https://bitbucket.org/eigen/eigen/
$ cd eigen&& mkdir build&& cd build&& cmake ..&& make check

or something :)

Thanks,
Radu.

On 09/01/2010 12:57 PM, Benoit Jacob wrote:

As I said on IRC, your line numbers are strange and don't match
what I
have in these files.

Can you cd to your source directory and do:
hg diff
hg parent

Thanks
Benoit

2010/9/1 Radu Bogdan Rusu<rusu@xxxxxxxxxxxxxxxx>:

We first got build error in PCL. The errors that I posted in my
previous
e-mail are from "make check" in eigen3 beta1 (clean tgz +
tridiag_3x3.patch
from Gael).
This is in a 32bit Jaunty (Ubuntu 9.04) chroot with gcc 4.3.3.

I wonder what causes it... hmm.

Thanks,
Radu.

On 09/01/2010 12:14 PM, Benoit Jacob wrote:

So, I have tried building polynomialsolver_9 with GCC 4.3 here,
and
it
works for me. I can't reproduce your error.

[bjacob@cahouette test]$ /home/bjacob/prefix/bin/c++ -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: /home/bjacob/Downloads/gcc-4.3.5/configure
--prefix=/home/bjacob/prefix/ --disable-multilib
Thread model: posix
gcc version 4.3.5 (GCC)

Cheers,
Benoit

2010/9/1 Benoit Jacob<jacob.benoit.1@xxxxxxxxx>:

sorry, I am really stupid, disregard my previous email.
Your original mail had all the information.

Benoit

2010/9/1 Benoit Jacob<jacob.benoit.1@xxxxxxxxx>:

Hi,

Here a simple test program compiles with GCC 4.3, with current
Eigen.

Can you send us a simple test case that fails to build? Or
point us
to
a specific test in our test suite? I'm at work now and can't
build
the
test suite with gcc 4.3 easily.

Benoit

2010/9/1 Radu Bogdan Rusu<rusu@xxxxxxxxxxxxxxxx>:

We just noticed a compilation error on Ubuntu Jaunty on eigen3
today.

$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
4.3.3-5ubuntu4'
--with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--enable-shared
--with-system-zlib --libexecdir=/usr/lib
--without-included-gettext
--enable-threads=posix --enable-nls
--with-gxx-include-dir=/usr/include/c++/4.3
--program-suffix=-4.3
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-mpfr
--enable-targets=all --with-tune=generic
--enable-checking=release
--build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)

$ lsb_release -a
LSB Version:



core-2.0-ia32:core-2.0-noarch:core-3.0-ia32:core-3.0-noarch:core-3.1-ia32:core-3.1-noarch:core-3.2-ia32:core-3.2-noarch:core-4.0-ia32:core-4.0-noarch:cxx-3.0-ia32:cxx-3.0-noarch:cxx-3.1-ia32:cxx-3.1-noarch:cxx-3.2-ia32:cxx-3.2-noarch:cxx-4.0-ia32:cxx-4.0-noarch:desktop-3.1-ia32:desktop-3.1-noarch:desktop-3.2-ia32:desktop-3.2-noarch:desktop-4.0-ia32:desktop-4.0-noarch:graphics-2.0-ia32:graphics-2.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch:graphics-3.1-ia32:graphics-3.1-noarch:graphics-3.2-ia32:graphics-3.2-noarch:graphics-4.0-ia32:graphics-4.0-noarch:qt4-3.1-ia32:qt4-3.1-noarch

Distributor ID: Ubuntu
Description: Ubuntu 9.04
Release: 9.04
Codename: jaunty


eigen3/build/eigen/build$ make check
[ 0%] Building CXX object



unsupported/test/CMakeFiles/polynomialsolver_9.dir/polynomialsolver.cpp.o

In file included from eigen3/build/eigen/Eigen/Core:235,
from eigen3/build/eigen/Eigen/QR:4,
from
eigen3/build/eigen/unsupported/test/../../test/main.h:162,
from
eigen3/build/eigen/unsupported/test/polynomialsolver.cpp:25:
eigen3/build/eigen/Eigen/src/Core/MatrixBase.h:352: error:
template
argument
2 is invalid
eigen3/build/eigen/Eigen/src/Core/MatrixBase.h:353: warning:
type
qualifiers
ignored on function return type
In file included from eigen3/build/eigen/Eigen/Core:249,
from eigen3/build/eigen/Eigen/QR:4,
from
eigen3/build/eigen/unsupported/test/../../test/main.h:162,
from
eigen3/build/eigen/unsupported/test/polynomialsolver.cpp:25:
eigen3/build/eigen/Eigen/src/Core/DenseStorageBase.h: In member
function
'void Eigen::DenseStorageBase<Derived>::resize(typename
Eigen::ei_traits<Derived>::Index)':
eigen3/build/eigen/Eigen/src/Core/DenseStorageBase.h:187:
error:
template
argument 1 is invalid
eigen3/build/eigen/Eigen/src/Core/DenseStorageBase.h: In member
function
'void Eigen::DenseStorageBase<Derived>::_init2(const typename
Eigen::ei_traits<Derived>::Scalar&, const typename
Eigen::ei_traits<Derived>::Scalar&, typename


Eigen::ei_enable_if<(Eigen::ei_dense_xpr_base::type::SizeAtCompileTime

==
2), T0>::type*)':
eigen3/build/eigen/Eigen/src/Core/DenseStorageBase.h:493:
error:
template
argument 1 is invalid
make[3]: ***



[unsupported/test/CMakeFiles/polynomialsolver_9.dir/polynomialsolver.cpp.o]

Error 1
make[2]: ***
[unsupported/test/CMakeFiles/polynomialsolver_9.dir/all]
Error
2
make[1]: *** [test/CMakeFiles/check.dir/rule] Error 2
make: *** [check] Error 2


Is this a known issue/bug with older compilers?

Thanks,
Radu.
--
| Radu Bogdan Rusu | http://rbrusu.com/








--
| Radu Bogdan Rusu | http://rbrusu.com/






--
| Radu Bogdan Rusu | http://rbrusu.com/









--
| Radu Bogdan Rusu | http://rbrusu.com/



--
| Radu Bogdan Rusu | http://rbrusu.com/



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/