Skip to content

Building LLVM 20.1.4 fails with C++20 #139072

Open
@fawltylanguage

Description

@fawltylanguage
FAILED: lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/MachO_arm64.cpp.o
/scratch/devel/bin/clang++ -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/scratch/build/libs/llvm/build/lib/ExecutionEngine/JITLink -I/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/lib/ExecutionEngine/JITLink -I/scratch/build/libs/llvm/build/include -I/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include -isystem /scratch/devel/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++20  -fno-exceptions -funwind-tables -fno-rtti -MD -MT lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/MachO_arm64.cpp.o -MF lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/MachO_arm64.cpp.o.d -o lib/ExecutionEngine/JITLink/CMakeFiles/LLVMJITLink.dir/MachO_arm64.cpp.o -c /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:13:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h:16:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:18:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/FunctionExtras.h:36:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/PointerUnion.h:20:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/STLExtras.h:24:
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/iterator.h:272:9: error: static assertion failed due to requirement 'iterator_facade_base<llvm::mapped_iterator<llvm::StringMapIterator<llvm::jitlink::Symbol *>, llvm::jitlink::LinkGraph::GetExternalSymbolMapEntryValue, llvm::jitlink::Symbol *>, std::forward_iterator_tag, llvm::jitlink::Symbol *, long, llvm::jitlink::Symbol **, llvm::jitlink::Symbol *>::IsRandomAccess': The '-' operator is only defined for random access iterators.
  272 |         BaseT::IsRandomAccess,
      |         ^~~~~~~~~~~~~~~~~~~~~
/scratch/devel/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1/../../../../include/c++/15.1.1/bits/ranges_base.h:976:23: note: in instantiation of member function 'llvm::iterator_adaptor_base<llvm::mapped_iterator<llvm::StringMapIterator<llvm::jitlink::Symbol *>, llvm::jitlink::LinkGraph::GetExternalSymbolMapEntryValue>, llvm::StringMapIterator<llvm::jitlink::Symbol *>, std::forward_iterator_tag, llvm::jitlink::Symbol *, long, llvm::jitlink::Symbol **, llvm::jitlink::Symbol *>::operator-' requested here
  976 |       { return __last - static_cast<const decay_t<_It>&>(__first); }
      |                       ^
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp:13:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ExecutionEngine/JITLink/MachO_arm64.h:16:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h:18:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/FunctionExtras.h:36:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/PointerUnion.h:20:
In file included from /scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/STLExtras.h:24:
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/iterator.h:274:14: error: invalid operands to binary expression ('const llvm::StringMapIterator<llvm::jitlink::Symbol *>' and 'const llvm::StringMapIterator<llvm::jitlink::Symbol *>')
  274 |     return I - RHS.I;
      |            ~ ^ ~~~~~
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/APInt.h:2182:14: note: candidate function not viable: no known conversion from 'const llvm::StringMapIterator<llvm::jitlink::Symbol *>' to 'APInt' for 1st argument
 2182 | inline APInt operator-(APInt a, const APInt &b) {
      |              ^         ~~~~~~~
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/APInt.h:2187:14: note: candidate function not viable: no known conversion from 'const llvm::StringMapIterator<llvm::jitlink::Symbol *>' to 'const APInt' for 1st argument
 2187 | inline APInt operator-(const APInt &a, APInt &&b) {
      |              ^         ~~~~~~~~~~~~~~
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/APInt.h:2193:14: note: candidate function not viable: no known conversion from 'const llvm::StringMapIterator<llvm::jitlink::Symbol *>' to 'APInt' for 1st argument
 2193 | inline APInt operator-(APInt a, uint64_t RHS) {
      |              ^         ~~~~~~~
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/APInt.h:2198:14: note: candidate function not viable: no known conversion from 'const llvm::StringMapIterator<llvm::jitlink::Symbol *>' to 'uint64_t' (aka 'unsigned long') for 1st argument
 2198 | inline APInt operator-(uint64_t LHS, APInt b) {
      |              ^         ~~~~~~~~~~~~
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/iterator.h:145:12: note: candidate function not viable: no known conversion from 'const llvm::StringMapIterator<llvm::jitlink::Symbol *>' to 'long' for 1st argument
  145 |   DerivedT operator-(DifferenceTypeT n) const {
      |            ^         ~~~~~~~~~~~~~~~~~
/scratch/build/libs/llvm/llvm-project-20.1.4.src/llvm/include/llvm/ADT/APInt.h:2157:14: note: candidate function not viable: requires single argument 'v', but 2 arguments were provided
 2157 | inline APInt operator-(APInt v) {
      |              ^         ~~~~~~~


clang++ -v:
clang version 20.1.0
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /scratch/devel/bin
Found candidate GCC installation: /scratch/devel/bin/../lib/gcc/x86_64-pc-linux-gnu/15.0.1
Found candidate GCC installation: /scratch/devel/bin/../lib/gcc/x86_64-pc-linux-gnu/15.1.1
Found candidate GCC installation: /scratch/devel/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.0.1
Found candidate GCC installation: /scratch/devel/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1
Selected GCC installation: /scratch/devel/bin/../lib64/gcc/x86_64-pc-linux-gnu/15.1.1
Candidate multilib: .;@m64
Selected multilib: .;@m64

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions