Hi,
dd-opentracing-cpp 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/dd-opentracing-cpp_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.
[...]
inlined from ‘nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType>::string_t nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType>::dump(int, char, bool, error_handler_t) const [with ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::json_abi_v3_11_2::adl_serializer; BinaryType = std::vector<unsigned char>]’ at /build/reproducible-path/dd-opentracing-cpp-1.3.7/3rd_party/include/nlohmann/json.hpp:20443:30:
/usr/include/c++/16/bits/new_allocator.h:151:73: note: at offset 16 into object of size 32 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
In file included from /usr/include/c++/16/bits/stl_tempbuf.h:61,
from /usr/include/c++/16/bits/stl_algo.h:69,
from /usr/include/c++/16/algorithm:63,
from /usr/include/opentracing/string_view.h:5,
from /usr/include/opentracing/propagation.h:4,
from /usr/include/opentracing/tracer.h:4,
from /build/reproducible-path/dd-opentracing-cpp-1.3.7/include/datadog/opentracing.h:19,
from /build/reproducible-path/dd-opentracing-cpp-1.3.7/src/tracer_factory.h:4,
from /build/reproducible-path/dd-opentracing-cpp-1.3.7/src/tracer_factory.cpp:1:
In function ‘constexpr void std::_Destroy(_Tp*) [with _Tp = mutex]’,
inlined from ‘static void std::allocator_traits<std::allocator<void> >::destroy(allocator_type&, _Up*) [with _Up = std::mutex]’ at /usr/include/c++/16/bits/alloc_traits.h:859:17,
inlined from ‘void std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_M_dispose() [with _Tp = std::mutex; _Alloc = std::allocator<void>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:682:35,
inlined from ‘void std::_Sp_counted_base<_Lp>::_M_release() [with __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:423:18,
inlined from ‘void std::_Sp_counted_base<_Lp>::_M_release() [with __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:392:5,
inlined from ‘std::__shared_count<_Lp>::~__shared_count() [with __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:1136:21,
inlined from ‘std::__shared_ptr<_Tp, _Lp>::~__shared_ptr() [with _Tp = nlohmann::json_abi_v3_11_2::detail::output_adapter_protocol<char>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:1610:7,
inlined from ‘std::shared_ptr<nlohmann::json_abi_v3_11_2::detail::output_adapter_protocol<char> >::~shared_ptr()’ at /usr/include/c++/16/bits/shared_ptr.h:175:11,
inlined from ‘nlohmann::json_abi_v3_11_2::detail::output_adapter<char>::~output_adapter()’ at /build/reproducible-path/dd-opentracing-cpp-1.3.7/3rd_party/include/nlohmann/json.hpp:14912:7,
inlined from ‘nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType>::string_t nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType>::dump(int, char, bool, error_handler_t) const [with ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::json_abi_v3_11_2::adl_serializer; BinaryType = std::vector<unsigned char>]’ at /build/reproducible-path/dd-opentracing-cpp-1.3.7/3rd_party/include/nlohmann/json.hpp:20443:30:
/usr/include/c++/16/bits/stl_construct.h:166:7: error: array subscript ‘std::mutex[0]’ is partly outside array bounds of ‘unsigned char [32]’ [-Werror=array-bounds=]
166 | __pointer->~_Tp();
| ^~~~~~~~~
In file included from /usr/include/aarch64-linux-gnu/c++/16/bits/c++allocator.h:33,
from /usr/include/c++/16/bits/allocator.h:46,
from /usr/include/c++/16/string:46,
from /usr/include/c++/16/bits/locale_classes.h:43,
from /usr/include/c++/16/bits/ios_base.h:43,
from /usr/include/c++/16/ios:46,
from /usr/include/c++/16/bits/ostream.h:43,
from /usr/include/c++/16/ostream:42,
from /usr/include/opentracing/string_view.h:7:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::_Sp_counted_ptr_inplace<nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, std::__cxx11::basic_string<char> >, std::allocator<void>, __gnu_cxx::_S_atomic>]’,
inlined from ‘static _Tp* std::allocator_traits<std::allocator<_CharT> >::allocate(allocator_type&, size_type) [with _Tp = std::_Sp_counted_ptr_inplace<nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, std::__cxx11::basic_string<char> >, std::allocator<void>, __gnu_cxx::_S_atomic>]’ at /usr/include/c++/16/bits/alloc_traits.h:638:28,
inlined from ‘std::__allocated_ptr<_Alloc> std::__allocate_guarded(_Alloc&) [with _Alloc = allocator<_Sp_counted_ptr_inplace<nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, __cxx11::basic_string<char> >, allocator<void>, __gnu_cxx::_S_atomic> >]’ at /usr/include/c++/16/bits/allocated_ptr.h:103:69,
inlined from ‘std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, std::__cxx11::basic_string<char> >; _Alloc = std::allocator<void>; _Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:1034:9,
inlined from ‘std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; _Tp = nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, std::__cxx11::basic_string<char> >; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]’ at /usr/include/c++/16/bits/shared_ptr_base.h:1812:14,
inlined from ‘std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&}; _Tp = nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, std::__cxx11::basic_string<char> >]’ at /usr/include/c++/16/bits/shared_ptr.h:463:59,
inlined from ‘std::shared_ptr<typename std::enable_if<(! std::is_array<_Tp>::value), _Tp>::type> std::make_shared(_Args&& ...) [with _Tp = nlohmann::json_abi_v3_11_2::detail::output_string_adapter<char, __cxx11::basic_string<char> >; _Args = {__cxx11::basic_string<char, char_traits<char>, allocator<char> >&}]’ at /usr/include/c++/16/bits/shared_ptr.h:1066:39,
inlined from ‘nlohmann::json_abi_v3_11_2::detail::output_adapter<CharType, StringType>::output_adapter(StringType&) [with CharType = char; StringType = std::__cxx11::basic_string<char>]’ at /build/reproducible-path/dd-opentracing-cpp-1.3.7/3rd_party/include/nlohmann/json.hpp:14925:75,
inlined from ‘nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType>::string_t nlohmann::json_abi_v3_11_2::basic_json<ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType>::dump(int, char, bool, error_handler_t) const [with ObjectType = std::map; ArrayType = std::vector; StringType = std::__cxx11::basic_string<char>; BooleanType = bool; NumberIntegerType = long int; NumberUnsignedType = long unsigned int; NumberFloatType = double; AllocatorType = std::allocator; JSONSerializer = nlohmann::json_abi_v3_11_2::adl_serializer; BinaryType = std::vector<unsigned char>]’ at /build/reproducible-path/dd-opentracing-cpp-1.3.7/3rd_party/include/nlohmann/json.hpp:20443:30:
/usr/include/c++/16/bits/new_allocator.h:151:73: note: at offset 16 into object of size 32 allocated by ‘operator new’
151 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
cc1plus: all warnings being treated as errors
cc1plus: all warnings being treated as errors
make[3]: *** [CMakeFiles/dd_opentracing_plugin.dir/build.make:376: CMakeFiles/dd_opentracing_plugin.dir/src/tracer_factory.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [CMakeFiles/dd_opentracing.dir/build.make:376: CMakeFiles/dd_opentracing.dir/src/tracer_factory.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:182: CMakeFiles/dd_opentracing.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:214: CMakeFiles/dd_opentracing_plugin.dir/all] Error 2
[ 65%] Linking CXX static library libcatch.a
cd /build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu/test && /usr/bin/cmake -P CMakeFiles/catch.dir/cmake_clean_target.cmake
cd /build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/catch.dir/link.txt --verbose=1
/usr/bin/ar qc libcatch.a CMakeFiles/catch.dir/test_main.cpp.o
/usr/bin/ranlib libcatch.a
make[3]: Leaving directory '/build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu'
[ 65%] Built target catch
make[2]: Leaving directory '/build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu'
make[1]: *** [Makefile:149: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/dd-opentracing-cpp-1.3.7/obj-aarch64-linux-gnu'
dh_auto_build: error: cd obj-aarch64-linux-gnu && make -j128 INSTALL="install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:10: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2