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

Can not build Qt 6 with cmake and ClangCl (clang-cl) due to missing `wmemchr`

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Out of scope
    • P4: Low
    • None
    • 6.0.0
    • Build System: CMake
    • None
    • Windows

    Description

      I can not build Qt 6.0.0 with ClangCl (also called clang-cl) on MSVC due to a missing symbol. I'm using Microsoft VS2019 v16.8.3 (current latest) with the Visual-Studio-supplied ClangCl 10.0.0.

      The error I get is:

      FAILED: qtbase/bin/Qt6Cored.dll qtbase/lib/Qt6Cored.lib qtbase/src/corelib/Core.version 
      cmd.exe /C "cmd.exe /C "cd /D C:\data\tmp\qt\qtbase\src\corelib && C:\bda-ci\ActivePerl\bin\perl.exe C:/data/tmp/qt/qtbase/mkspecs/features/data/unix/findclasslist.pl < C:/data/tmp/qt/x64/qtbase/src/corelib/Core.version.in > C:/data/tmp/qt/x64/qtbase/src/corelib/Core.version && cd C:\data\tmp\qt\x64" && C:\data\user-artifacts-ClangCl-Haswell-7-x64-cl19.28.29335_clang10.0.0\Tools\bin\cmake.exe -E vs_link_dll --intdir=qtbase\src\corelib\CMakeFiles\Core.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100190~1.0\x64\mt.exe --manifests  -- C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\Llvm\x64\bin\lld-link.exe  @CMakeFiles\Core.rsp  /out:qtbase\bin\Qt6Cored.dll /implib:qtbase\lib\Qt6Cored.lib /pdb:qtbase\bin\Qt6Cored.pdb /dll /version:6.0 /machine:x64 /MACHINE:X64 /DEBUG:FULL /debug   -Wl,--version-script,C:/data/tmp/qt/x64/qtbase/src/corelib/Core.version -Wl,--no-undefined -DYNAMICBASE -NXCOMPAT  && cd ."
      LINK: command "C:\PROGRA~2\MICROS~1\2019\COMMUN~1\VC\Tools\Llvm\x64\bin\lld-link.exe @CMakeFiles\Core.rsp /out:qtbase\bin\Qt6Cored.dll /implib:qtbase\lib\Qt6Cored.lib /pdb:qtbase\bin\Qt6Cored.pdb /dll /version:6.0 /machine:x64 /MACHINE:X64 /DEBUG:FULL /debug -Wl,--version-script,C:/data/tmp/qt/x64/qtbase/src/corelib/Core.version -Wl,--no-undefined -DYNAMICBASE -NXCOMPAT /MANIFEST /MANIFESTFILE:qtbase\bin\Qt6Cored.dll.manifest" failed (exit code 1) with the following output:
      lld-link: error: undefined symbol: wmemchr
      >>> referenced by C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29333\include\xstring:258
      >>>               qtbase\src\corelib\CMakeFiles\Core.dir\global\qglobal.cpp.obj:(public: static wchar_t const * __cdecl std::_WChar_traits<wchar_t>::find(wchar_t const *, unsigned __int64, wchar_t const &))
      

      I think the issue is related to this upstream LLVM issue: https://bugs.llvm.org/show_bug.cgi?id=41226#c16
      But I'm not knowledgeable enough to apply this fix to Qt. Any help would be greatly appreciated.

      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:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes