Bug#1115248: rkcommon: FTBFS with glibc 2.42 due to conflict with the newly added rsqrt function

Aurelien Jarno aurel32 at debian.org
Sun Sep 14 15:13:49 BST 2025


Source: rkcommon
Version: 1.14.2-1
Severity: important
Tags: ftbfs forky sid
Justification: fails to build from source
User: debian-glibc at lists.debian.org
Usertags: glibc-2.42

Dear maintainer,

During a rebuild of all packages in unstable with glibc 2.42 from
experimental, your package failed to build. Below you will find how the
build ends. If required, the full build log is available here:

https://people.debian.org/~aurel32/glibc-2.42/

The build failure is due to the addition of the rsqrt function (part of
ISO C12) to glibc 2.42, now conflicting with the rkcommon source:

https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS;h=f0b0e924a45c7698e6ca6415f2d9a096a24e37df;hb=d2097651cc57834dbfcaa102ddfacae0d86cfb66#l12

About the archive rebuild: The build was made on virtual machines from
AWS, using sbuild, a reduced chroot with only build-essential packages
and glibc 2.42 from experimental.

Regards
Aurelien

--------------------------------------------------------------------------------
[...]
[ 35%] Building CXX object tests/CMakeFiles/rkcommon_test_suite.dir/math/test_rkmath.cpp.o
cd /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/tests && /usr/bin/c++ -DRKCOMMON_TASKING_TBB -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++11 -MD -MT tests/CMakeFiles/rkcommon_test_suite.dir/math/test_rkmath.cpp.o -MF CMakeFiles/rkcommon_test_suite.dir/math/test_rkmath.cpp.o.d -o CMakeFiles/rkcommon_test_suite.dir/math/test_rkmath.cpp.o -c /<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp
In file included from /<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:4:
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp: In instantiation of ‘void test_rsqrt() [with T = double]’:
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:59:21:   required from here
   59 |   test_rsqrt<double>();
      |   ~~~~~~~~~~~~~~~~~~^~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:52:24: error: call of overloaded ‘rsqrt(double)’ is ambiguous
   52 |   REQUIRE(CmpT<T>(rsqrt(T(1)), T(1)));
      |                   ~~~~~^~~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:52:24: note: there are 3 candidates
In file included from /usr/include/features.h:523,
                 from /usr/include/x86_64-linux-gnu/c++/15/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/15/bits/c++config.h:727,
                 from /usr/include/c++/15/bits/requires_hosted.h:31,
                 from /usr/include/c++/15/iosfwd:40,
                 from /<<PKGBUILDDIR>>/tests/math/../catch.hpp:476:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:206:1: note: candidate 1: ‘double rsqrt(double)’
  206 | __MATHCALL (rsqrt,, (_Mdouble_ __x));
      | ^~~~~~~~~~
In file included from /<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:5:
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:75:25: note: candidate 2: ‘float rkcommon::math::rsqrt(float)’
   75 |     __forceinline float rsqrt(const float x)
      |                         ^~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:90:26: note: candidate 3: ‘double rkcommon::math::rsqrt(double)’
   90 |     __forceinline double rsqrt(const double x)
      |                          ^~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:52:24: error: call of overloaded ‘rsqrt(double)’ is ambiguous
   52 |   REQUIRE(CmpT<T>(rsqrt(T(1)), T(1)));
      |                   ~~~~~^~~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:52:24: note: there are 3 candidates
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:206:1: note: candidate 1: ‘double rsqrt(double)’
  206 | __MATHCALL (rsqrt,, (_Mdouble_ __x));
      | ^~~~~~~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:75:25: note: candidate 2: ‘float rkcommon::math::rsqrt(float)’
   75 |     __forceinline float rsqrt(const float x)
      |                         ^~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:90:26: note: candidate 3: ‘double rkcommon::math::rsqrt(double)’
   90 |     __forceinline double rsqrt(const double x)
      |                          ^~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:52:24: error: call of overloaded ‘rsqrt(double)’ is ambiguous
   52 |   REQUIRE(CmpT<T>(rsqrt(T(1)), T(1)));
      |                   ~~~~~^~~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:52:24: note: there are 3 candidates
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:206:1: note: candidate 1: ‘double rsqrt(double)’
  206 | __MATHCALL (rsqrt,, (_Mdouble_ __x));
      | ^~~~~~~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:75:25: note: candidate 2: ‘float rkcommon::math::rsqrt(float)’
   75 |     __forceinline float rsqrt(const float x)
      |                         ^~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:90:26: note: candidate 3: ‘double rkcommon::math::rsqrt(double)’
   90 |     __forceinline double rsqrt(const double x)
      |                          ^~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:53:24: error: call of overloaded ‘rsqrt(double)’ is ambiguous
   53 |   REQUIRE(CmpT<T>(rsqrt(T(4)), T(.5)));
      |                   ~~~~~^~~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:53:24: note: there are 3 candidates
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:206:1: note: candidate 1: ‘double rsqrt(double)’
  206 | __MATHCALL (rsqrt,, (_Mdouble_ __x));
      | ^~~~~~~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:75:25: note: candidate 2: ‘float rkcommon::math::rsqrt(float)’
   75 |     __forceinline float rsqrt(const float x)
      |                         ^~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:90:26: note: candidate 3: ‘double rkcommon::math::rsqrt(double)’
   90 |     __forceinline double rsqrt(const double x)
      |                          ^~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:53:24: error: call of overloaded ‘rsqrt(double)’ is ambiguous
   53 |   REQUIRE(CmpT<T>(rsqrt(T(4)), T(.5)));
      |                   ~~~~~^~~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:53:24: note: there are 3 candidates
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:206:1: note: candidate 1: ‘double rsqrt(double)’
  206 | __MATHCALL (rsqrt,, (_Mdouble_ __x));
      | ^~~~~~~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:75:25: note: candidate 2: ‘float rkcommon::math::rsqrt(float)’
   75 |     __forceinline float rsqrt(const float x)
      |                         ^~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:90:26: note: candidate 3: ‘double rkcommon::math::rsqrt(double)’
   90 |     __forceinline double rsqrt(const double x)
      |                          ^~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:53:24: error: call of overloaded ‘rsqrt(double)’ is ambiguous
   53 |   REQUIRE(CmpT<T>(rsqrt(T(4)), T(.5)));
      |                   ~~~~~^~~~~~
/<<PKGBUILDDIR>>/tests/math/test_rkmath.cpp:53:24: note: there are 3 candidates
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:206:1: note: candidate 1: ‘double rsqrt(double)’
  206 | __MATHCALL (rsqrt,, (_Mdouble_ __x));
      | ^~~~~~~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:75:25: note: candidate 2: ‘float rkcommon::math::rsqrt(float)’
   75 |     __forceinline float rsqrt(const float x)
      |                         ^~~~~
/<<PKGBUILDDIR>>/rkcommon/math/rkmath.h:90:26: note: candidate 3: ‘double rkcommon::math::rsqrt(double)’
   90 |     __forceinline double rsqrt(const double x)
      |                          ^~~~~
make[3]: *** [tests/CMakeFiles/rkcommon_test_suite.dir/build.make:180: tests/CMakeFiles/rkcommon_test_suite.dir/math/test_rkmath.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:1088: tests/CMakeFiles/rkcommon_test_suite.dir/all] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:169: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j2 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:15: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------


More information about the debian-science-maintainers mailing list