[Pkg-opencl-devel] Bug#1097921: spirv-llvm-translator-18: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 17:54:40 GMT 2025


Package: src:spirv-llvm-translator-18
Version: 18.1.8-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/spirv-llvm-translator-18_18.1.8-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

[...]
  101 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
/usr/include/c++/15/initializer_list:101:5: note: template argument deduction/substitution failed:
/usr/lib/llvm-18/include/llvm/ADT/ADL.h:36:20: note:   ‘llvm::SmallVector<std::pair<unsigned int, llvm::MDNode*>, 2>’ is not derived from ‘std::initializer_list<_Tp>’
   36 |     -> decltype(end(std::forward<RangeT>(range))) {
      |                 ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/llvm-18/include/llvm/ADT/STLExtras.h: In instantiation of ‘void llvm::erase_if(Container&, UnaryPredicate) [with Container = SmallVector<std::pair<unsigned int, MDNode*>, 2>; UnaryPredicate = IRBuilderBase::AddOrRemoveMetadataToCopy(unsigned int, llvm::MDNode*)::<lambda(const std::pair<unsigned int, MDNode*>&)>]’:
/usr/lib/llvm-18/include/llvm/IR/IRBuilder.h:103:15:   required from here
  103 |       erase_if(MetadataToCopy, [Kind](const std::pair<unsigned, MDNode *> &KV) {
      |       ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  104 |         return KV.first == Kind;
      |         ~~~~~~~~~~~~~~~~~~~~~~~~
  105 |       });
      |       ~~       
/usr/lib/llvm-18/include/llvm/ADT/STLExtras.h:2026:30: error: ‘class llvm::SmallVector<std::pair<unsigned int, llvm::MDNode*>, 2>’ has no member named ‘end’
 2026 |   C.erase(remove_if(C, P), C.end());
      |                            ~~^~~
/usr/lib/llvm-18/include/llvm/ADT/SmallVector.h: In instantiation of ‘llvm::SmallVector<T, N>::~SmallVector() [with T = llvm::BasicBlock*; unsigned int N = 1]’:
/usr/lib/llvm-18/include/llvm/Support/GenericDomTree.h:279:3:   required from here
  279 |   DominatorTreeBase() = default;
      |   ^~~~~~~~~~~~~~~~~
/usr/lib/llvm-18/include/llvm/ADT/SmallVector.h:1215:31: error: ‘class llvm::SmallVector<llvm::BasicBlock*, 1>’ has no member named ‘begin’
 1215 |     this->destroy_range(this->begin(), this->end());
      |                         ~~~~~~^~~~~
/usr/lib/llvm-18/include/llvm/ADT/SmallVector.h:1215:46: error: ‘class llvm::SmallVector<llvm::BasicBlock*, 1>’ has no member named ‘end’
 1215 |     this->destroy_range(this->begin(), this->end());
      |                                        ~~~~~~^~~
/usr/lib/llvm-18/include/llvm/ADT/SmallVector.h: In instantiation of ‘llvm::SmallVector<T, N>::~SmallVector() [with T = char; unsigned int N = 16]’:
/usr/lib/llvm-18/include/llvm/ADT/SmallString.h:26:7:   required from ‘std::string OCLUtil::getFullPath(const T*) [with T = llvm::DILocation; std::string = std::__cxx11::basic_string<char>]’
   26 | class SmallString : public SmallVector<char, InternalLen> {
      |       ^~~~~~~~~~~
/build/reproducible-path/spirv-llvm-translator-18-18.1.8/lib/SPIRV/LLVMToSPIRVDbgTran.cpp:230:60:   required from here
  230 |         SPIRVString *DirAndFile = BM->getString(getFullPath(DL.get()));
      |                                                 ~~~~~~~~~~~^~~~~~~~~~
/usr/lib/llvm-18/include/llvm/ADT/SmallVector.h:1215:31: error: ‘class llvm::SmallVector<char, 16>’ has no member named ‘begin’
 1215 |     this->destroy_range(this->begin(), this->end());
      |                         ~~~~~~^~~~~
/usr/lib/llvm-18/include/llvm/ADT/SmallVector.h:1215:46: error: ‘class llvm::SmallVector<char, 16>’ has no member named ‘end’
 1215 |     this->destroy_range(this->begin(), this->end());
      |                                        ~~~~~~^~~
In file included from /build/reproducible-path/spirv-llvm-translator-18-18.1.8/lib/SPIRV/OCLUtil.h:43:
/usr/lib/llvm-18/include/llvm/ADT/SmallString.h: In instantiation of ‘llvm::StringRef llvm::SmallString<N>::str() const [with unsigned int InternalLen = 16]’:
/build/reproducible-path/spirv-llvm-translator-18-18.1.8/lib/SPIRV/OCLUtil.h:461:21:   required from ‘std::string OCLUtil::getFullPath(const T*) [with T = llvm::DILocation; std::string = std::__cxx11::basic_string<char>]’
  461 |   return DirName.str().str();
      |          ~~~~~~~~~~~^~
/build/reproducible-path/spirv-llvm-translator-18-18.1.8/lib/SPIRV/LLVMToSPIRVDbgTran.cpp:230:60:   required from here
  230 |         SPIRVString *DirAndFile = BM->getString(getFullPath(DL.get()));
      |                                                 ~~~~~~~~~~~^~~~~~~~~~
/usr/lib/llvm-18/include/llvm/ADT/SmallString.h:255:28: error: ‘const class llvm::SmallString<16>’ has no member named ‘data’
  255 |     return StringRef(this->data(), this->size());
      |                      ~~~~~~^~~~
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:208: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/VectorComputeUtil.cpp.o] Error 1
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:180: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/OCLTypeToSPIRV.cpp.o] Error 1
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:166: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/OCLToSPIRV.cpp.o] Error 1
/build/reproducible-path/spirv-llvm-translator-18-18.1.8/lib/SPIRV/SPIRVBuiltinHelper.cpp: At global scope:
/build/reproducible-path/spirv-llvm-translator-18-18.1.8/lib/SPIRV/SPIRVBuiltinHelper.cpp:147:13: warning: ‘void moveAttributes(llvm::LLVMContext&, llvm::AttributeList&, unsigned int, unsigned int, unsigned int)’ defined but not used [-Wunused-function]
  147 | static void moveAttributes(LLVMContext &Ctx, AttributeList &Attrs,
      |             ^~~~~~~~~~~~~~
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:222: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/SPIRVBuiltinHelper.cpp.o] Error 1
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:96: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/LLVMToSPIRVDbgTran.cpp.o] Error 1
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:194: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/OCLUtil.cpp.o] Error 1
make[3]: *** [lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/build.make:236: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/SPIRVLowerBitCastToNonStandardType.cpp.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/spirv-llvm-translator-18-18.1.8/build'
make[2]: *** [CMakeFiles/Makefile2:292: lib/SPIRV/CMakeFiles/LLVMSPIRVLib.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/spirv-llvm-translator-18-18.1.8/build'
make[1]: *** [Makefile:139: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/spirv-llvm-translator-18-18.1.8/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