Bug#831143: hmat-oss: FTBFS with GCC 6: compression.cpp:717:25: error: there are no arguments to 'isnan' that depend on a template parameter, so a declaration of 'isnan' must be available [-fpermissive]

Lucas Nussbaum lucas at debian.org
Thu Jul 14 07:03:49 UTC 2016


Source: hmat-oss
Version: 1.0.4-2
Severity: serious
Tags: stretch sid
User: debian-qa at lists.debian.org
Usertags: qa-ftbfs-20160713 qa-ftbfs
Justification: FTBFS with GCC 6 on amd64

Hi,

During a rebuild of all packages in sid using the gcc-defaults package
available in experimental to make GCC default to version 6, your package failed
to build on amd64. For more information about GCC 6 and Stretch, see:
- https://wiki.debian.org/GCC6
- https://lists.debian.org/debian-devel-announce/2016/06/msg00007.html

Relevant part (hopefully):
> /usr/bin/c++   -D_GNU_SOURCE -Dhmat_oss_EXPORTS -I/«PKGBUILDDIR»/include -I/«PKGBUILDDIR»/obj-x86_64-linux-gnu -I/«PKGBUILDDIR»/src  -fopenmp  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -ffast-math -funsafe-math-optimizations -fopenmp -fPIC   -UNDEBUG -o CMakeFiles/hmat-oss.dir/src/compression.cpp.o -c /«PKGBUILDDIR»/src/compression.cpp
> /«PKGBUILDDIR»/src/compression.cpp: In function 'RkMatrix<typename Types<T>::dp>* compress(CompressionMethod, const AssemblyFunction<T>&, const ClusterData*, const ClusterData*)':
> /«PKGBUILDDIR»/src/compression.cpp:717:25: error: there are no arguments to 'isnan' that depend on a template parameter, so a declaration of 'isnan' must be available [-fpermissive]
>      if (isnan(approxNorm)) {
>                          ^
> /«PKGBUILDDIR»/src/compression.cpp:717:25: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> /«PKGBUILDDIR»/src/compression.cpp: In instantiation of 'RkMatrix<typename Types<T>::dp>* compress(CompressionMethod, const AssemblyFunction<T>&, const ClusterData*, const ClusterData*) [with T = float; typename Types<T>::dp = double]':
> /«PKGBUILDDIR»/src/compression.cpp:786:156:   required from here
> /«PKGBUILDDIR»/src/compression.cpp:717:14: error: 'isnan' was not declared in this scope
>      if (isnan(approxNorm)) {
>          ~~~~~^~~~~~~~~~~~
> /«PKGBUILDDIR»/src/compression.cpp:717:14: note: suggested alternative:
> In file included from /«PKGBUILDDIR»/src/compression.cpp:26:0:
> /usr/include/c++/6/cmath:655:5: note:   'std::isnan'
>      isnan(_Tp __x)
>      ^~~~~
> /«PKGBUILDDIR»/src/compression.cpp: In instantiation of 'RkMatrix<typename Types<T>::dp>* compress(CompressionMethod, const AssemblyFunction<T>&, const ClusterData*, const ClusterData*) [with T = double; typename Types<T>::dp = double]':
> /«PKGBUILDDIR»/src/compression.cpp:787:156:   required from here
> /«PKGBUILDDIR»/src/compression.cpp:717:14: error: 'isnan' was not declared in this scope
>      if (isnan(approxNorm)) {
>          ~~~~~^~~~~~~~~~~~
> /«PKGBUILDDIR»/src/compression.cpp:717:14: note: suggested alternative:
> In file included from /«PKGBUILDDIR»/src/compression.cpp:26:0:
> /usr/include/c++/6/cmath:655:5: note:   'std::isnan'
>      isnan(_Tp __x)
>      ^~~~~
> /«PKGBUILDDIR»/src/compression.cpp: In instantiation of 'RkMatrix<typename Types<T>::dp>* compress(CompressionMethod, const AssemblyFunction<T>&, const ClusterData*, const ClusterData*) [with T = std::complex<float>; typename Types<T>::dp = std::complex<double>]':
> /«PKGBUILDDIR»/src/compression.cpp:788:156:   required from here
> /«PKGBUILDDIR»/src/compression.cpp:717:14: error: 'isnan' was not declared in this scope
>      if (isnan(approxNorm)) {
>          ~~~~~^~~~~~~~~~~~
> /«PKGBUILDDIR»/src/compression.cpp:717:14: note: suggested alternative:
> In file included from /«PKGBUILDDIR»/src/compression.cpp:26:0:
> /usr/include/c++/6/cmath:655:5: note:   'std::isnan'
>      isnan(_Tp __x)
>      ^~~~~
> /«PKGBUILDDIR»/src/compression.cpp: In instantiation of 'RkMatrix<typename Types<T>::dp>* compress(CompressionMethod, const AssemblyFunction<T>&, const ClusterData*, const ClusterData*) [with T = std::complex<double>; typename Types<T>::dp = std::complex<double>]':
> /«PKGBUILDDIR»/src/compression.cpp:789:156:   required from here
> /«PKGBUILDDIR»/src/compression.cpp:717:14: error: 'isnan' was not declared in this scope
>      if (isnan(approxNorm)) {
>          ~~~~~^~~~~~~~~~~~
> /«PKGBUILDDIR»/src/compression.cpp:717:14: note: suggested alternative:
> In file included from /«PKGBUILDDIR»/src/compression.cpp:26:0:
> /usr/include/c++/6/cmath:655:5: note:   'std::isnan'
>      isnan(_Tp __x)
>      ^~~~~
> [ 37%] Building CXX object CMakeFiles/hmat-oss.dir/src/data_types.cpp.o
> /usr/bin/c++   -D_GNU_SOURCE -Dhmat_oss_EXPORTS -I/«PKGBUILDDIR»/include -I/«PKGBUILDDIR»/obj-x86_64-linux-gnu -I/«PKGBUILDDIR»/src  -fopenmp  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -ffast-math -funsafe-math-optimizations -fopenmp -fPIC   -UNDEBUG -o CMakeFiles/hmat-oss.dir/src/data_types.cpp.o -c /«PKGBUILDDIR»/src/data_types.cpp
> make[3]: *** [CMakeFiles/hmat-oss.dir/src/compression.cpp.o] Error 1

The full build log is available from:
   http://people.debian.org/~lucas/logs/2016/07/13/hmat-oss_1.0.4-2_unstable_gcc6.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the debian-science-maintainers mailing list