Bug#1075340: openfst: ftbfs with GCC-14

Matthias Klose doko at debian.org
Wed Jul 3 13:38:44 BST 2024


Package: src:openfst
Version: 1.7.9-5
Severity: important
Tags: sid trixie
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-14

[This bug is targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-14/g++-14, but succeeds to build with gcc-13/g++-13. The
severity of this report will be raised before the trixie release.

The full build log can be found at:
http://qa-logs.debian.net/2024/07/01/openfst_1.7.9-5_unstable_gccexp.log
The last lines of the build log are at the end of this report.

To build with GCC 14, either set CC=gcc-14 CXX=g++-14 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures are new warnings resulting in build failures with
-Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-14/porting_to.html

[...]
                 from fst.cc:13:
./../include/fst/replace.h: In member function ‘bool fst::internal::ReplaceFstImpl<Arc, StateTable, CacheStore>::ComputeArc(const StateTuple&, const Arc&, Arc*, uint8)’:
./../include/fst/replace.h:804:32: warning: expected ‘template’ keyword before dependent template name [-Wmissing-template-keyword]
  804 |     if (arc.olabel == 0 || arc.olabel < *nonterminal_set_.begin() ||
      |                                ^~~~~~
      |                                template
make[5]: *** [Makefile:479: fst.lo] Error 1
In file included from ./../include/fst/symbol-table-ops.h:12,
                 from symbol-table-ops.cc:5:
./../include/fst/fst.h: In member function ‘fst::internal::FstImpl<Arc>& fst::internal::FstImpl<Arc>::operator=(const fst::internal::FstImpl<Arc>&)’:
./../include/fst/fst.h:679:59: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::SymbolTable>’ and ‘fst::SymbolTable*’)
  679 |     isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr;
      |                                                           ^~~~~~~
In file included from /usr/include/c++/14/memory:78,
                 from ./../include/fst/fst.h:16:
/usr/include/c++/14/bits/unique_ptr.h:424:9: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Ep = _Up; _Tp = fst::SymbolTable; _Dp = std::default_delete<fst::SymbolTable>]’
  424 |         operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
      |         ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:424:9: note:   template argument deduction/substitution failed:
./../include/fst/fst.h:679:59: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::SymbolTable*’
  679 |     isymbols_ = impl.isymbols_ ? impl.isymbols_->Copy() : nullptr;
      |                                                           ^~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:408:19: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::SymbolTable; _Dp = std::default_delete<fst::SymbolTable>]’
  408 |       unique_ptr& operator=(unique_ptr&&) = default;
      |                   ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:408:29: note:   no known conversion for argument 1 from ‘fst::SymbolTable*’ to ‘std::unique_ptr<fst::SymbolTable>&&’
  408 |       unique_ptr& operator=(unique_ptr&&) = default;
      |                             ^~~~~~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::SymbolTable; _Dp = std::default_delete<fst::SymbolTable>; std::nullptr_t = std::nullptr_t]’
  434 |       operator=(nullptr_t) noexcept
      |       ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:17: note:   no known conversion for argument 1 from ‘fst::SymbolTable*’ to ‘std::nullptr_t’
  434 |       operator=(nullptr_t) noexcept
      |                 ^~~~~~~~~
./../include/fst/fst.h:680:59: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::SymbolTable>’ and ‘fst::SymbolTable*’)
  680 |     osymbols_ = impl.osymbols_ ? impl.osymbols_->Copy() : nullptr;
      |                                                           ^~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:424:9: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Ep = _Up; _Tp = fst::SymbolTable; _Dp = std::default_delete<fst::SymbolTable>]’
  424 |         operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
      |         ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:424:9: note:   template argument deduction/substitution failed:
./../include/fst/fst.h:680:59: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::SymbolTable*’
  680 |     osymbols_ = impl.osymbols_ ? impl.osymbols_->Copy() : nullptr;
      |                                                           ^~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:408:19: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::SymbolTable; _Dp = std::default_delete<fst::SymbolTable>]’
  408 |       unique_ptr& operator=(unique_ptr&&) = default;
      |                   ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:408:29: note:   no known conversion for argument 1 from ‘fst::SymbolTable*’ to ‘std::unique_ptr<fst::SymbolTable>&&’
  408 |       unique_ptr& operator=(unique_ptr&&) = default;
      |                             ^~~~~~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::SymbolTable; _Dp = std::default_delete<fst::SymbolTable>; std::nullptr_t = std::nullptr_t]’
  434 |       operator=(nullptr_t) noexcept
      |       ^~~~~~~~
/usr/include/c++/14/bits/unique_ptr.h:434:17: note:   no known conversion for argument 1 from ‘fst::SymbolTable*’ to ‘std::nullptr_t’
  434 |       operator=(nullptr_t) noexcept
      |                 ^~~~~~~~~
make[5]: *** [Makefile:479: symbol-table-ops.lo] Error 1
make[5]: *** [Makefile:479: fst-types.lo] Error 1
make[5]: Leaving directory '/<<PKGBUILDDIR>>/src/lib'
make[4]: *** [Makefile:371: all-recursive] Error 1
make[4]: Leaving directory '/<<PKGBUILDDIR>>/src'
make[3]: *** [Makefile:428: all-recursive] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>'
make[2]: *** [Makefile:352: all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j8 returned exit code 2
make[1]: *** [debian/rules:29: override_dh_auto_build] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:13: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the debian-science-maintainers mailing list