[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