Subject: llvm-toolchain-17: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:35:00 +0000

Package: src:llvm-toolchain-17
Version: 1:17.0.6-21
Severity: important
Tags: sid forky
User: [email-masked]
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/llvm-toolchain-17_17.0.6-21_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

[...]
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:581:9: error: no type named ‘iterator’ in ‘using llvm::SmallVectorImpl<char>::SuperClass = class llvm::SmallVectorTemplateBase<char, true>’ {aka ‘class llvm::SmallVectorTemplateBase<char, true>’}
  581 |   using iterator = typename SuperClass::iterator;
      |         ^~~~~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:582:9: error: no type named ‘const_iterator’ in ‘using llvm::SmallVectorImpl<char>::SuperClass = class llvm::SmallVectorTemplateBase<char, true>’ {aka ‘class llvm::SmallVectorTemplateBase<char, true>’}
  582 |   using const_iterator = typename SuperClass::const_iterator;
      |         ^~~~~~~~~~~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:583:9: error: no type named ‘reference’ in ‘using llvm::SmallVectorImpl<char>::SuperClass = class llvm::SmallVectorTemplateBase<char, true>’ {aka ‘class llvm::SmallVectorTemplateBase<char, true>’}
  583 |   using reference = typename SuperClass::reference;
      |         ^~~~~~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:584:9: error: no type named ‘size_type’ in ‘using llvm::SmallVectorImpl<char>::SuperClass = class llvm::SmallVectorTemplateBase<char, true>’ {aka ‘class llvm::SmallVectorTemplateBase<char, true>’}
  584 |   using size_type = typename SuperClass::size_type;
      |         ^~~~~~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:621:21: error: ‘set_size’ has not been declared in ‘using llvm::SmallVectorImpl<char>::SuperClass = class llvm::SmallVectorTemplateBase<char, true>’
  621 |   using SuperClass::set_size;
      |                     ^~~~~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/Twine.h: In constructor ‘llvm::Twine::Twine(const llvm::SmallVectorImpl<char>&)’:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/Twine.h:309:34: error: ‘const class llvm::SmallVectorImpl<char>’ has no member named ‘data’
  309 |       LHS.ptrAndLength.ptr = Str.data();
      |                                  ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/Twine.h:310:37: error: ‘const class llvm::SmallVectorImpl<char>’ has no member named ‘size’
  310 |       LHS.ptrAndLength.length = Str.size();
      |                                     ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/Twine.h: In member function ‘llvm::StringRef llvm::Twine::toStringRef(llvm::SmallVectorImpl<char>&) const’:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/Twine.h:477:28: error: ‘class llvm::SmallVectorImpl<char>’ has no member named ‘data’
  477 |       return StringRef(Out.data(), Out.size());
      |                            ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/Twine.h:477:40: error: ‘class llvm::SmallVectorImpl<char>’ has no member named ‘size’
  477 |       return StringRef(Out.data(), Out.size());
      |                                        ^~~~
In file included from /build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/Error.h:25:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h: In member function ‘llvm::raw_ostream& llvm::raw_ostream::operator<<(const llvm::SmallVectorImpl<char>&)’:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h:257:22: error: ‘const class llvm::SmallVectorImpl<char>’ has no member named ‘data’
  257 |     return write(Str.data(), Str.size());
      |                      ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h:257:34: error: ‘const class llvm::SmallVectorImpl<char>’ has no member named ‘size’
  257 |     return write(Str.data(), Str.size());
      |                                  ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h: In member function ‘llvm::StringRef llvm::raw_svector_ostream::str() const’:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h:697:47: error: ‘class llvm::SmallVectorImpl<char>’ has no member named ‘data’
  697 |   StringRef str() const { return StringRef(OS.data(), OS.size()); }
      |                                               ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h:697:58: error: ‘class llvm::SmallVectorImpl<char>’ has no member named ‘size’
  697 |   StringRef str() const { return StringRef(OS.data(), OS.size()); }
      |                                                          ^~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h: In member function ‘virtual void llvm::raw_svector_ostream::reserveExtraSpace(uint64_t)’:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h:700:8: error: ‘class llvm::SmallVectorImpl<char>’ has no member named ‘reserve’
  700 |     OS.reserve(tell() + ExtraSize);
      |        ^~~~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h: In instantiation of ‘llvm::SmallVector<T, N>::~SmallVector() [with T = char; unsigned int N = 0]’:
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/Support/raw_ostream.h:726:71:   required from here
  726 |   buffer_ostream(raw_ostream &OS) : raw_svector_ostream(Buffer), OS(OS) {}
      |                                                                       ^
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:1206:31: error: ‘class llvm::SmallVector<char, 0>’ has no member named ‘begin’
 1206 |     this->destroy_range(this->begin(), this->end());
      |                         ~~~~~~^~~~~
/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include/llvm/ADT/SmallVector.h:1206:46: error: ‘class llvm::SmallVector<char, 0>’ has no member named ‘end’
 1206 |     this->destroy_range(this->begin(), this->end());
      |                                        ~~~~~~^~~
At global scope:
cc1plus: note: unrecognized command-line option ‘-Wno-unused-command-line-argument’ may have been intended to silence earlier diagnostics
[16/3124] /usr/bin/g++-15 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm/lib/Support -I/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/lib/Support -I/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm/include -I/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm=build-llvm -fdebug-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/= -no-canonical-prefixes -ffile-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm=build-llvm -ffile-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/= -no-canonical-prefixes -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/APInt.cpp.o -c /build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/lib/Support/APInt.cpp
[17/3124] /usr/bin/g++-15 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm/lib/Support -I/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/lib/Support -I/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm/include -I/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm=build-llvm -fdebug-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/= -no-canonical-prefixes -ffile-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm=build-llvm -ffile-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/= -no-canonical-prefixes -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/ARMAttributeParser.cpp.o -c /build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/lib/Support/ARMAttributeParser.cpp
[18/3124] /usr/bin/g++-15 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm/lib/Support -I/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/lib/Support -I/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm/include -I/build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/include -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wno-unused-command-line-argument -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -fno-lifetime-dse -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-nonnull -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -fdebug-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm=build-llvm -fdebug-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/= -no-canonical-prefixes -ffile-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/build-llvm=build-llvm -ffile-prefix-map=/build/reproducible-path/llvm-toolchain-17-17.0.6/= -no-canonical-prefixes -O3 -DNDEBUG -std=c++17  -fno-exceptions -funwind-tables -MD -MT lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o -MF lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o.d -o lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o -c /build/reproducible-path/llvm-toolchain-17-17.0.6/llvm/lib/Support/APFloat.cpp
ninja: build stopped: subcommand failed.

cat: build-llvm/tools/clang/stage2-bins/CMakeFiles/CMakeOutput.log: No such file or directory
make[1]: *** [debian/rules:843: stamps/debian-full-build] Error 1
make[1]: Leaving directory '/build/reproducible-path/llvm-toolchain-17-17.0.6'
make: *** [debian/rules:563: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2