This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

QT5 + omap3530 + eglfs problem

Other Parts Discussed in Thread: OMAP3530

Hi,

Could anyone help me to undestand a problem that appears when I  test an hellogl_es2 example from Qt5?  The board is a DevKit8000. hellogl_es2 example crash to run with this output:

Incompatible processor. This Qt build requires the following features:   neon
Aborted. Incompatible processor: missing feature 0x2 - neon.

OMAP3530 has the NEON SIMD Coprocessor??

My Qt5 modules and options (''configure'' output):

   Configure summary

Building on:   linux-g++ (i386, CPU features:)
Building for:  arm-none-linux-gnueabi-g++ (arm, CPU features:)
Platform notes:

            - Also available for Linux: linux-kcc linux-icc linux-cxx
       
qmake vars .......... styles += mac fusion windows DEFINES += QT_NO_LIBUDEV DEFINES += QT_NO_XCB DEFINES += QT_NO_XKBCOMMON sql-drivers =  sql-plugins =  sqlite qmake switches .........

Build options:
  Configuration .......... accessibility audio-backend clock-gettime clock-monotonic compile_examples concurrent cross_compile evdev freetype full-config getaddrinfo getifaddrs iconv inotify ipv6ifname large-config linuxfb medium-config minimal-config mremap neon nis no-harfbuzz no-pkg-config opengl opengles2 pcre png posix_fallocate qpa qpa reduce_exports reduce_relocations release rpath shared small-config zlib
  Build parts ............  libs examples
  Mode ................... release
  Using C++11 ............ no
  Using PCH .............. no
  Target compiler supports:
    iWMMXt/Neon .......... no/yes

Qt modules and options:
  Qt D-Bus ............... no
  Qt Concurrent .......... yes
  Qt GUI ................. yes
  Qt Widgets ............. yes
  JavaScriptCore JIT ..... yes (To be decided by JavaScriptCore)
  QML debugging .......... no
  Use system proxies ..... no

Support enabled for:
  Accessibility .......... yes
  ALSA ................... no
  CUPS ................... no
  FontConfig ............. no
  FreeType ............... yes
  Iconv .................. yes
  ICU .................... no
  Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using bundled copy)
    PNG .................. yes (in QtGui, using bundled copy)
  Glib ................... no
  GTK theme .............. no
  Large File ............. no
  Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    OpenSSL .............. no
  NIS .................... yes
  OpenGL ................. yes (OpenGL ES 2.x)
  OpenVG ................. no
  PCRE ................... yes (bundled copy)
  pkg-config ............. no
  PulseAudio ............. no
  QPA backends:
    DirectFB ............. no
    EGLFS ................ yes
    KMS .................. no
    LinuxFB .............. yes
    XCB .................. no
  Session management ..... yes
  SQL drivers:
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. no
  udev ................... no
  xkbcommon .............. no
  zlib ................... yes (bundled copy)

My qmake.conf has:

QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -ffast-math -mfloat-abi=softfp -fno-inline
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE. 

I try to build qt5 with -no neon option, but same result

How you build qt5+eglfs for omap3530??!!

My goal is to be able to run Qt5 examples without using X on DevKit8000.

BR

Michael

  • Hi Michael,

    I would like with this that the OMAP3530 has a NEON coprocessor of course.

    The problem which you have probable dues to incorrect configuration. As very fist step could you check the version of the toolchain which you are using with the following commands:

    Host $ g++ --version
    Host $ arm-none-linux-gnueabi-g++ --version

    The toolchain version should be cs2009q1 or higher.

    Also let's try to look at your qmake.conf file. I suggest you and example suitable for omap3530:

    #
    # qmake configuration for building with arm-linux-g++
    #
    
    include(../../common/g++.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)
    
    # modifications to g++.conf
    #Toolchain
    
    #Compiler Flags to take advantage of the ARM architecture
    QMAKE_CFLAGS_RELEASE =   -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    
    QMAKE_CC = arm-none-linux-gnueabi-gcc
    QMAKE_CXX = arm-none-linux-gnueabi-g++
    QMAKE_LINK = arm-none-linux-gnueabi-g++
    QMAKE_LINK_SHLIB = arm-none-linux-gnueabi-g++
    
    # modifications to linux.conf
    QMAKE_AR = arm-none-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY = arm-none-linux-gnueabi-objcopy
    QMAKE_STRIP = arm-none-linux-gnueabi-strip
    
    load(qt_config)

    If the issue still appears you could try to follow the steps in the following article about Building Qt at the link:
    http://processors.wiki.ti.com/index.php/Building_Qt


    BR
    Tsvetolin Shulev

  • Hi Tsvetolin.

    Thank you for your answer!

    My toolchains ver.:

    host: g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3

    target (omap): arm-none-linux-gnueabi-g++ (Sourcery G++ Lite 2009q1-203) 4.3.3

    My qmake.conf:

    #
    # qmake configuration for building with arm-none-linux-gnueabi-g++
    #

    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental gdb_dwarf_index
    QMAKE_INCREMENTAL_STYLE = sublib

    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)

    ROOTFS_PATH=/path/to/target/rootfs

    QMAKE_INCDIR_OPENGL_ES2 = $${ROOTFS_PATH}/usr/include
    QMAKE_LIBDIR_OPENGL_ES2 = $${ROOTFS_PATH}/opt/gfxlibraries/gfx_rel_es2.x
    QMAKE_INCDIR_EGL  = $${QMAKE_INCDIR_OPENGL_ES2}
    QMAKE_LIBDIR_EGL  = $${QMAKE_LIBDIR_OPENGL_ES2}

    QMAKE_INCDIR   += =/path/to/tslib-1.1/src
    QMAKE_LIBDIR   += =/path/to/tslib-1.1/lib

    # libs
    QMAKE_LIBS = -lz -lrt -lts -lpthread -Wl,-rpath-link==/path/to/target/rootfs/lib

    QMAKE_LIBS_OPENGL_ES2= -lEGL -lIMGegl -lsrv_um -lGLESv2 -lGLES_CM -lusc
    QMAKE_LIBS_EGL= $${QMAKE_LIBS_OPENGL_ES2}
    QMAKE_LIBS_THREAD = -lpthread

    QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -fno-inline
    QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE

    CSTOOL_DIR  = /opt/arm-2009q1/bin/

    # modifications to g++.conf
    QMAKE_CC                = $${CSTOOL_DIR}arm-none-linux-gnueabi-gcc
    QMAKE_CXX               = $${CSTOOL_DIR}arm-none-linux-gnueabi-g++
    QMAKE_LINK              = $${CSTOOL_DIR}arm-none-linux-gnueabi-g++
    QMAKE_LINK_SHLIB        = $${CSTOOL_DIR}arm-none-linux-gnueabi-g++

    # modifications to linux.conf
    QMAKE_AR                = $${CSTOOL_DIR}arm-none-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = $${CSTOOL_DIR}arm-none-linux-gnueabi-objcopy
    QMAKE_NM                = $${CSTOOL_DIR}arm-none-linux-gnueabi-nm -P
    QMAKE_STRIP             = $${CSTOOL_DIR}arm-none-linux-gnueabi-strip

     load(qt_config)

    I read it (http://processors.wiki.ti.com/index.php/Building_Qt), thanks/

    My qt5 configure string is:

    ./configure -release -xplatform arm-none-linux-gnueabi-g++ -prefix /path/to/qt5 -confirm-license -opensource -make libs -make examples -verbose -no-sse2 -no-glib -no-cups -no-largefile -no-openssl -optimized-qmake -system-zlib -qt-libjpeg -opengl es2 -no-xcb -qt-zlib -no-c++11 -no-sql-ibase -no-sql-mysql -no-sql-odbc -no-sql-psql -no-gtkstyle -no-pch -no-qml-debug -qreal float -eglfs -no-sql-sqlite

    Help me!

    BR,

    Michael

  • I solved a it.

    the problem was that my linux kernel was build without support of NEON.