[yocto] [meta-qt5][meta-raspberrypi]: Qt5 with EGL support for the Raspberry through linux-oe-g++

Julien Gueytat contact at jgueytat.fr
Thu Apr 21 01:15:23 PDT 2016


Just to keep you informed that a bug report has been opened to Qt:
https://bugreports.qt.io/browse/QTBUG-52739

We might save some patches in layers by solving this,
Thanks for helping,

Le 20/04/2016 01:46, Julien Gueytat a écrit :
> Hi again guys,
>
> after more investigations:
>
> I found out that the default value -lEGL comes from 
> ./mkspecs/common/linux.conf which is included in 
> ./mkspecs/linux-oe-g++/qmake.conf
>
> linux-oe-g++ being the only generic mkspecs that should be used in Yocto
>
> So! At the time the configuration enters egl.pro the content of the 
> variables LIBS and QMAKE_EGL_LIBS are still a bit weird for me :
>
> 1- LIBS already has the content of the QMAKE_EGL_LIBS content from the 
> result of the pkg-config command.
> 2- QMAKE_EGL_LIBS has the content of the default value found in 
> ./mkspecs/common/linux.conf
>
> There are two options to have it properly working:
> - First and easy option : remove the QMAKE_EGL_LIBS default variable 
> in ./mkspecs/linux-oe-g++/qmake.conf since the good libs seems to 
> already been present in the LIBS variable.
> - Second option : understand why the LIBS variable is already properly 
> set and why the QMAKE_EGL_LIBS properly computed in the configure and 
> present .qmake.vars is not used. (I would say that the device spec 
> overrides the one from qmake spec... I did not dig further yet.)
>
> Anyway I'm pretty sure the trouble comes from meta-qt5 side now. I'm 
> pretty sure meta-raspberrypi maintainers can confirm that their master 
> branch handles pkg-config stuff now.
>
> Thanks advance for having a look on this guys,
> Best Regards
>
>
> Le 19/04/2016 10:46, Julien Gueytat a écrit :
>> Hi,
>>
>> I still can't figure out the patch to apply in meta-qt5 to get EGL 
>> support with the Raspberry.
>>
>> The test to check EGL does not pass and fails with the following command:
>>
>> arm-poky-linux-gnueabi-g++  -march=armv7-a -marm -mthumb-interwork 
>> -mfloat-abi=hard -mfpu=neon-vfpv4 -mtune=cortex-a7 
>> --sysroot=/home/jgueytat/projects/LightPixels/poky/build/tmp/sysroots/lightpixels 
>> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -o egl egl.o   
>> -lGLESv2 -lbcm_host -lvchostif -lvcos -lvchiq_arm -pthread -lEGL
>>
>>
>> Here is the content of the file egl.pro:
>>
>> $ cat egl.pro
>> SOURCES = egl.cpp
>>
>> for(p, QMAKE_LIBDIR_EGL) {
>>     exists($$p):LIBS += -L$$p
>> }
>>
>> message("In egl.pro - 1: QMAKE_LIBS_EGL = $$QMAKE_LIBS_EGL")
>> message("In egl.pro - 1: LIBS = $$LIBS")
>>
>> !isEmpty(QMAKE_INCDIR_EGL): INCLUDEPATH += $$QMAKE_INCDIR_EGL
>> !isEmpty(QMAKE_LIBS_EGL): LIBS += $$QMAKE_LIBS_EGL
>>
>> message("In egl.pro - 2: QMAKE_LIBS_EGL = $$QMAKE_LIBS_EGL")
>> message("In egl.pro - 2: LIBS = $$LIBS")
>>
>> CONFIG -= qt
>>
>> In the main ./configure file of qtbase:
>>
>> | In configure #1: QMAKE_LIBS_EGL =
>> | In configure #2: QMAKE_LIBS_EGL = -lEGL -lGLESv2 -lbcm_host 
>> -lvchostif -lbcm_host -lvcos -lvchiq_arm -pthread
>>
>> The variable QMAKE_LIBS_EGL is set properly.
>>
>>
>> In the ./config.tests/qpa/egl/egl.pro file:
>>
>> | Project MESSAGE: In egl.pro - 1: QMAKE_LIBS_EGL = -lEGL
>> | Project MESSAGE: In egl.pro - 1: LIBS = -lEGL -lGLESv2 -lbcm_host 
>> -lvchostif -lvcos -lvchiq_arm -pthread
>> | Project MESSAGE: In egl.pro - 2: QMAKE_LIBS_EGL = -lEGL
>> | Project MESSAGE: In egl.pro - 2: LIBS = -lEGL -lGLESv2 -lbcm_host 
>> -lvchostif -lvcos -lvchiq_arm -pthread -lEGL
>>
>>
>> *What I see is that:*
>> In the configure file the variable QMAKE_LIBS_EGL is properly set 
>> through pkg-config.
>> In the egl.pro file... The variable LIBS gets the content of 
>> QMAKE_LIBS_EGL and the variable QMAKE_LIBS_EGL gets back to its 
>> default -lEGL.
>>
>> In the end with have -lGLESv2 before -lEGL and this does not link.
>>
>> I checked also the content of .qmake.vars:
>> grep QMAKE_LIBS_EGL .qmake.vars
>> QMAKE_LIBS_EGL = -lEGL -lGLESv2 -lbcm_host -lvchostif -lbcm_host 
>> -lvcos -lvchiq_arm -pthread
>>
>>
>> The command QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL" seems to 
>> have his job done too late...
>>
>> If someone has an idea to get the proper correction done...
>>
>> Best Regards,
>> Julien
>>
>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20160421/fbe336e1/attachment.html>


More information about the yocto mailing list