Bug#804768: eigen3: cause opencv ftbfs when LDBL_MANT_DIG greater than 112
YunQiang Su
wzssyqa at gmail.com
Wed Nov 11 11:59:21 UTC 2015
Package: eigen3
Version: 3.3~alpha-1
When build opencv on mips64el and sparc64, we met
[ 28%] Building CXX object
modules/contrib/CMakeFiles/opencv_contrib.dir/src/rgbdodometry.cpp.o
cd /«BUILDDIR»/opencv-2.4.9.1+dfsg/obj-mips64el-linux-gnuabi64/modules/contrib
&& /usr/bin/c++ -DCVAPI_EXPORTS -g -O2 -fstack-protector-strong
-Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fsigned-char
-W -Wall -Werror=return-type -Werror=address -Werror=sequence-point
-Wformat -Werror=format-security -Wmissing-declarations -Wundef
-Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wno-narrowing
-Wno-delete-non-virtual-dtor -fdiagnostics-show-option -pthread
-fomit-frame-pointer -ffunction-sections -g -O2
-fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG
-fPIC -isystem /«BUILDDIR»/opencv-2.4.9.1+dfsg/obj-mips64el-linux-gnuabi64
-isystem /usr/include/eigen3 -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/contrib/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/contrib/src -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/obj-mips64el-linux-gnuabi64/modules/contrib
-isystem /«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/core/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/flann/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/imgproc/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/highgui/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/features2d/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/calib3d/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/ml/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/objdetect/include -isystem
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/video/include -include
"/«BUILDDIR»/opencv-2.4.9.1+dfsg/obj-mips64el-linux-gnuabi64/modules/contrib/precomp.hpp"
-Winvalid-pch -o CMakeFiles/opencv_contrib.dir/src/rgbdodometry.cpp.o
-c /«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/contrib/src/rgbdodometry.cpp
In file included from
/usr/include/eigen3/unsupported/Eigen/MatrixFunctions:56:0,
from
/«BUILDDIR»/opencv-2.4.9.1+dfsg/modules/contrib/src/rgbdodometry.cpp:65:
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h:
In function 'void Eigen::internal::matrix_exp_compute(const
MatrixType&, ResultType&)':
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h:351:33:
error: 'StdStemFunctions' was not declared in this scope
result = arg.matrixFunction(StdStemFunctions<ComplexScalar>::exp);
^
/usr/include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h:351:63:
error: expected primary-expression before '>' token
result = arg.matrixFunction(StdStemFunctions<ComplexScalar>::exp);
This is caused by
unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h, in it:
void matrix_exp_compute(const MatrixType& arg, ResultType &result)
{
#if LDBL_MANT_DIG > 112 // rarely happens
typedef typename traits<MatrixType>::Scalar Scalar;
typedef typename NumTraits<Scalar>::Real RealScalar;
typedef typename std::complex<RealScalar> ComplexScalar;
if (sizeof(RealScalar) > 14) {
result = arg.matrixFunction(StdStemFunctions<ComplexScalar>::exp);
return;
}
#endif
--
YunQiang Su
More information about the debian-science-maintainers
mailing list