Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-90852

Compile of Linguist fails with clang 11 on Linux

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P2: Important
    • None
    • 6.0.0, 6.1.0
    • None
    • Linux/X11

    Description

      I'm compiling Qt 6.0.0 with cmake on Ubuntu 18.04 using the official LLVM clang 11.0.1 compiler (from https://releases.llvm.org/download.html#11.0.1).

      When Linguist is enabled, the build fails with missing symbols (see below). Without Linguist enabled, the build works fine.

      Here an excerpt from the buildlog, attached the full log and the output from cmake.trace:

      : && /data/bdaci01/BioDataAnalysis/stable-artifacts-Ubuntu-Skylake-18.04-x86_64-clang11.1.0/Tools/lib/ccache/clang++ -stdlib=libc++ -g -Wl,--disable-new-dtags -stdlib=libc++ qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/lupdate_autogen/mocs_compilation.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/numerus.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/po.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/projectdescriptionreader.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/qm.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/qph.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/qrcreader.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/runqttool.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/simtexth.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/translator.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/translatormessage.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/ts.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/xliff.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/__/shared/xmlparser.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/java.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/main.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/merge.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/ui.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/qdeclarative.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp_clang.cpp.o qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/lupdatepreprocessoraction.cpp.o -o qtbase/bin/lupdate  -Wl,-rpath,"/data/bdaci01/BioDataAnalysis/stable-artifacts-Ubuntu-Skylake-18.04-x86_64-clang11.1.0/Debug/lib:/data/bdaci01/BioDataAnalysis/stable-artifacts-Ubuntu-Skylake-18.04-x86_64-clang11.1.0/Tools/lib:\$ORIGIN/../lib"  qtbase/lib/libQt6QmlDevTools.a  qtbase/lib/libQt6Core.so.6.0.0  /usr/lib/llvm-11/lib/libclang-11.so.1  /usr/lib/llvm-11/lib/libclang-cpp.so.11  /usr/lib/llvm-11/lib/libLLVM-11.so.1  -pthread && :
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o: In function `LupdatePrivate::isQObjectOrQDeclareTrFunctionMacroDeclared(clang::CXXRecordDecl*, QString&, clang::SourceManager const&)':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:90: undefined reference to `clang::SourceLocation::printToString(clang::SourceManager const&) const'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o: In function `LupdatePrivate::lookForContext(clang::CXXRecordDecl*, clang::SourceManager const&)':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:115: undefined reference to `clang::NamedDecl::getQualifiedNameAsString() const'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o: In function `LupdateVisitor::VisitCallExpr(clang::CallExpr*)':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:325: undefined reference to `clang::DeclarationNameInfo::getAsString() const'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o: In function `LupdateVisitor::VisitNamedDecl(clang::NamedDecl*)':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:756: undefined reference to `clang::NamedDecl::getQualifiedNameAsString() const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:757: undefined reference to `clang::SourceRange::printToString(clang::SourceManager const&) const'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o: In function `LupdateVisitor::findContextForTranslationStoresFromPP(clang::NamedDecl*)':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:786: undefined reference to `clang::SourceRange::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:787: undefined reference to `clang::SourceLocation::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:790: undefined reference to `clang::SourceRange::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:792: undefined reference to `clang::SourceLocation::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:794: undefined reference to `clang::NamedDecl::getQualifiedNameAsString() const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:809: undefined reference to `clang::NamedDecl::getQualifiedNameAsString() const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:811: undefined reference to `clang::SourceRange::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:812: undefined reference to `clang::SourceLocation::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:815: undefined reference to `clang::SourceRange::printToString(clang::SourceManager const&) const'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/clangtoolastreader.cpp:817: undefined reference to `clang::SourceLocation::printToString(clang::SourceManager const&) const'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/clangtoolastreader.cpp.o: In function `clang::NamedDecl::getNameAsString() const':
      /usr/lib/llvm-11/include/clang/AST/Decl.h:266: undefined reference to `clang::DeclarationName::getAsString() const'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp_clang.cpp.o: In function `ClangCppParser::loadCPP(Translator&, QList<QString> const&, ConversionData&, bool*)':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:197: undefined reference to `clang::tooling::CompilationDatabase::autoDetectFromDirectory(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:199: undefined reference to `clang::tooling::CompilationDatabase::autoDetectFromSource(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:203: undefined reference to `clang::tooling::CompilationDatabase::autoDetectFromDirectory(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:216: undefined reference to `clang::tooling::CompilationDatabase::loadFromDirectory(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp_clang.cpp.o: In function `operator()':
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:237: undefined reference to `clang::tooling::ClangTool::ClangTool(clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, llvm::IntrusiveRefCntPtr<clang::FileManager>)'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:238: undefined reference to `clang::tooling::ClangTool::appendArgumentsAdjuster(std::__1::function<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > (std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, llvm::StringRef)>)'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:254: undefined reference to `clang::tooling::ClangTool::ClangTool(clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::shared_ptr<clang::PCHContainerOperations>, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, llvm::IntrusiveRefCntPtr<clang::FileManager>)'
      /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/lupdate/cpp_clang.cpp:255: undefined reference to `clang::tooling::ClangTool::appendArgumentsAdjuster(std::__1::function<std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > (std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, llvm::StringRef)>)'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTV32LupdatePreprocessorActionFactory[_ZTV32LupdatePreprocessorActionFactory]+0x20): undefined reference to `clang::tooling::FrontendActionFactory::runInvocation(std::__1::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::__1::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*)'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/cpp_clang.cpp.o:(.data.rel.ro._ZTV24LupdateToolActionFactory[_ZTV24LupdateToolActionFactory]+0x20): undefined reference to `clang::tooling::FrontendActionFactory::runInvocation(std::__1::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::__1::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*)'
      qttools/src/linguist/lupdate/CMakeFiles/lupdate.dir/lupdatepreprocessoraction.cpp.o: In function `clang::Preprocessor::getSpelling(clang::Token const&, bool*) const':
      /usr/lib/llvm-11/include/clang/Lex/Preprocessor.h:1717: undefined reference to `clang::Lexer::getSpelling(clang::Token const&, clang::SourceManager const&, clang::LangOptions const&, bool*)'
      clang: error: linker command failed with exit code 1 (use -v to see invocation)
      [2293/3031] /data/bdaci01/BioDataAnalysis/stable-artifacts-Ubuntu-Skylake-18.04-x86_64-clang11.1.0/Tools/lib/ccache/clang++ -DQFORMINTERNAL_NAMESPACE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_KEYWORDS -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DQT_NO_EXCEPTIONS -DQT_OPENGLWIDGETS_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_UITOOLS_LIB -DQT_WIDGETS_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -Iqttools/src/linguist/linguist/linguist_autogen/include -I/home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/linguist -Iqttools/src/linguist/linguist -I/home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/linguist/../shared -Iqtbase/include -Iqtbase/include/QtCore -I/home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qtbase/mkspecs/linux-clang -Iqtbase/src/corelib -Iqtbase/include/QtCore/6.0.0 -Iqtbase/include/QtCore/6.0.0/QtCore -Iqtbase/include/QtGui -Iqtbase/src/gui -Iqtbase/include/QtGui/6.0.0 -Iqtbase/include/QtGui/6.0.0/QtGui -Iqtbase/include/QtPrintSupport -Iqtbase/include/QtWidgets -Iqttools/src/designer/src/uitools -Iqtbase/include/QtUiTools/6.0.0 -Iqtbase/include/QtUiTools/6.0.0/QtUiTools -Iqtbase/include/QtUiTools -Iqtbase/include/QtOpenGLWidgets -Iqtbase/include/QtOpenGL -stdlib=libc++ -g -fPIE -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fno-exceptions -fPIC -pthread -std=c++17 -MD -MT qttools/src/linguist/linguist/CMakeFiles/linguist.dir/phraseview.cpp.o -MF qttools/src/linguist/linguist/CMakeFiles/linguist.dir/phraseview.cpp.o.d -o qttools/src/linguist/linguist/CMakeFiles/linguist.dir/phraseview.cpp.o -c /home/bdaci01/builds/6b652442/0/BioDataAnalysis/qt/qttools/src/linguist/linguist/phraseview.cpp
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtbuildsystem Qt Build System Team
            emmenlau Mario Emmenlauer
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes