[Pkg-opencl-devel] Bug#1097514: opencl-clang-17: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 17:41:29 GMT 2025


Package: src:opencl-clang-17
Version: 17.0.1-1
Severity: important
Tags: sid forky
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-15

[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/opencl-clang-17_17.0.1-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

[...]
  186 |     if (I != Vector.end())    // Don't reinsert if it already exists.
      |              ~~~~~~~^~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:188:16: error: ‘class llvm::SmallVector<llvm::StringRef, 32>’ has no member named ‘size’
  188 |     if (Vector.size() < N) {
      |         ~~~~~~~^~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:190:61: error: ‘class llvm::SmallVector<llvm::StringRef, 32>’ has no member named ‘end’
  190 |       return std::make_pair(const_iterator(std::prev(Vector.end())), true);
      |                                                      ~~~~~~~^~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:194:20: error: ‘class llvm::SmallVector<llvm::StringRef, 32>’ has no member named ‘empty’
  194 |     while (!Vector.empty()) {
      |             ~~~~~~~^~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:195:25: error: ‘class llvm::SmallVector<llvm::StringRef, 32>’ has no member named ‘back’
  195 |       Set.insert(Vector.back());
      |                  ~~~~~~~^~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h: In instantiation of ‘llvm::SmallSetIterator<T, N, C>::~SmallSetIterator() [with T = llvm::StringRef; unsigned int N = 32; C = std::less<llvm::StringRef>]’:
/usr/include/c++/15/bits/stl_pair.h:284:12:   required from here
  284 |     struct pair
      |            ^~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:60:7: error: using invalid field ‘llvm::SmallSetIterator<T, N, C>::<unnamed union>::VecIter’
   60 |       VecIter.~VecIterTy();
      |       ^~~~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h: In instantiation of ‘bool llvm::SmallSet<T, N, C>::contains(const T&) const [with T = llvm::StringRef; unsigned int N = 32; C = std::less<llvm::StringRef>]’:
/build/reproducible-path/opencl-clang-17-17.0.1/options_compile.cpp:346:37:   required from here
  346 |     if (!parsedOclCFeatures.contains(std::string("-D") + OclCFeature))
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:238:33: error: ‘const class llvm::SmallVector<llvm::StringRef, 32>’ has no member named ‘end’
  238 |       return vfind(V) != Vector.end();
      |                          ~~~~~~~^~~
/usr/lib/llvm-17/include/llvm/ADT/SmallVector.h: In instantiation of ‘llvm::SmallVector<T, N>::~SmallVector() [with T = char; unsigned int N = 32]’:
/usr/lib/llvm-17/include/llvm/ADT/SmallString.h:29:3:   required from ‘bool llvm::detail::to_float(const llvm::Twine&, N&, N (*)(const char*, char**)) [with N = float]’
   29 |   SmallString() = default;
      |   ^~~~~~~~~~~
/usr/lib/llvm-17/include/llvm/ADT/StringExtras.h:285:26:   required from here
  285 |   return detail::to_float(T, Num, strtof);
      |          ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallVector.h:1206:31: error: ‘class llvm::SmallVector<char, 32>’ has no member named ‘begin’
 1206 |     this->destroy_range(this->begin(), this->end());
      |                         ~~~~~~^~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallVector.h:1206:46: error: ‘class llvm::SmallVector<char, 32>’ has no member named ‘end’
 1206 |     this->destroy_range(this->begin(), this->end());
      |                                        ~~~~~~^~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h: In instantiation of ‘llvm::SmallSetIterator<T, N, C>::SmallSetIterator(llvm::SmallSetIterator<T, N, C>&&) [with T = llvm::StringRef; unsigned int N = 32; C = std::less<llvm::StringRef>]’:
/usr/include/c++/15/bits/stl_pair.h:884:4:   required from ‘constexpr std::pair<_T1, _T2>::pair(_U1&&, _U2&&) [with _U1 = llvm::SmallSetIterator<llvm::StringRef, 32, std::less<llvm::StringRef> >; _U2 = bool&; typename std::enable_if<(std::_PCC<true, _T1, _T2>::_MoveConstructiblePair<_U1, _U2>() && std::_PCC<true, _T1, _T2>::_ImplicitlyMoveConvertiblePair<_U1, _U2>()), bool>::type <anonymous> = true; _T1 = llvm::SmallSetIterator<llvm::StringRef, 32, std::less<llvm::StringRef> >; _T2 = bool]’
  884 |         : first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y))
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/15/bits/stl_pair.h:1151:14:   required from ‘constexpr std::pair<typename std::__strip_reference_wrapper<typename std::decay<_Tp>::type>::__type, typename std::__strip_reference_wrapper<typename std::decay<_Tp2>::type>::__type> std::make_pair(_T1&&, _T2&&) [with _T1 = llvm::SmallSetIterator<llvm::StringRef, 32, less<llvm::StringRef> >; _T2 = bool&; typename __strip_reference_wrapper<typename decay<_Tp>::type>::__type = llvm::SmallSetIterator<llvm::StringRef, 32, less<llvm::StringRef> >; typename decay<_Tp>::type = llvm::SmallSetIterator<llvm::StringRef, 32, less<llvm::StringRef> >; typename __strip_reference_wrapper<typename decay<_Tp2>::type>::__type = bool; typename decay<_Tp2>::type = bool]’
 1151 |       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:182:28:   required from ‘std::pair<llvm::SmallSetIterator<T, N, C>, bool> llvm::SmallSet<T, N, C>::insert(const T&) [with T = llvm::StringRef; unsigned int N = 32; C = std::less<llvm::StringRef>]’
  182 |       return std::make_pair(const_iterator(I), Inserted);
      |              ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/opencl-clang-17-17.0.1/options_compile.cpp:332:32:   required from here
  332 |                     parsedOclCFeatures.insert(a);
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:76:7: error: using invalid field ‘llvm::SmallSetIterator<T, N, C>::<unnamed union>::VecIter’
   76 |       VecIter = std::move(Other.VecIter);
      |       ^~~~~~~
/usr/lib/llvm-17/include/llvm/ADT/SmallSet.h:76:33: error: ‘class llvm::SmallSetIterator<llvm::StringRef, 32, std::less<llvm::StringRef> >’ has no member named ‘VecIter’; did you mean ‘VecIterTy’?
   76 |       VecIter = std::move(Other.VecIter);
      |                           ~~~~~~^~~~~~~
      |                           VecIterTy
make[3]: *** [CMakeFiles/opencl-clang.dir/build.make:173: CMakeFiles/opencl-clang.dir/options_compile.cpp.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/opencl-clang-17-17.0.1/build'
make[2]: *** [CMakeFiles/Makefile2:305: CMakeFiles/opencl-clang.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/opencl-clang-17-17.0.1/build'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/opencl-clang-17-17.0.1/build'
dh_auto_build: error: cd build && make -j8 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:11: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the Pkg-opencl-devel mailing list