#1097499 odr-dabmux: ftbfs with GCC-15

#1097499#5
Date:
2025-02-17 17:41:03 UTC
From:
To:
[This bug is NOT 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-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/odr-dabmux_5.0.0+ds-1_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other 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-15/porting_to.html

[...]
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/c++/15/variant:1787:5: note: candidate 26: ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >& std::get(variant<_Types ...>&)’
 1787 |     get(variant<_Types...>& __v)
      |     ^~~
/usr/include/c++/15/variant:1787:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: error: type/value mismatch at argument 1 in template parameter list for ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >& std::get(variant<_Types ...>&)’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
lib/Json.cpp:119:70: note:   expected a constant of type ‘long unsigned int’, got ‘std::shared_ptr<std::unordered_map<std::__cxx11::basic_string<char>, json::value_t> >’
/usr/include/c++/15/variant:1798:5: note: candidate 27: ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >&& std::get(variant<_Types ...>&&)’
 1798 |     get(variant<_Types...>&& __v)
      |     ^~~
/usr/include/c++/15/variant:1798:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: error: type/value mismatch at argument 1 in template parameter list for ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >&& std::get(variant<_Types ...>&&)’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
lib/Json.cpp:119:70: note:   expected a constant of type ‘long unsigned int’, got ‘std::shared_ptr<std::unordered_map<std::__cxx11::basic_string<char>, json::value_t> >’
/usr/include/c++/15/variant:1809:5: note: candidate 28: ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >& std::get(const variant<_Types ...>&)’
 1809 |     get(const variant<_Types...>& __v)
      |     ^~~
/usr/include/c++/15/variant:1809:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: error: type/value mismatch at argument 1 in template parameter list for ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >& std::get(const variant<_Types ...>&)’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
lib/Json.cpp:119:70: note:   expected a constant of type ‘long unsigned int’, got ‘std::shared_ptr<std::unordered_map<std::__cxx11::basic_string<char>, json::value_t> >’
/usr/include/c++/15/variant:1820:5: note: candidate 29: ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >&& std::get(const variant<_Types ...>&&)’
 1820 |     get(const variant<_Types...>&& __v)
      |     ^~~
/usr/include/c++/15/variant:1820:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: error: type/value mismatch at argument 1 in template parameter list for ‘template<long unsigned int _Np, class ... _Types> constexpr std::variant_alternative_t<_Np, std::variant<_Types ...> >&& std::get(const variant<_Types ...>&&)’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
lib/Json.cpp:119:70: note:   expected a constant of type ‘long unsigned int’, got ‘std::shared_ptr<std::unordered_map<std::__cxx11::basic_string<char>, json::value_t> >’
/usr/include/c++/15/variant:1148:5: note: candidate 30: ‘template<class _Tp, class ... _Types> constexpr _Tp& std::get(variant<_Types ...>&)’
 1148 |     get(variant<_Types...>& __v)
      |     ^~~
/usr/include/c++/15/variant:1148:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: note:   mismatched types ‘std::variant<_Types ...>’ and ‘const int’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/c++/15/variant:1158:5: note: candidate 31: ‘template<class _Tp, class ... _Types> constexpr _Tp&& std::get(variant<_Types ...>&&)’
 1158 |     get(variant<_Types...>&& __v)
      |     ^~~
/usr/include/c++/15/variant:1158:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: note:   mismatched types ‘std::variant<_Types ...>’ and ‘const int’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/c++/15/variant:1168:5: note: candidate 32: ‘template<class _Tp, class ... _Types> constexpr const _Tp& std::get(const variant<_Types ...>&)’
 1168 |     get(const variant<_Types...>& __v)
      |     ^~~
/usr/include/c++/15/variant:1168:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: note:   mismatched types ‘const std::variant<_Types ...>’ and ‘const int’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
/usr/include/c++/15/variant:1178:5: note: candidate 33: ‘template<class _Tp, class ... _Types> constexpr const _Tp&& std::get(const variant<_Types ...>&&)’
 1178 |     get(const variant<_Types...>&& __v)
      |     ^~~
/usr/include/c++/15/variant:1178:5: note: template argument deduction/substitution failed:
lib/Json.cpp:119:70: note:   mismatched types ‘const std::variant<_Types ...>’ and ‘const int’
  119 |             const map_t& v = *std::get<std::shared_ptr<json::map_t> >(value.v);
      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
make[2]: *** [Makefile:1919: lib/odr_dabmux-Json.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/build/reproducible-path/odr-dabmux-5.0.0+ds'
make[1]: *** [Makefile:734: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/odr-dabmux-5.0.0+ds'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1097499#12
Date:
2025-09-05 09:30:52 UTC
From:
To:
Hi Matthias,

odr-dabmux is now available as version 5.3.0-1 in unstable and testing.
Is this bug still applicable ?

Thanks.

Robin