[Debian-med-packaging] Bug#831157: bowtie2: FTBFS with GCC 6: blockwise_sa.h:218:5: error: looser throw specifier for ‘KarkkainenBlockwiseSA<TStr>::~KarkkainenBlockwiseSA?=() noexcept (false) [with TStr = =?UTF-8?Q?S2bDnaString]’

Lucas Nussbaum lucas at debian.org
Thu Jul 14 06:48:58 UTC 2016


Source: bowtie2
Version: 2.2.9-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):
> g++ -O3 -m64 -msse2  -funroll-loops -g3 -DCOMPILER_OPTIONS="\"-O3 -m64 -msse2  -funroll-loops -g3 -fPIE -pie -Wl,-z,relro -Wl,-z,now -DPOPCNT_CAPABILITY -DWITH_TBB\"" -fPIE -pie -Wl,-z,relro -Wl,-z,now -DPOPCNT_CAPABILITY -DWITH_TBB \
> 	-fno-strict-aliasing -DBOWTIE2_VERSION="\"`cat VERSION`\"" -DBUILD_HOST="\"\"" -DBUILD_TIME="\"\"" -DCOMPILER_VERSION="\"\"" -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE  -DBOWTIE_MM  -Wdate-time -D_FORTIFY_SOURCE=2 -DBOWTIE2 -DNDEBUG -Wall \
> 	 -I third_party \
> 	-o bowtie2-build-s bt2_build.cpp \
> 	ccnt_lut.cpp ref_read.cpp alphabet.cpp shmem.cpp edit.cpp bt2_idx.cpp bt2_io.cpp bt2_util.cpp reference.cpp ds.cpp multikey_qsort.cpp limit.cpp random_source.cpp diff_sample.cpp bowtie_build_main.cpp \
> 	-lpthread -ltbb -ltbbmalloc_proxy 
> In file included from blockwise_sa.h:34:0,
>                  from bt2_idx.h:42,
>                  from bt2_build.cpp:27:
> diff_sample.h: In function ‘void calcExhaustiveDC(T, bool, bool)’:
> diff_sample.h:180:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>       ^~
> diff_sample.h:180:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>                                 ^~~~~
> diff_sample.h:181:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>       ^~
> diff_sample.h:181:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>                                 ^~~~~
> In file included from bt2_idx.h:42:0,
>                  from bt2_build.cpp:27:
> blockwise_sa.h: In instantiation of ‘class KarkkainenBlockwiseSA<S2bDnaString>’:
> blockwise_sa.h:520:48:   required from here
> blockwise_sa.h:218:5: error: looser throw specifier for ‘KarkkainenBlockwiseSA<TStr>::~KarkkainenBlockwiseSA() noexcept (false) [with TStr = S2bDnaString]’
>      ~KarkkainenBlockwiseSA()
>      ^
> In file included from bt2_idx.h:42:0,
>                  from bt2_build.cpp:27:
> blockwise_sa.h:178:7: error:   overriding ‘virtual InorderBlockwiseSA<S2bDnaString>::~InorderBlockwiseSA() noexcept’
>  class InorderBlockwiseSA : public BlockwiseSA<TStr> {
>        ^~~~~~~~~~~~~~~~~~
> In file included from bt2_build.cpp:27:0:
> bt2_idx.h: In static member function ‘static std::pair<Ebwt*, Ebwt*> Ebwt::fromStrings(const EList<std::__cxx11::basic_string<char> >&, bool, int, int, bool, int32_t, int32_t, int32_t, const string&, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, uint32_t, bool, bool, bool)’:
> bt2_idx.h:827:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<stringstream> ss(new stringstream());
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_build.cpp:27:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from bt2_build.cpp:27:0:
> bt2_idx.h:831:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<FileBuf> fb(new FileBuf(ss.get()));
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_build.cpp:27:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from bt2_idx.h:42:0,
>                  from bt2_build.cpp:27:
> blockwise_sa.h: In instantiation of ‘class KarkkainenBlockwiseSA<SString<char> >’:
> bt2_idx.h:1062:66:   required from ‘void Ebwt::initFromVector(EList<FileBuf*>&, EList<RefRecord>&, TIndexOffU, const RefReadInParams&, std::ofstream&, std::ofstream&, const string&, std::ofstream*, std::ofstream*, int, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, uint32_t, bool) [with TStr = SString<char>; TIndexOffU = unsigned int; std::ofstream = std::basic_ofstream<char>; std::__cxx11::string = std::__cxx11::basic_string<char>; uint32_t = unsigned int]’
> bt2_idx.h:655:23:   required from ‘Ebwt::Ebwt(TStr, bool, int, int, int32_t, int32_t, int32_t, int, const string&, bool, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, EList<FileBuf*>&, EList<RefRecord>&, TIndexOffU, const RefReadInParams&, uint32_t, int32_t, bool, bool, bool, bool, bool) [with TStr = SString<char>; int32_t = int; std::__cxx11::string = std::__cxx11::basic_string<char>; TIndexOffU = unsigned int; uint32_t = unsigned int]’
> bt2_build.cpp:462:14:   required from ‘void driver(const string&, EList<std::__cxx11::basic_string<char> >&, const string&, bool, int) [with TStr = SString<char>; std::__cxx11::string = std::__cxx11::basic_string<char>]’
> bt2_build.cpp:618:78:   required from here
> blockwise_sa.h:218:5: error: looser throw specifier for ‘KarkkainenBlockwiseSA<TStr>::~KarkkainenBlockwiseSA() noexcept (false) [with TStr = SString<char>]’
>      ~KarkkainenBlockwiseSA()
>      ^
> In file included from bt2_idx.h:42:0,
>                  from bt2_build.cpp:27:
> blockwise_sa.h:178:7: error:   overriding ‘virtual InorderBlockwiseSA<SString<char> >::~InorderBlockwiseSA() noexcept’
>  class InorderBlockwiseSA : public BlockwiseSA<TStr> {
>        ^~~~~~~~~~~~~~~~~~
> In file included from blockwise_sa.h:34:0,
>                  from bt2_idx.h:42,
>                  from bt2_idx.cpp:25:
> diff_sample.h: In function ‘void calcExhaustiveDC(T, bool, bool)’:
> diff_sample.h:180:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>       ^~
> diff_sample.h:180:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>                                 ^~~~~
> diff_sample.h:181:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>       ^~
> diff_sample.h:181:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>                                 ^~~~~
> In file included from bt2_idx.h:42:0,
>                  from bt2_idx.cpp:25:
> blockwise_sa.h: In instantiation of ‘class KarkkainenBlockwiseSA<S2bDnaString>’:
> blockwise_sa.h:520:48:   required from here
> blockwise_sa.h:218:5: error: looser throw specifier for ‘KarkkainenBlockwiseSA<TStr>::~KarkkainenBlockwiseSA() noexcept (false) [with TStr = S2bDnaString]’
>      ~KarkkainenBlockwiseSA()
>      ^
> In file included from bt2_idx.h:42:0,
>                  from bt2_idx.cpp:25:
> blockwise_sa.h:178:7: error:   overriding ‘virtual InorderBlockwiseSA<S2bDnaString>::~InorderBlockwiseSA() noexcept’
>  class InorderBlockwiseSA : public BlockwiseSA<TStr> {
>        ^~~~~~~~~~~~~~~~~~
> In file included from bt2_idx.cpp:25:0:
> bt2_idx.h: In static member function ‘static std::pair<Ebwt*, Ebwt*> Ebwt::fromStrings(const EList<std::__cxx11::basic_string<char> >&, bool, int, int, bool, int32_t, int32_t, int32_t, const string&, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, uint32_t, bool, bool, bool)’:
> bt2_idx.h:827:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<stringstream> ss(new stringstream());
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_idx.cpp:25:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from bt2_idx.cpp:25:0:
> bt2_idx.h:831:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<FileBuf> fb(new FileBuf(ss.get()));
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_idx.cpp:25:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from blockwise_sa.h:34:0,
>                  from bt2_idx.h:42,
>                  from bt2_io.cpp:25:
> diff_sample.h: In function ‘void calcExhaustiveDC(T, bool, bool)’:
> diff_sample.h:180:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>       ^~
> diff_sample.h:180:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>                                 ^~~~~
> diff_sample.h:181:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>       ^~
> diff_sample.h:181:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>                                 ^~~~~
> In file included from bt2_idx.h:42:0,
>                  from bt2_io.cpp:25:
> blockwise_sa.h: In instantiation of ‘class KarkkainenBlockwiseSA<S2bDnaString>’:
> blockwise_sa.h:520:48:   required from here
> blockwise_sa.h:218:5: error: looser throw specifier for ‘KarkkainenBlockwiseSA<TStr>::~KarkkainenBlockwiseSA() noexcept (false) [with TStr = S2bDnaString]’
>      ~KarkkainenBlockwiseSA()
>      ^
> In file included from bt2_idx.h:42:0,
>                  from bt2_io.cpp:25:
> blockwise_sa.h:178:7: error:   overriding ‘virtual InorderBlockwiseSA<S2bDnaString>::~InorderBlockwiseSA() noexcept’
>  class InorderBlockwiseSA : public BlockwiseSA<TStr> {
>        ^~~~~~~~~~~~~~~~~~
> In file included from bt2_io.cpp:25:0:
> bt2_idx.h: In static member function ‘static std::pair<Ebwt*, Ebwt*> Ebwt::fromStrings(const EList<std::__cxx11::basic_string<char> >&, bool, int, int, bool, int32_t, int32_t, int32_t, const string&, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, uint32_t, bool, bool, bool)’:
> bt2_idx.h:827:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<stringstream> ss(new stringstream());
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_io.cpp:25:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from bt2_io.cpp:25:0:
> bt2_idx.h:831:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<FileBuf> fb(new FileBuf(ss.get()));
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_io.cpp:25:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from blockwise_sa.h:34:0,
>                  from bt2_idx.h:42,
>                  from bt2_util.cpp:26:
> diff_sample.h: In function ‘void calcExhaustiveDC(T, bool, bool)’:
> diff_sample.h:180:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>       ^~
> diff_sample.h:180:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>                                 ^~~~~
> diff_sample.h:181:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>       ^~
> diff_sample.h:181:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>                                 ^~~~~
> In file included from bt2_idx.h:42:0,
>                  from bt2_util.cpp:26:
> blockwise_sa.h: In instantiation of ‘class KarkkainenBlockwiseSA<S2bDnaString>’:
> blockwise_sa.h:520:48:   required from here
> blockwise_sa.h:218:5: error: looser throw specifier for ‘KarkkainenBlockwiseSA<TStr>::~KarkkainenBlockwiseSA() noexcept (false) [with TStr = S2bDnaString]’
>      ~KarkkainenBlockwiseSA()
>      ^
> In file included from bt2_idx.h:42:0,
>                  from bt2_util.cpp:26:
> blockwise_sa.h:178:7: error:   overriding ‘virtual InorderBlockwiseSA<S2bDnaString>::~InorderBlockwiseSA() noexcept’
>  class InorderBlockwiseSA : public BlockwiseSA<TStr> {
>        ^~~~~~~~~~~~~~~~~~
> In file included from bt2_util.cpp:26:0:
> bt2_idx.h: In static member function ‘static std::pair<Ebwt*, Ebwt*> Ebwt::fromStrings(const EList<std::__cxx11::basic_string<char> >&, bool, int, int, bool, int32_t, int32_t, int32_t, const string&, bool, TIndexOffU, TIndexOffU, TIndexOffU, int, uint32_t, bool, bool, bool)’:
> bt2_idx.h:827:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<stringstream> ss(new stringstream());
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_util.cpp:26:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from bt2_util.cpp:26:0:
> bt2_idx.h:831:3: warning: ‘template<class> class std::auto_ptr’ is deprecated [-Wdeprecated-declarations]
>    auto_ptr<FileBuf> fb(new FileBuf(ss.get()));
>    ^~~~~~~~
> In file included from /usr/include/c++/6/memory:81:0,
>                  from bt2_idx.h:28,
>                  from bt2_util.cpp:26:
> /usr/include/c++/6/bits/unique_ptr.h:49:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from multikey_qsort.h:27:0,
>                  from multikey_qsort.cpp:20:
> diff_sample.h: In function ‘void calcExhaustiveDC(T, bool, bool)’:
> diff_sample.h:180:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>       ^~
> diff_sample.h:180:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>                                 ^~~~~
> diff_sample.h:181:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>       ^~
> diff_sample.h:181:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>                                 ^~~~~
> In file included from diff_sample.cpp:20:0:
> diff_sample.h: In function ‘void calcExhaustiveDC(T, bool, bool)’:
> diff_sample.h:180:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>       ^~
> diff_sample.h:180:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d1]) diffCnt++; diffs[d1] = true;
>                                 ^~~~~
> diff_sample.h:181:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>       ^~
> diff_sample.h:181:32: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
>       if(!diffs[d2]) diffCnt++; diffs[d2] = true;
>                                 ^~~~~
> make[2]: *** [bowtie2-build-s] Error 1

The full build log is available from:
   http://people.debian.org/~lucas/logs/2016/07/13/bowtie2_2.2.9-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-med-packaging mailing list