#1133454 dd-opentracing-cpp: ftbfs with GCC-16

#1133454#5
Date:
2026-04-13 13:02:34 UTC
From:
To:
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

#1133454#12
Date:
2026-08-10 07:04:40 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
dd-opentracing-cpp, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1133454@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Stephen Gelman <ssgelm@debian.org> (supplier of updated dd-opentracing-cpp package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Mon, 10 Aug 2026 01:38:50 -0500
Source: dd-opentracing-cpp
Architecture: source
Version: 1.3.7-2
Distribution: unstable
Urgency: medium
Maintainer: Stephen Gelman <ssgelm@debian.org>
Changed-By: Stephen Gelman <ssgelm@debian.org>
Closes: 1133454
Changes:
 dd-opentracing-cpp (1.3.7-2) unstable; urgency=medium
 .
   * Do not build with -Werror so gcc 16 warnings do not fail the build
     (Closes: #1133454)
   * Update DH compat version to 14
   * Update standards version to 4.7.4
Checksums-Sha1:
 24cfec92be6baa40536e19b5cd2c9b10493a9c38 2126 dd-opentracing-cpp_1.3.7-2.dsc
 b12049d4fb0118c075413c931dccf01366f0269a 4632 dd-opentracing-cpp_1.3.7-2.debian.tar.xz
 23ef17cbbbc4047f993e887abfffac6c61bd23ae 9589 dd-opentracing-cpp_1.3.7-2_amd64.buildinfo
Checksums-Sha256:
 23faf77672d4ffc804a080aec1326a5b9e618988c34c9a8f9a0e60ef23994a36 2126 dd-opentracing-cpp_1.3.7-2.dsc
 6de1ea0787a575972a2db88d31b6f7794752081ed5ee9f69ba2ab61390d41818 4632 dd-opentracing-cpp_1.3.7-2.debian.tar.xz
 4937ef2b216132821d4abfcbfc9e1d0b55e2bb21c8ceabc4e308e533112c078d 9589 dd-opentracing-cpp_1.3.7-2_amd64.buildinfo
Files:
 c8c5dd3bb4edeccc1abfda48642cb1ce 2126 libs optional dd-opentracing-cpp_1.3.7-2.dsc
 7db744fba01afbad94d99753987dd516 4632 libs optional dd-opentracing-cpp_1.3.7-2.debian.tar.xz
 a865dfb5bf37dc9a6355bd762cbb24d5 9589 libs optional dd-opentracing-cpp_1.3.7-2_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJGBAEBCgAwFiEEC77u8GTpSr6EMli0dUHPqvw16s8FAmp5dKsSHHNzZ2VsbUBk
ZWJpYW4ub3JnAAoJEHVBz6r8NerPHCQQAJ2BsrSrQ0JLE+I/4g6uRbv2/m66dtup
lfAO7FenMux9F4c9lI264mlvA6S20kHxOfXXx2PhF1hwbaDoALlT2krVTSAdbbPo
fwVgYAN/8PdLC5Ne5BAxFrH7Pi7AjnXkRPwZBNpdxPJCW7u464iqtcrJaVeE0uo6
WRtD1uYaQ6mzM2PWGmsuhwrLxJE88aqyVJqvAumswL0tPz85is5rsOR8IJcbtDRM
5r41x64pHnce5c/kJ3zTvQy2g0w8J+DenFYF9R9TdFwemBtI0/XaA6UH7MiVhr4i
nhDRCrKEMfyfUDcOAK+V+0rVnfbXk8TTVFdOWhdYS+AvCxneffyjLhSwmpyUlhWa
0T/z4wWkgxqbsCYeynBTHC4veYi3tfUmuOP6qTDa11yg5RbZSWQZblbNej3LwTYR
Y4uwDAX/EjsQc4NTh2PunrO+Kdevhq3rkHj/kO8Uy4RVrcr2pGNeJXWw3dC7vMfu
WVC3RIm5k+iFwZIorxXMYrdEm8ckFC1baO/bPTIIuIHtqCJa/wA50NlG5mOcjlsN
wD68KnA2zfDMp1ZTY1HtCkWhY+wKBcmFX78vjRgYwsJgSuqE+Ozi5TKDhs7joJQd
WBp5YiQYxIdwIKMtBmDFjq9tBgle0N1psg7b2StWrqTkQ6H+L66n6DuGGR7Jt+8F
sScvUgjOJ3qO
=cLAG
-----END PGP SIGNATURE-----