Re: [eigen] buildtests fail with gcc, icc, suncc and mingw (3.0.4/Debian/amd64)

[ Thread Index | Date Index | More Archives ]

On Sun, Dec 18, 2011 at 7:19 AM, Nicolas Limare
<nicolas.limare@xxxxxxxxxxxxxxxxxx> wrote:
>> It seems that the compilation flags of the blas interface are not
>> properly configured by cmake for your system, what's the cmake
>> version?
> $ cmake --version
> cmake version 2.8.2
>> Nevertheless, this blas interface is not needed for using Eigen, since
>> Eigen is a header only library. You can still compile and run the main
>> tests as follow:
>> cd test; make; ctest
> Thanks for the hint.
> Now the tests succeed with gcc 4.3.5 and icc 12.0.4.

ok, it's still weird that the compilation of a simple shared library
fails, I still don't know whether the problem is on your system, on
cmake, or in our CMakeLists.txt. Does anyone with Debien 6.0 Squeeze
experienced the same issue?

> Cross-compilation with mingw first failed because cmake incorrectly
> detected gsl on my system (gsl is not available to the cross-compiler).
> I removed gsl and the compilation went further, then failed on trying
> to link with QtCore. Due to the very long compilation time, I did not
> retry after removing libqt from my system.

We could add a compilation test in the cmake script to check whether
the detected Qt libs are really operational for the configured

> The compilation still fails with suncc 5.11. Fatal errors arise from
> the first file:
> "/home/nil/tmp/eigen/eigen-eigen-13a11181fc5a/Eigen/src/Core/VectorBlock.h",
> line 220: Error: Could not find a match for Eigen::DenseBase<Eigen::Derived>::segment(Eigen::internal::traits<Eigen::internal::T>::Index).

> * has anyone tried to test Eigen with the Sun compiler? and succeeded?

The sunCC compiler is known not to be able to compile Eigen, the
problem is rather on sunCC side. The first errors could be workaround
by putting the implementation of the template methods with their
respective declarations. Regarding the multiple definitions, I'm
completely clueless. Don't expect sunCC to be supported anytime soon.

> * how do I disable all non-standard features if I only want to use
>  C++98 code, compatible in theory with any C++98 compiler (or C++03
>  to be exact) ?

The only non-standard features we are using are to control the
alignment of small objects that you can disable using
EIGEN_DONT_ALIGN_STATICALLY, in which case you also lost vectorization
for small fixed-size objects. Then we also use some compiler dependent
directives to improve inlining. Besides, our code should be C++03
compliant. Do you have something particular in mind regarding non
standard features?

> * [minor] the "-rdynamic" option inserted by cmake is not understood
>  by the mingw compiler

that's a problem that should be reported to cmake.

> * [minor] unused variable ‘maxsize’ in test/array_for_matrix.cpp



> --
> Nicolas LIMARE
>                         pgp:0xFA423F4F
> Version: GnuPG v1.4.10 (GNU/Linux)
> iEYEARECAAYFAk7thfwACgkQvviFAPpCP0+cQACfRTdp2BRQ6yRvtiwjVk171261
> ihwAoJHO2LKbagu4LotcZ85tI1hV6Epd
> =qz0m

Mail converted by MHonArc 2.6.19+