Bug#1133525: liborcus: ftbfs with GCC-16

Emanuele Rocca <[email protected]> Mon, 13 Apr 2026 15:05:55 +0200
Newsgroups gmane.linux.debian.devel.openoffice
Message-ID <[email protected]>
Package: src:liborcus
Version: 0.21.0-9
Severity: important
Tags: sid forky ftbfs
User: [email protected]
Usertags: ftbfs-gcc-16

Hi,

liborcus fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/liborcus_arm64.build.xz

The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++ 

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly with GCC 16.

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

[...]


  162 | ORCUS_PSR_DLLPUBLIC line_with_offset locate_line_with_offset(std::string_view strm, std::ptrdiff_t offset);
      |                                                                   ^~~~~~~~~~~
../../include/orcus/stream.hpp:162:67: note: ‘std::string_view’ is only available from C++17 onwards
../../include/orcus/stream.hpp:162:100: error: expected primary-expression before ‘offset’
  162 | ORCUS_PSR_DLLPUBLIC line_with_offset locate_line_with_offset(std::string_view strm, std::ptrdiff_t offset);
      |                                                                                                    ^~~~~~
../../include/orcus/stream.hpp:175:66: error: ‘string_view’ is not a member of ‘std’
  175 | ORCUS_PSR_DLLPUBLIC std::size_t locate_first_different_char(std::string_view left, std::string_view right);
      |                                                                  ^~~~~~~~~~~
../../include/orcus/stream.hpp:175:66: note: ‘std::string_view’ is only available from C++17 onwards
../../include/orcus/stream.hpp:175:89: error: ‘string_view’ is not a member of ‘std’
  175 | ORCUS_PSR_DLLPUBLIC std::size_t locate_first_different_char(std::string_view left, std::string_view right);
      |                                                                                         ^~~~~~~~~~~
../../include/orcus/stream.hpp:175:89: note: ‘std::string_view’ is only available from C++17 onwards
../../include/orcus/stream.hpp:175:106: error: expression list treated as compound expression in initializer [-fpermissive]
  175 | ORCUS_PSR_DLLPUBLIC std::size_t locate_first_different_char(std::string_view left, std::string_view right);
      |                                                                                                          ^
../../include/orcus/stream.hpp:183:65: error: ‘string_view’ is not a member of ‘std’
  183 | ORCUS_PSR_DLLPUBLIC std::size_t calc_logical_string_length(std::string_view s);
      |                                                                 ^~~~~~~~~~~
../../include/orcus/stream.hpp:183:65: note: ‘std::string_view’ is only available from C++17 onwards
In file included from test_global.cpp:11:
../../include/orcus/parser_global.hpp:81:45: error: ‘std::string_view’ has not been declared
   81 | ORCUS_PSR_DLLPUBLIC bool is_in(char c, std::string_view allowed);
      |                                             ^~~~~~~~~~~
../../include/orcus/parser_global.hpp:81:45: note: ‘std::string_view’ is only available from C++17 onwards
../../include/orcus/parser_global.hpp:156:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  156 | ORCUS_PSR_DLLPUBLIC std::string_view trim(std::string_view str);
      |                          ^~~~~~~~~~~
../../include/orcus/parser_global.hpp:156:21: note: ‘std::string_view’ is only available from C++17 onwards
  156 | ORCUS_PSR_DLLPUBLIC std::string_view trim(std::string_view str);
      |                     ^~~
test_global.cpp:47:48: error: ‘std::string_view’ has not been declared
   47 |     const char* filename, size_t line_no, std::string_view expected, const std::string& actual)
      |                                                ^~~~~~~~~~~
test_global.cpp:47:48: note: ‘std::string_view’ is only available from C++17 onwards
test_global.cpp: In function ‘void orcus::test::verify_content(const char*, size_t, int, const std::string&)’:
test_global.cpp:49:10: error: ‘string_view’ is not a member of ‘std’
   49 |     std::string_view s1 = expected;
      |          ^~~~~~~~~~~
test_global.cpp:49:10: note: ‘std::string_view’ is only available from C++17 onwards
test_global.cpp:50:10: error: ‘string_view’ is not a member of ‘std’
   50 |     std::string_view s2(actual.data(), actual.size());
      |          ^~~~~~~~~~~
test_global.cpp:50:10: note: ‘std::string_view’ is only available from C++17 onwards
test_global.cpp:51:5: error: ‘s1’ was not declared in this scope
   51 |     s1 = trim(s1);
      |     ^~
test_global.cpp:51:10: error: ‘trim’ was not declared in this scope; did you mean ‘tm’?
   51 |     s1 = trim(s1);
      |          ^~~~
      |          tm
test_global.cpp:52:5: error: ‘s2’ was not declared in this scope
   52 |     s2 = trim(s2);
      |     ^~
test_global.cpp:58:54: error: ‘orcus::locate_first_different_char’ cannot be used as a function
   58 |         size_t diff_pos = locate_first_different_char(s1, s2);
      |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
make[5]: *** [Makefile:446: test_global.o] Error 1
make[5]: Leaving directory '/build/reproducible-path/liborcus-0.21.0/src/test'
make[4]: *** [Makefile:2749: all-recursive] Error 1
make[4]: Leaving directory '/build/reproducible-path/liborcus-0.21.0/src'
make[3]: *** [Makefile:1538: all-recursive] Error 1
make[3]: Leaving directory '/build/reproducible-path/liborcus-0.21.0'
make[2]: *** [Makefile:1447: all] Error 2
make[2]: Leaving directory '/build/reproducible-path/liborcus-0.21.0'
dh_auto_build: error: make -j128 returned exit code 2
make[1]: *** [debian/rules:43: override_dh_auto_build-arch] Error 25
make[1]: Leaving directory '/build/reproducible-path/liborcus-0.21.0'
make: *** [debian/rules:23: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2