Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Qt5.15.2 configure for arm Debian 10



  • Hi,

    i am trying to configure Qt for my STM32MP1 board running debian 10.
    Here is what i did:

    Made new device file in /qtbase/mkspecs/devices/stm32mp/qmake.conf and add this:

    include(../common/linux_device_pre.conf)
    include(../common/linux_device_post.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
    QMAKE_CXX               = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
    QMAKE_LINK              = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
    QMAKE_LINK_SHLIB        = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
    
    # modifications to linux.conf
    QMAKE_AR                = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
    QMAKE_OBJCOPY           = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
    QMAKE_NM                = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
    QMAKE_STRIP             = /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip
    
    #load(device_config)
    
    QT_QPA_DEFAULT_PLATFORM = eglfs
    
    QMAKE_CFLAGS           += $${COMPILER_FLAGS}
    QMAKE_CXXFLAGS         += $${COMPILER_FLAGS}
    QMAKE_CXXFLAGS_RELEASE += -O3
    
    INCLUDEPATH += /home/debian/opt/gcc-arm-8.3-2019.03-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/
    
    QMAKE_LIBS             += -lrt -lpthread -ldl
    
    # Extra stuff (OpenGL, DirectFB, ...)
    QMAKE_INCDIR_EGL        = /home/debian/work/ROOTFS_STM_QT/usr/include
    QMAKE_LIBDIR_EGL        = /home/debian/work/ROOTFS_STM_QT/usr/lib/arm-linux-gnueabihf
    QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
    QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
    QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
    QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}
    
    #QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
    QMAKE_LIBS_EGL          = -lEGL
    QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
    QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}
    
    DISTRO_OPTS += hard-float
    
    # No need for any special EGL device integration.
    # Prioritize the default, compiled-in integration over any plugins.
    EGLFS_DEVICE_INTEGRATION = none
    
    load(qt_config)
    

    Than i did this:

    ./configure -v -opengl es2 -device stm32mp -device-option CROSS_COMPILE=~/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /home/debian/work/ROOTFS_STM_QT -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -make tools -prefix /usr/local/qt5stm32mp -hostprefix /usr/local/qt5stm32mp
    

    And i got this as output:

    Configure summary:
    
    Building on: linux-g++ (x86_64, CPU features: mmx sse sse2)
    Building for: devices/stm32mp1 (x86_64, CPU features: mmx sse sse2)
    Target compiler: gcc 8.3.0
    Configuration: cross_compile sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples enable_new_dtags f16c largefile precompile_header rdrnd rdseed shani x86SimdAlways shared shared rpath release c++11 c++14 c++17 c++1z concurrent dbus no-pkg-config reduce_exports reduce_relocations release_tools stl
    Build options:
      Mode ................................... release; optimized tools
      Optimize release build for size ........ no
      Building shared libraries .............. yes
      Using C standard ....................... C11
      Using C++ standard ..................... C++17
      Using ccache ........................... no
      Using new DTAGS ........................ yes
      Relocatable ............................ yes
      Using precompiled headers .............. yes
      Using LTCG ............................. no
      Target compiler supports:
        SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
        AVX .................................. AVX AVX2
        AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
        Other x86 ............................ AES F16C RDRAND SHA
        Intrinsics without -mXXX option ...... yes
      Build parts ............................ libs tools
    Qt modules and options:
      Qt Concurrent .......................... yes
      Qt D-Bus ............................... yes
      Qt D-Bus directly linked to libdbus .... no
      Qt Gui ................................. yes
      Qt Network ............................. yes
      Qt Sql ................................. yes
      Qt Testlib ............................. yes
      Qt Widgets ............................. yes
      Qt Xml ................................. yes
    Support enabled for:
      Using pkg-config ....................... no
      udev ................................... no
      Using system zlib ...................... no
      Zstandard support ...................... yes
    Qt Core:
      DoubleConversion ....................... yes
        Using system DoubleConversion ........ no
      GLib ................................... no
      iconv .................................. yes
      ICU .................................... no
      Built-in copy of the MIME database ..... yes
      Tracing backend ........................ <none>
      Logging backends:
        journald ............................. no
        syslog ............................... no
        slog2 ................................ no
      PCRE2 .................................. yes
        Using system PCRE2 ................... no
    Qt Network:
      getifaddrs() ........................... yes
      IPv6 ifname ............................ yes
      libproxy ............................... no
      Linux AF_NETLINK ....................... yes
      OpenSSL ................................ no
        Qt directly linked to OpenSSL ........ no
      OpenSSL 1.1 ............................ no
      DTLS ................................... no
      OCSP-stapling .......................... no
      SCTP ................................... no
      Use system proxies ..................... yes
      GSSAPI ................................. yes
    Qt Gui:
      Accessibility .......................... yes
      FreeType ............................... yes
        Using system FreeType ................ no
      HarfBuzz ............................... yes
        Using system HarfBuzz ................ no
      Fontconfig ............................. no
      Image formats:
        GIF .................................. yes
        ICO .................................. yes
        JPEG ................................. yes
          Using system libjpeg ............... no
        PNG .................................. yes
          Using system libpng ................ no
      Text formats:
        HtmlParser ........................... yes
        CssParser ............................ yes
        OdfWriter ............................ yes
        MarkdownReader ....................... yes
          Using system libmd4c ............... no
        MarkdownWriter ....................... yes
      EGL .................................... yes
      OpenVG ................................. no
      OpenGL:
        Desktop OpenGL ....................... no
        OpenGL ES 2.0 ........................ yes
        OpenGL ES 3.0 ........................ yes
        OpenGL ES 3.1 ........................ yes
        OpenGL ES 3.2 ........................ yes
      Vulkan ................................. no
      Session Management ..................... yes
    Features used by QPA backends:
      evdev .................................. yes
      libinput ............................... no
      INTEGRITY HID .......................... no
      mtdev .................................. no
      tslib .................................. no
      xkbcommon .............................. no
      X11 specific:
        XLib ................................. yes
        XCB Xlib ............................. yes
        EGL on X11 ........................... yes
        xkbcommon-x11 ........................ no
    QPA backends:
      DirectFB ............................... no
      EGLFS .................................. yes
      EGLFS details:
        EGLFS OpenWFD ........................ no
        EGLFS i.Mx6 .......................... yes
        EGLFS i.Mx6 Wayland .................. no
        EGLFS RCAR ........................... no
        EGLFS EGLDevice ...................... yes
        EGLFS GBM ............................ no
        EGLFS VSP2 ........................... no
        EGLFS Mali ........................... yes
        EGLFS Raspberry Pi ................... no
        EGLFS X11 ............................ yes
      LinuxFB ................................ yes
      VNC .................................... yes
    Qt Sql:
      SQL item models ........................ yes
    Qt Widgets:
      GTK+ ................................... no
      Styles ................................. Fusion Windows
    Qt PrintSupport:
      CUPS ................................... no
    Qt Sql Drivers:
      DB2 (IBM) .............................. no
      InterBase .............................. no
      MySql .................................. no
      OCI (Oracle) ........................... no
      ODBC ................................... no
      PostgreSQL ............................. no
      SQLite2 ................................ no
      SQLite ................................. yes
        Using system provided SQLite ......... no
      TDS (Sybase) ........................... yes
    Qt Testlib:
      Tester for item models ................. yes
    Serial Port:
      ntddmodm ............................... yes
    Qt SerialBus:
      Socket CAN ............................. yes
      Socket CAN FD .......................... yes
      SerialPort Support ..................... yes
    Further Image Formats:
      JasPer ................................. no
      MNG .................................... no
      TIFF ................................... yes
        Using system libtiff ................. no
      WEBP ................................... yes
        Using system libwebp ................. no
    Qt QML:
      QML network support .................... yes
      QML debugging and profiling support .... yes
      QML just-in-time compiler .............. yes
      QML sequence object .................... yes
      QML XML http request ................... yes
      QML Locale ............................. yes
    Qt QML Models:
      QML list model ......................... yes
      QML delegate model ..................... yes
    Qt Quick:
      Direct3D 12 ............................ yes
      AnimatedImage item ..................... yes
      Canvas item ............................ yes
      Support for Qt Quick Designer .......... yes
      Flipable item .......................... yes
      GridView item .......................... yes
      ListView item .......................... yes
      TableView item ......................... yes
      Path support ........................... yes
      PathView item .......................... yes
      Positioner items ....................... yes
      Repeater item .......................... yes
      ShaderEffect item ...................... yes
      Sprite item ............................ yes
    QtQuick3D:
      Assimp ................................. yes
      System Assimp .......................... yes
    Qt Scxml:
      ECMAScript data model for QtScxml ...... yes
    Qt Gamepad:
      SDL2 ................................... yes
    Qt 3D:
      Assimp ................................. yes
      System Assimp .......................... yes
      Output Qt3D GL traces .................. no
      Use SSE2 instructions .................. yes
      Use AVX2 instructions .................. no
      Aspects:
        Render aspect ........................ yes
        Input aspect ......................... yes
        Logic aspect ......................... yes
        Animation aspect ..................... yes
        Extras aspect ........................ yes
    Qt 3D Renderers:
      OpenGL Renderer ........................ yes
      RHI Renderer ........................... no
    Qt 3D GeometryLoaders:
      Autodesk FBX ........................... yes
    Qt Wayland Client ........................ no
    Qt Wayland Compositor .................... no
    Qt Bluetooth:
      BlueZ .................................. yes
      BlueZ Low Energy ....................... yes
      Linux Crypto API ....................... yes
      Native Win32 Bluetooth ................. no
      WinRT Bluetooth API (desktop & UWP) .... no
      WinRT advanced bluetooth low energy API (desktop & UWP) . no
    Qt Sensors:
      sensorfw ............................... no
    Qt Quick Controls 2:
      Styles ................................. Default Fusion Imagine Material Universal
    Qt Quick Templates 2:
      Hover support .......................... yes
      Multi-touch support .................... yes
    Qt Positioning:
      Gypsy GPS Daemon ....................... no
      WinRT Geolocation API .................. yes
    Qt Location:
      Qt.labs.location experimental QML plugin . yes
      Geoservice plugins:
        OpenStreetMap ........................ yes
        HERE ................................. yes
        Esri ................................. yes
        Mapbox ............................... yes
        MapboxGL ............................. yes
        Itemsoverlay ......................... yes
    QtXmlPatterns:
      XML schema support ..................... yes
    Qt Multimedia:
      ALSA ................................... yes
      GStreamer 1.0 .......................... no
      GStreamer 0.10 ......................... no
      Video for Linux ........................ yes
      OpenAL ................................. yes
      PulseAudio ............................. no
      Resource Policy (libresourceqt5) ....... no
      Windows Audio Services ................. no
      DirectShow ............................. no
      Windows Media Foundation ............... no
    Qt TextToSpeech:
      Flite .................................. yes
      Flite with ALSA ........................ yes
      Speech Dispatcher ...................... yes
    Qt Tools:
      Qt Assistant ........................... yes
      Qt Designer ............................ yes
      Qt Distance Field Generator ............ yes
      kmap2qmap .............................. yes
      Qt Linguist ............................ yes
      Mac Deployment Tool .................... no
      makeqpf ................................ yes
      pixeltool .............................. yes
      qdbus .................................. yes
      qev .................................... yes
      Qt Attributions Scanner ................ yes
      qtdiag ................................. yes
      qtpaths ................................ yes
      qtplugininfo ........................... yes
      Windows deployment tool ................ no
      WinRT Runner Tool ...................... no
    Qt Tools:
      QDoc ................................... no
    Qt WebEngine Build Tools:
      Use System Ninja ....................... no
      Use System Gn .......................... no
      Jumbo Build Merge Limit ................ 8
      Developer build ........................ no
      Sanitizer .............................. no
      QtWebEngine required system libraries:
        fontconfig ........................... no
        dbus ................................. no
        nss .................................. no
        khr .................................. yes
        glibc ................................ yes
      Optional system libraries used:
        re2 .................................. no
        icu .................................. no
        libwebp, libwebpmux and libwebpdemux . no
        opus ................................. no
        ffmpeg ............................... no
        libvpx ............................... no
        snappy ............................... no
        glib ................................. no
        zlib ................................. no
        minizip .............................. no
        libevent ............................. no
        jsoncpp .............................. no
        protobuf ............................. no
        libxml2 and libxslt .................. no
        lcms2 ................................ no
        png .................................. no
        JPEG ................................. no
        harfbuzz ............................. no
        freetype ............................. no
    
    Note: Also available for Linux: linux-clang linux-icc
    
    Note: -optimized-tools is not useful in -release mode.
    
    Note: The following modules are not being compiled in this configuration:
        webenginecore
        webengine
        webenginewidgets
        pdf
        pdfwidgets
    
    WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
    
    Either ensure that llvm-config is in your PATH environment variable, or set LLVM_INSTALL_DIR to the location of your llvm installation.
    On Linux systems, you may be able to install libclang by installing the libclang-dev or libclang-devel package, depending on your distribution.
    On macOS, you can use Homebrew's llvm package.
    On Windows, you must set LLVM_INSTALL_DIR to the installation path.
    
    WARNING: A pkg-config support is required to build QtWebEngine.
    
    WARNING: A pkg-config support is required to build QtPdf.
    
    WARNING: QtWebEngine will not be built.
    
    WARNING: QtPdf will not be built.
    
    Qt is now configured for building. Just run 'make'.
    Once everything is built, you must run 'make install'.
    Qt will be installed into '/home/debian/work/ROOTFS_STM_QT/usr/local/qt5stm32mp'.
    
    

    So i did

    make
    

    And got this:

    cd qtbase/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/qtbase.pro ) && make -f Makefile 
    make[1]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase'
    cd src/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/src.pro ) && make -f Makefile 
    make[2]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src'
    cd corelib/ && ( test -e Makefile.qtzlib || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile.qtzlib /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/corelib/qtzlib.pro ) && make -f Makefile.qtzlib 
    make[3]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/corelib'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/corelib'
    cd tools/bootstrap/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/bootstrap/bootstrap.pro ) && make -f Makefile 
    make[3]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/bootstrap'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/bootstrap'
    cd tools/moc/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/moc/moc.pro ) && make -f Makefile 
    make[3]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/moc'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/moc'
    cd tools/rcc/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/rcc/rcc.pro ) && make -f Makefile 
    make[3]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/rcc'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/rcc'
    cd tools/tracegen/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/tracegen/tracegen.pro ) && make -f Makefile 
    make[3]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/tracegen'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/tools/tracegen'
    cd 3rdparty/pcre2/ && ( test -e Makefile || /home/debian/work/qt-everywhere-src-5.15.2/qtbase/bin/qmake -o Makefile /home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/3rdparty/pcre2/pcre2.pro ) && make -f Makefile 
    make[3]: Entering directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/3rdparty/pcre2'
    /opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -c -pipe --sysroot=/home/debian/work/ROOTFS_STM_QT -mshstk -O2 -fPIC -std=gnu11 -fvisibility=hidden -w -fno-exceptions -DQT_NO_LINKED_LIST -DQT_NO_JAVA_STYLE_ITERATORS -DPCRE2_CODE_UNIT_WIDTH=16 -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DHAVE_CONFIG_H -DQT_NO_DYNAMIC_CAST -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I. -I/home/debian/opt/gcc-arm-8.3-2019.03-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/ -Isrc -I../../../mkspecs/devices/stm32mp1 -o .obj/pcre2_auto_possess.o src/pcre2_auto_possess.c
    arm-linux-gnueabihf-gcc: error: unrecognized command line option ‘-mshstk’
    make[3]: *** [Makefile:1361: .obj/pcre2_auto_possess.o] Error 1
    make[3]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src/3rdparty/pcre2'
    make[2]: *** [Makefile:201: sub-3rdparty-pcre2-make_first] Error 2
    make[2]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase/src'
    make[1]: *** [Makefile:51: sub-src-make_first] Error 2
    make[1]: Leaving directory '/home/debian/work/qt-everywhere-src-5.15.2/qtbase'
    make: *** [Makefile:88: module-qtbase-make_first] Error 2
    

    So the error that i am facing is that my gcc-arm compiler doesnt have this command line:

    arm-linux-gnueabihf-gcc: error: unrecognized command line option ‘-mshstk’
    

    Any idea?



  • So i manage to make a workaround.
    I just set the variable to empty in the file:

    qtbase/mkspecs/common/gcc-base.conf
    
    #QMAKE_CFLAGS_SHSTK          = -mshstk
    QMAKE_CFLAGS_SHSTK          =
    
    


  • @michaelL said in Qt5.15.2 configure for arm Debian 10:

    arm-linux-gnueabihf-gcc

    I am not an expert on Cross compiling , But most likely you should use "arm-linux-gnueabihf-gcc" which supports (or has flag ) "-mshstk" . I did a quick check on my machine with "man man arm-linux-gnueabihf-gcc" and found out it has "-mshstk"

    arm-linux-gnueabihf-gcc --version
    arm-linux-gnueabihf-gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
    
    man arm-linux-gnueabihf-gcc  : 
     x86 Options -mtune=cpu-type  -march=cpu-type -mtune-ctrl=feature-list  -mdump-tune-features  -mno-default -mfpmath=unit -masm=dialect  -mno-fancy-math-387
               -mno-fp-ret-in-387  -m80387  -mhard-float  -msoft-float -mno-wide-multiply  -mrtd  -malign-double -mpreferred-stack-boundary=num -mincoming-stack-boundary=num -mcld
               -mcx16  -msahf  -mmovbe  -mcrc32 -mrecip  -mrecip=opt -mvzeroupper  -mprefer-avx128  -mprefer-vector-width=opt -mmmx  -msse  -msse2  -msse3  -mssse3  -msse4.1
               -msse4.2  -msse4  -mavx -mavx2  -mavx512f  -mavx512pf  -mavx512er  -mavx512cd  -mavx512vl -mavx512bw  -mavx512dq  -mavx512ifma  -mavx512vbmi  -msha  -maes -mpclmul
               -mfsgsbase  -mrdrnd  -mf16c  -mfma  -mpconfig  -mwbnoinvd -mptwrite  -mprefetchwt1  -mclflushopt  -mclwb  -mxsavec  -mxsaves -msse4a  -m3dnow  -m3dnowa  -mpopcnt
               -mabm  -mbmi  -mtbm  -mfma4  -mxop -madx  -mlzcnt  -mbmi2  -mfxsr  -mxsave  -mxsaveopt  -mrtm  -mhle  -mlwp -mmwaitx  -mclzero  -mpku  -mthreads  -mgfni  -mvaes
               -mwaitpkg -mshstk 
    
    


  • @guruhb said in Qt5.15.2 configure for arm Debian 10:

    mshstk

    Hi Guruhb,

    thank you for your answer. I think the option "-mshstk" is only used in 0x86 architectures.

    I downloaded the arm-gnueabihf-gcc version 10.2 which i think it is the latest and there is no option "-mshstk" as well:

    Here is my compiler version:

    
    debian@debian10:~/work$ gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc -v
    Using built-in specs.
    COLLECT_GCC=gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc
    COLLECT_LTO_WRAPPER=/home/debian/work/gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/10.2.1/lto-wrapper
    Target: arm-none-linux-gnueabihf
    Configured with: /tmp/dgboter/bbs/build03--cen7x86_64/buildbot/cen7x86_64--arm-none-linux-gnueabihf/build/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/tmp/dgboter/bbs/build03--cen7x86_64/buildbot/cen7x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/tmp/dgboter/bbs/build03--cen7x86_64/buildbot/cen7x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/tmp/dgboter/bbs/build03--cen7x86_64/buildbot/cen7x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/tmp/dgboter/bbs/build03--cen7x86_64/buildbot/cen7x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-isl=/tmp/dgboter/bbs/build03--cen7x86_64/buildbot/cen7x86_64--arm-none-linux-gnueabihf/build/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)'
    Thread model: posix
    Supported LTO compression algorithms: zlib
    gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16)) 
    
    

    Here is the no option "-mshstk"

    debian@debian10:~/work$ gcc-arm-10.2-2020.11-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc -Q --help=target
    The following options are target specific:
      -mabi=                      		aapcs-linux
      -mabort-on-noreturn         		[disabled]
      -mandroid                   		[disabled]
      -mapcs                      		[disabled]
      -mapcs-frame                		[disabled]
      -mapcs-reentrant            		[disabled]
      -mapcs-stack-check          		[disabled]
      -march=                     		armv7-a+simd
      -marm                       		[disabled]
      -masm-syntax-unified        		[disabled]
      -mbe32                      		[enabled]
      -mbe8                       		[disabled]
      -mbig-endian                		[disabled]
      -mbionic                    		[disabled]
      -mbranch-cost=              		-1
      -mcallee-super-interworking 		[disabled]
      -mcaller-super-interworking 		[disabled]
      -mcmse                      		[disabled]
      -mcpu=                      		
      -mfdpic                     		[disabled]
      -mfix-cortex-m3-ldrd        		[enabled]
      -mflip-thumb                		[disabled]
      -mfloat-abi=                		hard
      -mfp16-format=              		none
      -mfpu=                      		neon
      -mgeneral-regs-only         		[disabled]
      -mglibc                     		[enabled]
      -mhard-float                		-mfloat-abi=hard
      -mlittle-endian             		[enabled]
      -mlong-calls                		[disabled]
      -mmusl                      		[disabled]
      -mneon-for-64bits           		[disabled]
      -mpic-data-is-text-relative 		[enabled]
      -mpic-register=             		
      -mpoke-function-name        		[disabled]
      -mprint-tune-info           		[disabled]
      -mpure-code                 		[disabled]
      -mrestrict-it               		[enabled]
      -msched-prolog              		[enabled]
      -msingle-pic-base           		[disabled]
      -mslow-flash-data           		[disabled]
      -msoft-float                		-mfloat-abi=soft
      -mstructure-size-boundary=  		32
      -mthumb                     		[enabled]
      -mthumb-interwork           		[enabled]
      -mtls-dialect=              		gnu
      -mtp=                       		auto
      -mtpcs-frame                		[disabled]
      -mtpcs-leaf-frame           		[disabled]
      -mtune=                     		
      -muclibc                    		[disabled]
      -munaligned-access          		[enabled]
      -mvectorize-with-neon-double 		[disabled]
      -mvectorize-with-neon-quad  		[enabled]
      -mword-relocations          		[disabled]
    
    

    If i run my 0x86 gcc i can see the option "-mshstk" disabled:

    debian@debian10:~/work$ gcc -Q --help=target
    The following options are target specific:
      -m128bit-long-double        		[enabled]
      -m16                        		[disabled]
      -m32                        		[disabled]
      -m3dnow                     		[disabled]
      -m3dnowa                    		[disabled]
      -m64                        		[enabled]
      -m80387                     		[enabled]
      -m8bit-idiv                 		[disabled]
      -m96bit-long-double         		[disabled]
      -mabi=                      		sysv
      -mabm                       		[disabled]
      -maccumulate-outgoing-args  		[disabled]
      -maddress-mode=             		long
      -madx                       		[disabled]
      -maes                       		[disabled]
      -malign-data=               		compat
      -malign-double              		[disabled]
      -malign-functions=          		0
      -malign-jumps=              		0
      -malign-loops=              		0
      -malign-stringops           		[enabled]
      -mandroid                   		[disabled]
      -march=                     		x86-64
      -masm=                      		att
      -mavx                       		[disabled]
      -mavx2                      		[disabled]
      -mavx256-split-unaligned-load 	[enabled]
      -mavx256-split-unaligned-store 	[enabled]
      -mavx5124fmaps              		[disabled]
      -mavx5124vnniw              		[disabled]
      -mavx512bitalg              		[disabled]
      -mavx512bw                  		[disabled]
      -mavx512cd                  		[disabled]
      -mavx512dq                  		[disabled]
      -mavx512er                  		[disabled]
      -mavx512f                   		[disabled]
      -mavx512ifma                		[disabled]
      -mavx512pf                  		[disabled]
      -mavx512vbmi                		[disabled]
      -mavx512vbmi2               		[disabled]
      -mavx512vl                  		[disabled]
      -mavx512vnni                		[disabled]
      -mavx512vpopcntdq           		[disabled]
      -mbionic                    		[disabled]
      -mbmi                       		[disabled]
      -mbmi2                      		[disabled]
      -mbranch-cost=<0,5>         		3
      -mcall-ms2sysv-xlogues      		[disabled]
      -mcet-switch                		[disabled]
      -mcld                       		[disabled]
      -mclflushopt                		[disabled]
      -mclwb                      		[disabled]
      -mclzero                    		[disabled]
      -mcmodel=                   		[default]
      -mcpu=                      		
      -mcrc32                     		[disabled]
      -mcx16                      		[disabled]
      -mdispatch-scheduler        		[disabled]
      -mdump-tune-features        		[disabled]
      -mf16c                      		[disabled]
      -mfancy-math-387            		[enabled]
      -mfentry                    		[disabled]
      -mfma                       		[disabled]
      -mfma4                      		[disabled]
      -mforce-drap                		[disabled]
      -mforce-indirect-call       		[disabled]
      -mfp-ret-in-387             		[enabled]
      -mfpmath=                   		sse
      -mfsgsbase                  		[disabled]
      -mfunction-return=          		keep
      -mfused-madd                		
      -mfxsr                      		[enabled]
      -mgeneral-regs-only         		[disabled]
      -mgfni                      		[disabled]
      -mglibc                     		[enabled]
      -mhard-float                		[enabled]
      -mhle                       		[disabled]
      -miamcu                     		[disabled]
      -mieee-fp                   		[enabled]
      -mincoming-stack-boundary=  		0
      -mindirect-branch-register  		[disabled]
      -mindirect-branch=          		keep
      -minline-all-stringops      		[disabled]
      -minline-stringops-dynamically 	[disabled]
      -mintel-syntax              		
      -mlarge-data-threshold=<number> 	65536
      -mlong-double-128           		[disabled]
      -mlong-double-64            		[disabled]
      -mlong-double-80            		[enabled]
      -mlwp                       		[disabled]
      -mlzcnt                     		[disabled]
      -mmemcpy-strategy=          		
      -mmemset-strategy=          		
      -mmitigate-rop              		[disabled]
      -mmmx                       		[enabled]
      -mmovbe                     		[disabled]
      -mmovdir64b                 		[disabled]
      -mmovdiri                   		[disabled]
      -mmpx                       		[disabled]
      -mms-bitfields              		[disabled]
      -mmusl                      		[disabled]
      -mmwaitx                    		[disabled]
      -mno-align-stringops        		[disabled]
      -mno-default                		[disabled]
      -mno-fancy-math-387         		[disabled]
      -mno-push-args              		[disabled]
      -mno-red-zone               		[disabled]
      -mno-sse4                   		[enabled]
      -mnop-mcount                		[disabled]
      -momit-leaf-frame-pointer   		[disabled]
      -mpc32                      		[disabled]
      -mpc64                      		[disabled]
      -mpc80                      		[disabled]
      -mpclmul                    		[disabled]
      -mpcommit                   		[disabled]
      -mpconfig                   		[disabled]
      -mpku                       		[disabled]
      -mpopcnt                    		[disabled]
      -mprefer-avx128             		
      -mprefer-vector-width=      		none
      -mpreferred-stack-boundary= 		0
      -mprefetchwt1               		[disabled]
      -mprfchw                    		[disabled]
      -mpush-args                 		[enabled]
      -mrdpid                     		[disabled]
      -mrdrnd                     		[disabled]
      -mrdseed                    		[disabled]
      -mrecip                     		[disabled]
      -mrecip=                    		
      -mrecord-mcount             		[disabled]
      -mred-zone                  		[enabled]
      -mregparm=                  		6
      -mrtd                       		[disabled]
      -mrtm                       		[disabled]
      -msahf                      		[disabled]
      -msgx                       		[disabled]
      -msha                       		[disabled]
      -mshstk                     		[disabled]
      -mskip-rax-setup            		[disabled]
      -msoft-float                		[disabled]
      -msse                       		[enabled]
      -msse2                      		[enabled]
      -msse2avx                   		[disabled]
      -msse3                      		[disabled]
      -msse4                      		[disabled]
      -msse4.1                    		[disabled]
      -msse4.2                    		[disabled]
      -msse4a                     		[disabled]
      -msse5                      		
      -msseregparm                		[disabled]
      -mssse3                     		[disabled]
      -mstack-arg-probe           		[disabled]
      -mstack-protector-guard-offset= 	
      -mstack-protector-guard-reg= 		
      -mstack-protector-guard-symbol= 	
      -mstack-protector-guard=    		tls
      -mstackrealign              		[disabled]
      -mstringop-strategy=        		[default]
      -mstv                       		[enabled]
      -mtbm                       		[disabled]
      -mtls-dialect=              		gnu
      -mtls-direct-seg-refs       		[enabled]
      -mtune-ctrl=                		
      -mtune=                     		generic
      -muclibc                    		[disabled]
      -mvaes                      		[disabled]
      -mveclibabi=                		[default]
      -mvect8-ret-in-mem          		[disabled]
      -mvpclmulqdq                		[disabled]
      -mvzeroupper                		[enabled]
      -mwbnoinvd                  		[disabled]
      -mx32                       		[disabled]
      -mxop                       		[disabled]
      -mxsave                     		[disabled]
      -mxsavec                    		[disabled]
      -mxsaveopt                  		[disabled]
      -mxsaves                    		[disabled]
    
    

    So there is no option "-mshstk" for arm gcc than right? Is there anything missing maybe wrong settings on my device "qmake.conf" file?



  • So i manage to make a workaround.
    I just set the variable to empty in the file:

    qtbase/mkspecs/common/gcc-base.conf
    
    #QMAKE_CFLAGS_SHSTK          = -mshstk
    QMAKE_CFLAGS_SHSTK          =
    
    

Log in to reply