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

ARM64 build fails due to preprocessor mishap

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3: Somewhat important
    • Resolution: Done
    • Affects Version/s: 5.13.0
    • Fix Version/s: None
    • Component/s: GUI: OpenGL
    • Labels:
      None
    • Environment:
      Windows 10 1903 x64 x-compiling for ARM64
    • Platform/s:
      Windows

      Description

      Qt5OpenGL fails to cross compile for ARM64.

      The MemoryBarrier() macro is getting in the way of a member function that is also called MemoryBarrier. 

      See attached  configure switches

      cl -c -FIkernel\qt_gui_pch.h -Yukernel\qt_gui_pch.h -Fp.pch\release\Qt5Gui_pch.pch -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -Zi -MD -std:c++17 -utf-8 /wd4530 /wd4577 -MP -GL -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 /Fd.obj\release\Qt5Gui.vc.pdb -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DWIN64 -DQT_NO_USING_NAMESPACE -DQT_NO_FOREACH -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -D_CRT_SECURE_NO_WARNINGS -D_USE_MATH_DEFINES -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_CORE_LIB -DQT_NO_EXCEPTIONS -DNDEBUG -D_WINDLL -I. -I..\3rdparty\zlib\src -I..\..\include -I..\..\include\QtGui -I..\..\include\QtANGLE -I..\..\include\QtGui\5.13.0 -I..\..\include\QtGui\5.13.0\QtGui -Itmp -I.tracegen\release -I..\..\include\QtCore\5.13.0 -I..\..\include\QtCore\5.13.0\QtCore -I..\..\include\QtCore -I.moc\release -IC:\VulkanSDK\1.1.114.0\include -I..\3rdparty\libpng -I..\3rdparty\harfbuzz-ng\include -ID:\Dev\QtArm64\OpenSSL\include -I..\..\mkspecs\win32-arm64-msvc2017 -Fo.obj\release\ @C:\Users\Hernan\AppData\Local\Temp\qopenglfunctions_4_1_core.obj.15160.28328.jom
      qopenglfunctions_4_1_core.cpp
      qopenglfunctions_2_1.cpp
      qopenglfunctions_3_3_core.cpp
      qopenglfunctions_4_0_core.cpp
      qopenglfunctions_4_2_core.cpp
      qopenglfunctions_3_0.cpp
      D:\Dev\QtArm64\qtbase\src\gui\opengl\qopenglfunctions_4_2_core.h(2983): warning C4002: too many arguments for function-like macro invocation 'MemoryBarrier' (compiling source file opengl\qopenglfunctions_4_2_core.cpp)
      D:\Dev\QtArm64\qtbase\src\gui\opengl\qopenglfunctions_4_2_core.h(2983): error C2039: '__dmb': is not a member of 'QOpenGLFunctions_4_2_CoreBackend::Functions' (compiling source file opengl\qopenglfunctions_4_2_core.cpp)
      D:\Dev\QtArm64\qtbase\include\QtGui\../../src/gui/opengl/qopenglversionfunctions.h(1029): note: see declaration of 'QOpenGLFunctions_4_2_CoreBackend::Functions' (compiling source file opengl\qopenglfunctions_4_2_core.cpp)
      jom: D:\Dev\QtArm64\qtbase\src\gui\Makefile.Release [.obj\release\qopenglfunctions_4_1_core.obj] Error 2
      D:\Dev\QtArm64\qtbase\src\gui\opengl\qopenglfunctions_4_4_compatibility.h(3569): warning C4002: too many arguments for function-like macro invocation 'MemoryBarrier' (compiling source file opengl\qopenglfunctions_4_4_compatibility.cpp)jom: D:\Dev\QtArm64\qtbase\src\gui\Makefile.Debug [.obj\debug\qopenglfunctions_4_1_compatibility.obj] Error 2D:\Dev\QtArm64\qtbase\src\gui\opengl\qopenglfunctions_4_4_compatibility.h(3569): error C2039: '__dmb': is not a member of 'QOpenGLFunctions_4_2_CoreBackend::Functions' (compiling source file opengl\qopenglfunctions_4_4_compatibility.cpp)
      D:\Dev\QtArm64\qtbase\include\QtGui\../../src/gui/opengl/qopenglversionfunctions.h(1029): note: see declaration of 'QOpenGLFunctions_4_2_CoreBackend::Functions' (compiling source file opengl\qopenglfunctions_4_4_compatibility.cpp)
      jom: D:\Dev\QtArm64\qtbase\src\gui\Makefile.Debug [.obj\debug\qopenglfunctions_4_5_compatibility.obj] Error 2
      jom: D:\Dev\QtArm64\qtbase\src\gui\Makefile.Debug [.obj\debug\qopenglfunctions_4_3_compatibility.obj] Error 2
      jom: D:\Dev\QtArm64\qtbase\src\gui\Makefile [debug-all] Error 2
      jom: D:\Dev\QtArm64\qtbase\src\gui\Makefile [release-all] Error 2
      jom: D:\Dev\QtArm64\qtbase\src\Makefile [sub-gui-make_first] Error 2
      jom: D:\Dev\QtArm64\qtbase\Makefile [sub-src-make_first] Error 2
      jom: D:\Dev\QtArm64\Makefile [module-qtbase-make_first] Error 2

       

        Attachments

        1. config.log
          69 kB
        2. config.opt
          0.7 kB
        3. config.summary
          8 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            lagocs Laszlo Agocs
            Reporter:
            hernan.c.martinez Hernan da Cunha Martinez
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes