Qt5 Beta1/Beta2 on TI platforms (Beaglebone/ Beagleboard/ 37x/ 335x)
This page is outdated. Refer to http://gpupowered.org/node/16 for Qt5.0.0 version updates.
Note: Refer to Qt5 Alpha setup page, for setup of sgxconfiguro.
In addition to bugfixes, Qt5 Beta1/Beta2 is interesting compared to Alpha, due to the inclusion of Linuxfb platform package.
Pre-requisites for Qt5 build:
- TI Graphics SDK (4.05 or later)
- Recent filesystem (GCC 4.5 or later)
- ARM cross Toolchain (GCC 4.5 or later), example from below:
Configuring Qt5 is fairly easy - and can be done without messing with creating new mkspecs, if the below are met:
- a linaro toolchain (linux-arm-gnueabi-)
- sgxconfiguro is used (package config for TI Graphics SDK - egl and x11)
- force-pkg-config is used
If this does not seem clear, the older tried-and-tested-method of specifying all possible (and needed) paths in the qmake.conf as below will also work :
The below method adopts the first approach and uses the standard Qt5 supplied linux-arm-gnueabi-g++ mkspec without change
$./configure -prefix /home1/prabu/qt5_install -release -make libs -xplatform linux-arm-gnueabi-g++ -opengl es2 -confirm-license -opensource -no-xcb -no-wayland -force-pkg-config -make examples -make demos -verbose
Note: All source changes are available in https://github.com/prabindh/qt-configs/tree/master/qt5_beta1. This is the same patchset used for Beta2 also.
Changes made for Beta1 / Beta2:
Compared to Alpha, several changes are required in building Beta1/ Beta2.
- GLchar is undefined in current gl2.h header from Graphics SDK package. Hence an updated gl2.h header is needed. Refer to gl2.h.patch in source archive for this simple patch (Note: If using Graphics SDK 4.08 or later, this issue is already fixed and updated header is part of package).
- Configuration needs to be done using the same steps as in Alpha build. Patch for configure script is also provided in github archive above.
- After correct configuration, OpenGL (ES2), eglfs, linuxfb and NEON should be enable in the configurations listed. Now the package can be built.
- During compilation of neon.S files, compilation error occurs due to inclusion of PCH files that are not available
arm-linux-gnueabi-gcc -c -include .pch/release-shared/QtGui <... > -o .obj/release-shared/pixman-arm-neon-asm.o ../3rdparty/pixman/pixman-arm-neon-asm.S
cc1: fatal error: .pch/release-shared/QtGui: No such file or directory
make: *** [.obj/release-shared/pixman-arm-neon-asm.o] Error 1
To avoid this, reference to QtGui can be removed from the src/gui/Makefile itself as a temporary measure (changes will be overwritten on a rebuild), or configure needs to be done with "-no-pch" option.
Search for ".obj/release-shared/pixman-arm-neon-asm.o:" in src/gui/Makefile
Remove this "-include .pch/release-shared/QtGui"
- Once successfully built, Qt5 Beta1 can be installed to target filesystem.
If successfully built, the below plugins should be available in the folder
libqlinuxfb.so [new in Qt5 Beta1]
libqminimalegl.so [new in Qt5 Beta1]
Performance numbers on target