Menu

#686 Build fails with GCC 6

v1.0 (example)
closed-fixed
gcc-6 (2)
5
2016-03-04
2016-01-20
No

Hi,

the following has been reported in Debian at https://bugs.debian.org/811918 against GDL 0.9.6v2:

This package fails to build with GCC 6. GCC 6 has not been released
yet, but it's expected that GCC 6 will become the default compiler for
stretch.

Note that only the first error is reported; there might be more. You
can find a snapshot of GCC 6 in experimental. To build with GCC 6,
you can set CC=gcc-6 CXX=g++-6 explicitly.

You may be able to find out more about this issue at
https://gcc.gnu.org/gcc-6/changes.html

sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
...
/<<pkgbuilddir>>/src/typedefs.hpp: In member function 'Guard<t>& Guard<t>::operator=(Guard<t>&)':
/<<pkgbuilddir>>/src/typedefs.hpp:238:21: error: return-statement with no value, in function returning 'Guard<t>&' [-fpermissive]
if( &r == this) return;
^~~~~~</t></pkgbuilddir></t></t></t></pkgbuilddir>

-> error

/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h:442:63: warning: ignoring attributes on template argument 'Eigen::internal::Packet2d {aka __vector(2) double}'
template<> struct conj_helper<packet1cd, packet2d,="" false,false="">
^</packet1cd,>

In file included from /<<pkgbuilddir>>/src/datatypes.hpp:32:0,
from /<<pkgbuilddir>>/src/arrayindex.hpp:24,
from /<<pkgbuilddir>>/src/allix.cpp:19:
/<<pkgbuilddir>>/src/typedefs.hpp: In member function 'Guard<t>& Guard<t>::operator=(Guard<t>&)':
/<<pkgbuilddir>>/src/typedefs.hpp:238:21: error: return-statement with no value, in function returning 'Guard<t>&' [-fpermissive]
if( &r == this) return;
^~~~~~
...
In file included from /<<pkgbuilddir>>/src/datatypes.hpp:499:0,
from /<<pkgbuilddir>>/src/dstructdesc.cpp:22:
/<<pkgbuilddir>>/src/specializations.hpp: At global scope:
/<<pkgbuilddir>>/src/specializations.hpp:537:65: error: 'operator>>' is not a template function
std::istream& operator>>(std::istream& i, Data_<spdfloat>& data_);
^</spdfloat></pkgbuilddir></pkgbuilddir></pkgbuilddir></pkgbuilddir></t></pkgbuilddir></t></t></t></pkgbuilddir></pkgbuilddir></pkgbuilddir></pkgbuilddir>

-> error

/<<pkgbuilddir>>/src/specializations.hpp:539:66: error: 'operator>>' is not a template function
std::istream& operator>>(std::istream& i, Data_<spddouble>& data_);
^</spddouble></pkgbuilddir>

/<<pkgbuilddir>>/src/specializations.hpp:541:67: error: 'operator>>' is not a template function
std::istream& operator>>(std::istream& i, Data_<spdcomplex>& data_);
^</spdcomplex></pkgbuilddir>

Discussion

  • giloo

    giloo - 2016-01-28
    • assigned_to: Marc Schellens
     
  • Orion Poplawski

    Orion Poplawski - 2016-02-04

    We're hitting this now in Fedora as we are moving to gcc 6 for Fedora 24.

     
  • Orion Poplawski

    Orion Poplawski - 2016-02-04

    Is it time to replace the Guard stuff with unique_ptr (or shared_ptr)?

     
    • GregJung

      GregJung - 2016-03-04

      In the mingw gcc, auto_ptr can be an error but unique_ptr can be unknown if
      c++11 isn't specified. so ...

      /f/gdl/src/FMTOut.hpp-32-        std::ostringstream* osLocal;
      /f/gdl/src/FMTOut.hpp-33-#if (__cplusplus >= 201103L)
      /f/gdl/src/FMTOut.hpp:34:        std::unique_ptr<std::ostream> osLocalGuard;
      /f/gdl/src/FMTOut.hpp-35-#else
      /f/gdl/src/FMTOut.hpp-36-        std::auto_ptr<std::ostream> osLocalGuard;
      /f/gdl/src/FMTOut.hpp-37-#endif
      
       
  • Orion Poplawski

    Orion Poplawski - 2016-02-04

    Also see:

    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:537:65: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDFloat>& data_);
                                                                     ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:539:66: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDDouble>& data_);
                                                                      ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:541:67: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDComplex>& data_);
                                                                       ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:543:70: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDComplexDbl>& data_);
                                                                          ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:545:67: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& is, Data_<SpDString>& data_);
                                                                       ^
    In file included from /builddir/build/BUILD/gdl-0.9.6/src/datatypes.hpp:499:0,
                     from /builddir/build/BUILD/gdl-0.9.6/src/envt.hpp:27,
                     from /builddir/build/BUILD/gdl-0.9.6/src/FMTIn.hpp:14,
                     from /builddir/build/BUILD/gdl-0.9.6/src/FMTIn.cpp:5:
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp: At global scope:
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:537:65: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDFloat>& data_);
                                                                     ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:539:66: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDDouble>& data_);
                                                                      ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:541:67: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDComplex>& data_);
                                                                       ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:543:70: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& i, Data_<SpDComplexDbl>& data_);
                                                                          ^
    /builddir/build/BUILD/gdl-0.9.6/src/specializations.hpp:545:67: error: 'operator>>' is not a template function
     std::istream& operator>>(std::istream& is, Data_<SpDString>& data_);
                                                                       ^
    
     
  • Marc Schellens

    Marc Schellens - 2016-02-04

    fixed. (I have not checked it but am confident).

    @Orion: Please open a new ticket for the operator>> stuff.

     
  • Marc Schellens

    Marc Schellens - 2016-02-04
    • status: open --> closed-fixed
     
  • Orion Poplawski

    Orion Poplawski - 2016-02-04

    Filed #688 for the operator errors

     

Log in to post a comment.

MongoDB Logo MongoDB