Hi,
I am experiencing a weird problem, while developping C++ on clearlinux with gcc and
Eigen.
The following code-snippet:
#include <eigen3/Eigen/Dense>
template<typename TInputBlock, typename TOutputBlock>
static void encode(const TInputBlock& input, TOutputBlock& output) {
Eigen::MatrixXf mul0(8, 8);
Eigen::MatrixXf mul1(8, 8);
output = (mul0 * input * mul1);
}
int main() {
Eigen::MatrixXf input(8, 8);
Eigen::MatrixXf output(8, 8);
encode(input, output);
}
compiles fine with the following gcc-invocation on Gentoo and OpenSUSE (using GCC-7.2.0
and GCC-7.2.1 respectively):
g++ -g -O0 -fopenmp ./main.cpp
However, using this invocation on clearlinux spouts a bunch of weird errors I can't
track down, from one of the SIMD intrinsics headers.
This error is specific to this special combination of gcc-arguments: "-O0
-fopenmp". Removing either one of them results in a successfull compilation.
Another way to get it to build on clearlinux, is by adding "-ftree-fre" to the
gcc-invocation.
I tried the current master of Eigen, as well as the version that comes with clearlinux.
Might this come from clearlinux-specific changes to the gcc codebase?
Thanks!