Failed to build Qt-6.6.0 with Clang-18.0.0

Hi, I’m using Ubuntu 22.04.3 + self-built clang-18.0.0 .

➜  ~ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.3 LTS
Release:	22.04
Codename:	jammy
➜  ~ clang --version
clang version 18.0.0 (https://github.com/llvm/llvm-project.git eb7698254ab668e53133062fbc53b9635de95c4d)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin

But got the following error messages:

[ 67%] Linking CXX executable ../../../../qtbase/bin/lupdate
cd /opt/qt/qt-everywhere-src-6.6.0/build/qttools/src/linguist/lupdate && /usr/bin/cmake -E cmake_link_script CMakeFiles/lupdate.dir/link.txt --verbose=1
/usr/bin/c++ -DNDEBUG -O2 -Wl,--enable-new-dtags -no-pie CMakeFiles/lupdate.dir/lupdate_autogen/mocs_compilation.cpp.o CMakeFiles/lupdate.dir/__/shared/numerus.cpp.o CMakeFiles/lupdate.dir/__/shared/po.cpp.o CMakeFiles/lupdate.dir/__/shared/projectdescriptionreader.cpp.o CMakeFiles/lupdate.dir/__/shared/qm.cpp.o CMakeFiles/lupdate.dir/__/shared/qph.cpp.o CMakeFiles/lupdate.dir/__/shared/qrcreader.cpp.o CMakeFiles/lupdate.dir/__/shared/runqttool.cpp.o CMakeFiles/lupdate.dir/__/shared/simtexth.cpp.o CMakeFiles/lupdate.dir/__/shared/translator.cpp.o CMakeFiles/lupdate.dir/__/shared/translatormessage.cpp.o CMakeFiles/lupdate.dir/__/shared/ts.cpp.o CMakeFiles/lupdate.dir/__/shared/xliff.cpp.o CMakeFiles/lupdate.dir/__/shared/xmlparser.cpp.o CMakeFiles/lupdate.dir/cpp.cpp.o CMakeFiles/lupdate.dir/java.cpp.o CMakeFiles/lupdate.dir/python.cpp.o CMakeFiles/lupdate.dir/main.cpp.o CMakeFiles/lupdate.dir/merge.cpp.o CMakeFiles/lupdate.dir/ui.cpp.o CMakeFiles/lupdate.dir/qdeclarative.cpp.o CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o CMakeFiles/lupdate.dir/cpp_clang.cpp.o CMakeFiles/lupdate.dir/filesignificancecheck.cpp.o CMakeFiles/lupdate.dir/lupdatepreprocessoraction.cpp.o -o ../../../../qtbase/bin/lupdate  -Wl,-rpath,/opt/qt/qt-everywhere-src-6.6.0/build/qtbase/lib: ../../../../qtbase/lib/libQt6Qml.so.6.6.0 ../../../../qtbase/lib/libQt6Network.so.6.6.0 ../../../../qtbase/lib/libQt6Core.so.6.6.0 /usr/lib/libclang.so.18.0.0git /usr/lib/libclangHandleCXX.a /usr/lib/libclangCodeGen.a /usr/lib/libLLVMCoverage.a /usr/lib/libLLVMFrontendDriver.a /usr/lib/libLLVMLTO.a /usr/lib/libLLVMExtensions.a /usr/lib/libPolly.a /usr/lib/libPollyISL.a /usr/lib/libclangTooling.a /usr/lib/libclangFrontend.a /usr/lib/libclangParse.a /usr/lib/libclangSerialization.a /usr/lib/libclangSema.a /usr/lib/libclangAnalysis.a /usr/lib/libLLVMFrontendHLSL.a /usr/lib/libclangEdit.a /usr/lib/libclangSupport.a /usr/lib/libclangDriver.a /usr/lib/libLLVMWindowsDriver.a /usr/lib/libLLVMOption.a /usr/lib/libclangASTMatchers.a /usr/lib/libclangAST.a /usr/lib/libclangFormat.a /usr/lib/libclangToolingInclusions.a /usr/lib/libclangToolingCore.a /usr/lib/libclangRewrite.a /usr/lib/libclangLex.a /usr/lib/libclangBasic.a /usr/lib/libLLVMAArch64CodeGen.a /usr/lib/libLLVMAArch64AsmParser.a /usr/lib/libLLVMAArch64Disassembler.a /usr/lib/libLLVMAArch64Desc.a /usr/lib/libLLVMAArch64Info.a /usr/lib/libLLVMAArch64Utils.a /usr/lib/libLLVMAMDGPUCodeGen.a /usr/lib/libLLVMPasses.a /usr/lib/libLLVMCoroutines.a /usr/lib/libLLVMHipStdPar.a /usr/lib/libLLVMIRPrinter.a /usr/lib/libLLVMMIRParser.a /usr/lib/libLLVMAMDGPUAsmParser.a /usr/lib/libLLVMAMDGPUDisassembler.a /usr/lib/libLLVMAMDGPUDesc.a /usr/lib/libLLVMAMDGPUInfo.a /usr/lib/libLLVMAMDGPUUtils.a /usr/lib/libLLVMARMCodeGen.a /usr/lib/libLLVMARMAsmParser.a /usr/lib/libLLVMARMDisassembler.a /usr/lib/libLLVMARMDesc.a /usr/lib/libLLVMARMInfo.a /usr/lib/libLLVMARMUtils.a /usr/lib/libLLVMAVRCodeGen.a /usr/lib/libLLVMAVRAsmParser.a /usr/lib/libLLVMAVRDesc.a /usr/lib/libLLVMAVRDisassembler.a /usr/lib/libLLVMAVRInfo.a /usr/lib/libLLVMBPFCodeGen.a /usr/lib/libLLVMBPFAsmParser.a /usr/lib/libLLVMBPFDesc.a /usr/lib/libLLVMBPFDisassembler.a /usr/lib/libLLVMBPFInfo.a /usr/lib/libLLVMHexagonCodeGen.a /usr/lib/libLLVMHexagonAsmParser.a /usr/lib/libLLVMHexagonDisassembler.a /usr/lib/libLLVMHexagonDesc.a /usr/lib/libLLVMHexagonInfo.a /usr/lib/libLLVMLanaiCodeGen.a /usr/lib/libLLVMLanaiAsmParser.a /usr/lib/libLLVMLanaiDisassembler.a /usr/lib/libLLVMLanaiDesc.a /usr/lib/libLLVMLanaiInfo.a /usr/lib/libLLVMLoongArchCodeGen.a /usr/lib/libLLVMLoongArchAsmParser.a /usr/lib/libLLVMLoongArchDisassembler.a /usr/lib/libLLVMLoongArchDesc.a /usr/lib/libLLVMLoongArchInfo.a /usr/lib/libLLVMMipsCodeGen.a /usr/lib/libLLVMMipsAsmParser.a /usr/lib/libLLVMMipsDesc.a /usr/lib/libLLVMMipsDisassembler.a /usr/lib/libLLVMMipsInfo.a /usr/lib/libLLVMMSP430CodeGen.a /usr/lib/libLLVMMSP430AsmParser.a /usr/lib/libLLVMMSP430Desc.a /usr/lib/libLLVMMSP430Disassembler.a /usr/lib/libLLVMMSP430Info.a /usr/lib/libLLVMNVPTXCodeGen.a /usr/lib/libLLVMNVPTXDesc.a /usr/lib/libLLVMNVPTXInfo.a /usr/lib/libLLVMPowerPCCodeGen.a /usr/lib/libLLVMPowerPCAsmParser.a /usr/lib/libLLVMPowerPCDesc.a /usr/lib/libLLVMPowerPCDisassembler.a /usr/lib/libLLVMPowerPCInfo.a /usr/lib/libLLVMRISCVCodeGen.a /usr/lib/libLLVMipo.a /usr/lib/libLLVMFrontendOpenMP.a /usr/lib/libLLVMFrontendOffloading.a /usr/lib/libLLVMLinker.a /usr/lib/libLLVMVectorize.a /usr/lib/libLLVMRISCVAsmParser.a /usr/lib/libLLVMRISCVDisassembler.a /usr/lib/libLLVMRISCVDesc.a /usr/lib/libLLVMRISCVInfo.a /usr/lib/libLLVMSparcCodeGen.a /usr/lib/libLLVMSparcAsmParser.a /usr/lib/libLLVMSparcDesc.a /usr/lib/libLLVMSparcDisassembler.a /usr/lib/libLLVMSparcInfo.a /usr/lib/libLLVMSystemZCodeGen.a /usr/lib/libLLVMSystemZAsmParser.a /usr/lib/libLLVMSystemZDisassembler.a /usr/lib/libLLVMSystemZDesc.a /usr/lib/libLLVMSystemZInfo.a /usr/lib/libLLVMVECodeGen.a /usr/lib/libLLVMVEAsmParser.a /usr/lib/libLLVMVEDesc.a /usr/lib/libLLVMVEDisassembler.a /usr/lib/libLLVMVEInfo.a /usr/lib/libLLVMWebAssemblyCodeGen.a /usr/lib/libLLVMWebAssemblyAsmParser.a /usr/lib/libLLVMWebAssemblyDisassembler.a /usr/lib/libLLVMWebAssemblyUtils.a /usr/lib/libLLVMWebAssemblyDesc.a /usr/lib/libLLVMWebAssemblyInfo.a /usr/lib/libLLVMX86CodeGen.a /usr/lib/libLLVMInstrumentation.a /usr/lib/libLLVMCFGuard.a /usr/lib/libLLVMGlobalISel.a /usr/lib/libLLVMX86AsmParser.a /usr/lib/libLLVMX86Desc.a /usr/lib/libLLVMX86Disassembler.a /usr/lib/libLLVMX86Info.a /usr/lib/libLLVMXCoreCodeGen.a /usr/lib/libLLVMAsmPrinter.a /usr/lib/libLLVMSelectionDAG.a /usr/lib/libLLVMCodeGen.a /usr/lib/libLLVMBitWriter.a /usr/lib/libLLVMObjCARCOpts.a /usr/lib/libLLVMScalarOpts.a /usr/lib/libLLVMAggressiveInstCombine.a /usr/lib/libLLVMInstCombine.a /usr/lib/libLLVMTarget.a /usr/lib/libLLVMTransformUtils.a /usr/lib/libLLVMAnalysis.a /usr/lib/libLLVMProfileData.a /usr/lib/libLLVMSymbolize.a /usr/lib/libLLVMDebugInfoPDB.a /usr/lib/libLLVMDebugInfoMSF.a /usr/lib/libLLVMDebugInfoBTF.a /usr/lib/libLLVMDebugInfoDWARF.a /usr/lib/libLLVMObject.a /usr/lib/libLLVMIRReader.a /usr/lib/libLLVMBitReader.a /usr/lib/libLLVMAsmParser.a /usr/lib/libLLVMMCParser.a /usr/lib/libLLVMTextAPI.a /usr/lib/libLLVMCore.a /usr/lib/libLLVMRemarks.a /usr/lib/libLLVMBitstreamReader.a /usr/lib/libLLVMXCoreDesc.a /usr/lib/libLLVMXCoreDisassembler.a /usr/lib/libLLVMCodeGenTypes.a /usr/lib/libLLVMMCDisassembler.a /usr/lib/libLLVMXCoreInfo.a /usr/lib/libLLVMMC.a /usr/lib/libLLVMBinaryFormat.a /usr/lib/libLLVMTargetParser.a /usr/lib/libLLVMDebugInfoCodeView.a /usr/lib/libLLVMSupport.a /usr/lib/libLLVMDemangle.a -lrt -ldl -lm /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libzstd.so /usr/lib/x86_64-linux-gnu/libtinfo.so 
/usr/bin/ld: CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTI18LupdateASTConsumer[_ZTI18LupdateASTConsumer]+0x10): undefined reference to `typeinfo for clang::ASTConsumer'
/usr/bin/ld: CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTI21LupdateFrontendAction[_ZTI21LupdateFrontendAction]+0x10): undefined reference to `typeinfo for clang::ASTFrontendAction'
/usr/bin/ld: CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTI24LupdateToolActionFactory[_ZTI24LupdateToolActionFactory]+0x10): undefined reference to `typeinfo for clang::tooling::FrontendActionFactory'
/usr/bin/ld: CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTI25LupdatePreprocessorAction[_ZTI25LupdatePreprocessorAction]+0x10): undefined reference to `typeinfo for clang::PreprocessOnlyAction'
/usr/bin/ld: CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTI32LupdatePreprocessorActionFactory[_ZTI32LupdatePreprocessorActionFactory]+0x10): undefined reference to `typeinfo for clang::tooling::FrontendActionFactory'
/usr/bin/ld: CMakeFiles/lupdate.dir/lupdatepreprocessoraction.cpp.o:(.data.rel.ro._ZTI18LupdatePPCallbacks[_ZTI18LupdatePPCallbacks]+0x10): undefined reference to `typeinfo for clang::PPCallbacks'
collect2: error: ld returned 1 exit status
make[2]: *** [qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/build.make:657: qtbase/bin/lupdate] Error 1
make[2]: Leaving directory '/opt/qt/qt-everywhere-src-6.6.0/build'
make[1]: *** [CMakeFiles/Makefile2:82931: qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/all] Error 2
make[1]: Leaving directory '/opt/qt/qt-everywhere-src-6.6.0/build'
make: *** [Makefile:149: all] Error 2

Can anybody give me a hand please?

Thank you …

This almost always indicates running out of memory during linking. The usual solutions include: (a) use lld or gold instead of ld; (b) do fewer link jobs in parallel. You’re not building LLVM itself here, so the things we did to our own build scripting won’t help you.