[Development] Qt5 Beta cross compiling problem

Christoph Kurz c.kurz at melph.de
Thu Sep 27 17:11:23 CEST 2012


Hi,

I have a problem cross compiling the Qt5-Beta for an i.MX6 Board.
The host OS is a Fedora Linux, the target OS is an embedded Linux.

Steps taken so far:

– I set up LTIB and created a rootfs for the target.

– I downloaded the Qt5 sourcecode and excluded svg and webkit by renaming the
corresponding folders

– I copied the linux-imx6-makespec in the qtbase/mkspecs folder (see attachment
"config.txt")

- I configured the build with the following command (runs without any errors):
./configure -prefix /home/local/CW01/uidv7014/Qt_for_target -developer-build
-confirm-license -opensource -nomake tests -nomake docs -nomake demos -nomake
examples -no-xcb -no-wayland -xplatform linux-imx6 -arch armv7 -opengl es2
-openvg -eglfs -release -v

- I tried to run make, but after a while, an error occurs (see attachment
"error.txt")



As this error seems to occur in the neon-package, I excluded it by using the
-no-neon option in the configure-command. This seems to work, but then a very
similar error occurs in the sqlite-package and in various other packages, too.

I compiled the Qt5 Alpha successfully, using the same specs and environment.

Any ideas?



- Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20120927/0d537f92/attachment.html>
-------------- next part --------------
#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
TARGET_PLATFORM         = unix
TEMPLATE                = app
CONFIG                  += qt warn_on release incremental link_prl gdb_dwarf_index
QT                      += core gui
QMAKE_INCREMENTAL_STYLE = sublib

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

# define prefix for rootfs and compiler
REQS_PREFIX=/home/local/CW01/uidv7014/IMX6/ltib/rootfs
GCC_PREFIX=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi

# includes and libs directories
QMAKE_INCDIR          = $${REQS_PREFIX}/usr/include $${REQS_PREFIX}/usr/include/glib-2.0 \
			$${REQS_PREFIX}/usr/lib/glib-2.0/include/ \
 			$${REQS_PREFIX}/usr/include/gstreamer-0.10/ \
 			$${REQS_PREFIX}/usr/include/libxml2/ $${REQS_PREFIX}/usr/include/freetype2 \
			$${REQS_PREFIX}/usr/include/dbus-1.0 $${REQS_PREFIX}/usr/include/dbus-1.0/dbus
QMAKE_LIBDIR          = $${REQS_PREFIX}/usr/lib
QMAKE_INCDIR_OPENGL   = $${REQS_PREFIX}/usr/include/GL
QMAKE_LIBDIR_OPENGL   = $${REQS_PREFIX}/usr/lib
QMAKE_INCDIR_POWERVR  = $${REQS_PREFIX}/usr/include
QMAKE_INCDIR_OPENGL_ES1 = $${REQS_PREFIX}/usr/include/GLES
QMAKE_LIBDIR_OPENGL_ES1 = $${REQS_PREFIX}/usr/lib
QMAKE_INCDIR_OPENGL_ES1CL = $${REQS_PREFIX}/usr/include/GLES
QMAKE_LIBDIR_OPENGL_ES1CL = $${REQS_PREFIX}/usr/lib
QMAKE_INCDIR_OPENGL_ES2 = $${REQS_PREFIX}/usr/include/GLES2
QMAKE_LIBDIR_OPENGL_ES2 = $${REQS_PREFIX}/usr/lib
QMAKE_INCDIR_EGL      = $${REQS_PREFIX}/usr/include/GL
QMAKE_LIBDIR_EGL      = $${REQS_PREFIX}/usr/lib
QMAKE_INCDIR_OPENVG   = $${REQS_PREFIX}/usr/include/VG
QMAKE_LIBDIR_OPENVG   = $${REQS_PREFIX}/usr/lib

# libs
QMAKE_LIBS            = -lglib-2.0 -lgthread-2.0 -lgstreamer-0.10 -lxml2 -lz -lgmodule-2.0 -lgobject-2.0 -lts -lasound -lfreetype -lexpat -ljpeg -lfontconfig -lpng -lGLESv2 -lGLES_CM -lVDK -lGAL -lEGL -lOpenVG -lpthread
QMAKE_LIBS_EGL= -lEGL
QMAKE_LIBS_OPENGL_ES2= -lGLESv2 -lGLES_CM -lVDK -lGAL -lEGL -lOpenVG 
QMAKE_LIBS_OPENVG= -lOpenVG -lVDK -lGAL -lEGL
QMAKE_LIBS_THREAD     = -lpthread

# compiler flags
QMAKE_CFLAGS_RELEASE = -O2 -march=armv7-a -mfpu=neon -mfloat-abi=softfp -DLINUX=1 -DEGL_API_FB=1
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE

# modifications to g++.conf
QMAKE_CC                = $${GCC_PREFIX}-gcc
QMAKE_CXX               = $${GCC_PREFIX}-g++
QMAKE_LINK              = $${QMAKE_CXX}
QMAKE_LINK_SHLIB        = $${QMAKE_CXX}

# modifications to linux.conf
QMAKE_AR                = $${GCC_PREFIX}-ar cqs
QMAKE_OBJCOPY           = $${GCC_PREFIX}-objcopy
QMAKE_STRIP             = $${GCC_PREFIX}-strip
load(qt_config)
-------------- next part --------------
.obj/release-shared/qimage.o: In function `qInitImageConversions()’:
qimage.cpp:(.text+0×17bc): undefined reference to `convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)’
.obj/release-shared/qdrawhelper.o: In function `qInitDrawhelperAsm()’:
qdrawhelper.cpp:(.text+0×12ff0): undefined reference to `qt_blend_rgb32_on_rgb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)’
qdrawhelper.cpp:(.text+0×12ff4): undefined reference to `qt_blend_argb32_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)’
qdrawhelper.cpp:(.text+0×12ff8): undefined reference to `qt_blend_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)’
qdrawhelper.cpp:(.text+0×12ffc): undefined reference to `qt_blend_rgb16_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)’
qdrawhelper.cpp:(.text+0×13000): undefined reference to `qt_blend_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)’
qdrawhelper.cpp:(.text+0×1300c): undefined reference to `qt_scale_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, int)’
qdrawhelper.cpp:(.text+0×13010): undefined reference to `qt_scale_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, int)’
qdrawhelper.cpp:(.text+0×1301c): undefined reference to `qt_transform_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)’
qdrawhelper.cpp:(.text+0×13020): undefined reference to `qt_transform_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)’
qdrawhelper.cpp:(.text+0×13024): undefined reference to `qt_alphamapblit_quint16_neon(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int, QClipData const*)’
qdrawhelper.cpp:(.text+0×13028): undefined reference to `qt_memrotate90_16_neon(unsigned char const*, int, int, int, unsigned char*, int)’
qdrawhelper.cpp:(.text+0×1302c): undefined reference to `qt_blend_argb32_on_argb32_scanline_neon(unsigned int*, unsigned int const*, int, unsigned int)’
qdrawhelper.cpp:(.text+0×13030): undefined reference to `comp_func_solid_SourceOver_neon(unsigned int*, int, unsigned int, unsigned int)’
qdrawhelper.cpp:(.text+0×13034): undefined reference to `comp_func_Plus_neon(unsigned int*, unsigned int const*, int, unsigned int)’
qdrawhelper.cpp:(.text+0×13038): undefined reference to `qt_destFetchRGB16_neon(unsigned int*, QRasterBuffer*, int, int, int)’
qdrawhelper.cpp:(.text+0×1303c): undefined reference to `qt_destStoreRGB16_neon(QRasterBuffer*, int, int, unsigned int const*, int)’
qdrawhelper.cpp:(.text+0×13044): undefined reference to `qt_memrotate270_16_neon(unsigned char const*, int, int, int, unsigned char*, int)’
qdrawhelper.cpp:(.text+0×13048): undefined reference to `qt_memfill32_neon(unsigned int*, unsigned int, int)’
qdrawhelper.cpp:(.text+0×1304c): undefined reference to `qt_fetch_radial_gradient_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)’
collect2: ld returned 1 exit status
make2: *** [../../lib/libQtGui.so.5.0.0] Error 1
make1: *** [sub-gui-make_first] Error 2
make1: *** Waiting for unfinished jobs….
make: *** [sub-src-make_first] Error 2


More information about the Development mailing list