Hi,
systemtap 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/systemtap_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.
[...]
| ~~~~~~~~~~~~~^~~
• candidate 6: ‘void std::map<_Key, _Tp, _Compare, _Alloc>::insert(std::initializer_list<std::pair<const _Key, _Tp> >) [with _Key = std::__cxx11::basic_string<char>; _Tp = functiondecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >]’
/usr/include/c++/16/bits/stl_map.h:993:7:
993 | insert(std::initializer_list<value_type> __list)
| ^~~~~~
• no known conversion for argument 1 from ‘<brace-enclosed initializer list>’ to ‘std::initializer_list<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >’
/usr/include/c++/16/bits/stl_map.h:993:48:
993 | insert(std::initializer_list<value_type> __list)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
• candidate 7: ‘std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(const_iterator, const value_type&) [with _Key = std::__cxx11::basic_string<char>; _Tp = functiondecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >; iterator = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, functiondecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> > >::iterator; const_iterator = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, functiondecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> > >::const_iterator; value_type = std::pair<const std::__cxx11::basic_string<char>, functiondecl*>]’
/usr/include/c++/16/bits/stl_map.h:1041:7:
1041 | insert(const_iterator __position, const value_type& __x)
| ^~~~~~
• candidate expects 2 arguments, 1 provided
• candidate 8: ‘std::map<_Key, _Tp, _Compare, _Alloc>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(const_iterator, value_type&&) [with _Key = std::__cxx11::basic_string<char>; _Tp = functiondecl*; _Compare = std::less<std::__cxx11::basic_string<char> >; _Alloc = std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >; iterator = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, functiondecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> > >::iterator; const_iterator = std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, functiondecl*>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> > >::const_iterator; value_type = std::pair<const std::__cxx11::basic_string<char>, functiondecl*>]’
/usr/include/c++/16/bits/stl_map.h:1051:7:
1051 | insert(const_iterator __position, value_type&& __x)
| ^~~~~~
• candidate expects 2 arguments, 1 provided
language-server/stap-language-server.cxx: In member function ‘void document::apply_change(lsp_object, TextDocumentSyncKind)’:
language-server/stap-language-server.cxx:385:79: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
385 | auto update_remove_or_pass = [start_ln, end_ln, delta_line_count](auto& container, auto& it, symboldecl* sym){
| ^~~~
language-server/stap-language-server.cxx:385:96: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’
385 | auto update_remove_or_pass = [start_ln, end_ln, delta_line_count](auto& container, auto& it, symboldecl* sym){
| ^~~~
language-server/stap-language-server.cxx: In lambda function:
language-server/stap-language-server.cxx:390:36: error: request for member ‘erase’ in ‘container’, which is of non-class type ‘int’
390 | it = container.erase(it);
| ^~~~~
language-server/stap-language-server.cxx: In member function ‘void document::apply_change(lsp_object, TextDocumentSyncKind)’:
language-server/stap-language-server.cxx:402:38: error: no match for call to ‘(document::apply_change(lsp_object, TextDocumentSyncKind)::<lambda(int&, int&, symboldecl*)>) (std::vector<vardecl*>&, __gnu_cxx::__normal_iterator<vardecl* const*, std::vector<vardecl*> >&, vardecl* const&)’
402 | update_remove_or_pass(globals, it, *it);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
• there is 1 candidate
language-server/stap-language-server.cxx:385:77:
385 | auto update_remove_or_pass = [start_ln, end_ln, delta_line_count](auto& container, auto& it, symboldecl* sym){
| ^
• candidate 1: ‘document::apply_change(lsp_object, TextDocumentSyncKind)::<lambda(int&, int&, symboldecl*)>’
language-server/stap-language-server.cxx:385:42:
385 | auto update_remove_or_pass = [start_ln, end_ln, delta_line_count](auto& container, auto& it, symboldecl* sym){
| ^
• no known conversion for argument 1 from ‘std::vector<vardecl*>’ to ‘int&’
language-server/stap-language-server.cxx:404:38: error: no match for call to ‘(document::apply_change(lsp_object, TextDocumentSyncKind)::<lambda(int&, int&, symboldecl*)>) (std::map<std::__cxx11::basic_string<char>, functiondecl*>&, std::_Rb_tree_const_iterator<std::pair<const std::__cxx11::basic_string<char>, functiondecl*> >&, functiondecl* const&)’
404 | update_remove_or_pass(functions, it, it->second);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
• there is 1 candidate
language-server/stap-language-server.cxx:385:77:
385 | auto update_remove_or_pass = [start_ln, end_ln, delta_line_count](auto& container, auto& it, symboldecl* sym){
| ^
• candidate 1: ‘document::apply_change(lsp_object, TextDocumentSyncKind)::<lambda(int&, int&, symboldecl*)>’
language-server/stap-language-server.cxx:385:42:
385 | auto update_remove_or_pass = [start_ln, end_ln, delta_line_count](auto& container, auto& it, symboldecl* sym){
| ^
• no known conversion for argument 1 from ‘std::map<std::__cxx11::basic_string<char>, functiondecl*>’ to ‘int&’
make[3]: *** [Makefile:1792: language-server/stap-stap-language-server.o] Error 1
make[3]: *** Waiting for unfinished jobs....
tapsets.cxx: In member function ‘virtual void dwarf_derived_probe::emit_probe_local_init(systemtap_session&, translator_output*)’:
tapsets.cxx:6207:20: error: variable ‘i’ set but not used [-Werror=unused-but-set-variable=]
6207 | unsigned i = 0;
| ^
cc1plus: all warnings being treated as errors
make[3]: *** [Makefile:1330: stap-tapsets.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/systemtap-5.3'
make[2]: *** [Makefile:2221: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/systemtap-5.3'
make[1]: *** [Makefile:821: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/systemtap-5.3'
dh_auto_build: error: make -j128 returned exit code 2
make: *** [debian/rules:30: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2