AnsweredAssumed Answered

Qt 5.4.0 for i.MX6 - Configuration Failure

Question asked by Nathan Jozwiak on Feb 11, 2015
Latest reply on Oct 21, 2015 by darknighte

Hi all,

 

I'm trying to build Qt 5.4.0 for the i.MX6 and am having some issues right out of the gate with configuration. I have a rootfs built from the FSL Yocto BSP (Dizzy) that I am using. It is an unmodified rootfs built from the fsl-image-multimedia image and contains libraries and headers for GLES2, EGL, GAL, etc.

 

I am using the 2013.10 Linaro HF toolchain: @gcc-linaro-arm-linux-gnueabihf-4.8-2013.10@

 

Here is my qmake.conf file (mostly the same as the default one but included flags for OpenGL stuff):

 

include(../common/linux_device_pre.conf)

 

EGLFS_PLATFORM_HOOKS_SOURCES = $$PWD/qeglfshooks_imx6.cpp

 

QMAKE_INCDIR           += $$[QT_SYSROOT]/usr/include

QMAKE_LIBDIR           += $$[QT_SYSROOT]/usr/lib

 

QMAKE_INCDIR_OPENGL     = $$[QT_SYSROOT]/usr/include/GL

QMAKE_LIBDIR_OPENGL     = $$[QT_SYSROOT]/usr/lib

QMAKE_INCDIR_OPENGL_ES2 = $$[QT_SYSROOT]/usr/include/GLES2

QMAKE_LIBDIR_OPENGL_ES2 = $$[QT_SYSROOT]/usr/lib

QMAKE_INCDIR_EGL        = $$[QT_SYSROOT]/usr/include/GL

QMAKE_LIBDIR_EGL        = $$[QT_SYSROOT]/usr/lib

 

QMAKE_LIBS_EGL         += -lEGL

QMAKE_LIBS_OPENGL_ES2  += -lGLESv2 -lEGL -lGAL

QMAKE_LIBS_OPENVG      += -lOpenVG -lEGL -lGAL

 

QMAKE_LFLAGS           += -Wl,-rpath-link,$$[QT_SYSROOT]/usr/lib

 

IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -mfloat-abi=hard -DLINUX=1 -DEGL_API_FB=1

QMAKE_CFLAGS           += $$IMX6_CFLAGS

QMAKE_CXXFLAGS         += $$IMX6_CFLAGS

 

include(../common/linux_arm_device_post.conf)

 

load(qt_config)

 

 

And my configure line:

 

configure -v -opensource -confirm-license

-device imx6

-device-option CROSS_COMPILE=/opt/ti/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10/bin/arm-linux-gnueabihf-

-no-pch

-no-xcb

-opengl es2

-make libs

-sysroot /projects/client/imx6/rootfs -no-gcc-sysroot

-prefix /opt/qt-5.4.0-imx6

 

The configuration is failing with the following errors:

 

OpenGL ES 2.0 auto-detection... ()

/opt/ti/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10/bin/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -mfpu=neon -mfloat-abi=hard -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=softfp -O2 -Wall -W -fPIE  -I/opt/qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/devices/linux-imx6-g++ -I/opt/qt-everywhere-opensource-src-5.4.0/qtbase/config.tests/unix/opengles2 -I/projects/client/imx6/rootfs/usr/include/libdrm -I/projects/client/imx6/rootfs/usr/include/GLES2 -I/projects/client/imx6/rootfs/usr/include -I. -o opengles2.o /opt/qt-everywhere-opensource-src-5.4.0/qtbase/config.tests/unix/opengles2/opengles2.cpp

/opt/ti/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10/bin/arm-linux-gnueabihf-g++ -Wl,-rpath-link,/projects/client/imx6/rootfs/usr/lib -Wl,-O1 -o opengles2 opengles2.o   -L/projects/client/imx6/rootfs/usr/lib -lGLESv2 -lEGL -lGAL

/opt/ti/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/bin/ld: cannot find /lib/libc.so.6

/opt/ti/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/bin/ld: cannot find /usr/lib/libc_nonshared.a

/opt/ti/linaro/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/bin/ld: cannot find /lib/ld-linux-armhf.so.3

collect2: error: ld returned 1 exit status

make: *** [opengles2] Error 1

OpenGL ES 2.0 disabled.

The OpenGL ES 2.0 functionality test failed!

You might need to modify the include and library search paths by editing

QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in

/opt/qt-everywhere-opensource-src-5.4.0/qtbase/mkspecs/devices/linux-imx6-g++.

 

Note that all of those libraries exist in paths that are included on the g++ line:

 

user@ubuntu:/projects/client/imx6/rootfs$ find . -name "libc.so.6"

./lib/libc.so.6

user@ubuntu:/projects/client/imx6/rootfs$ find . -name "libc_nonshared.a"

./usr/lib/libc_nonshared.a

user@ubuntu:/projects/client/imx6/rootfs$ find . -name "ld-linux-armhf.so.3"

./lib/ld-linux-armhf.so.3

 

Any ideas?

Outcomes