[meta-freescale] Problems with softfp vs hard configuration with Qt5

Mario Rodriguez mario.rodriguez at go-huml.com
Wed Feb 11 09:50:53 PST 2015


I have now Qt5 in the dizzy branch working. I compiled a couple of easy examples and it looks like it is working.
Now I tried a bigger example and I have some weird problems.

I am using the following c/c++ compiler flags for my i.mx sabre lite from boundary devices:
-mcpu=cortex-a9 -march=armv7-a -O3 -fomit-frame-pointer -mfpu=neon -ftree-vectorize -mfloat-abi=hard

Now on
#include <QApplication>

I got the following error:

In file included from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/features.h:389:0,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/c++/4.9.1/arm-poky-linux-gnueabi/bits/os_defines.h:39,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/c++/4.9.1/arm-poky-linux-gnueabi/bits/c++config.h:430,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/c++/4.9.1/utility:68,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qcompilerdetection.h:846,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qglobal.h:78,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtCore/qcoreapplication.h:45,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWidgets/qapplication.h:45,
                 from /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWidgets/QApplication:1,
                 from /home/yocto/Developer/CamlMock/CamlMock/main.cpp:1:
/opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/gnu/stubs.h:7:29: fatal error: gnu/stubs-soft.h: No such file or directory
# include <gnu/stubs-soft.h>
                             ^

Even though I use -mfloat-abi=hard !!!

It looks like __ARM_PCS_VFP is not getting defined....

Anyway, I force to define __ARM_PCS_VFP but then I got the following linking errors:
Linking CXX executable Qt5camlMock
/usr/bin/cmake -E cmake_link_script CMakeFiles/Qt5camlMock.dir/link.txt --verbose=1
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++      -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed CMakeFiles/Qt5camlMock.dir/main.cpp.o CMakeFiles/Qt5camlMock.dir/qrc_qml.cpp.o CMakeFiles/Qt5camlMock.dir/qrc_images.cpp.o CMakeFiles/Qt5camlMock.dir/Qt5camlMock_automoc.cpp.o  -o Qt5camlMock -rdynamic /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Qml.so.5.3.2 /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Quick.so.5.3.2 /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Widgets.so.5.3.2 /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Qml.so.5.3.2 /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Network.so.5.3.2 /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Gui.so.5.3.2 /opt/poky/1.7.1/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/libQt5Core.so.5.3.2
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: error: Qt5camlMock uses VFP register arguments, CMakeFiles/Qt5camlMock.dir/main.cpp.o does not
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: failed to merge target specific data of file CMakeFiles/Qt5camlMock.dir/main.cpp.o
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: error: Qt5camlMock uses VFP register arguments, CMakeFiles/Qt5camlMock.dir/qrc_qml.cpp.o does not
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: failed to merge target specific data of file CMakeFiles/Qt5camlMock.dir/qrc_qml.cpp.o
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: error: Qt5camlMock uses VFP register arguments, CMakeFiles/Qt5camlMock.dir/qrc_images.cpp.o does not
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: failed to merge target specific data of file CMakeFiles/Qt5camlMock.dir/qrc_images.cpp.o
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: error: Qt5camlMock uses VFP register arguments, CMakeFiles/Qt5camlMock.dir/Qt5camlMock_automoc.cpp.o does not
/opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.9.1/ld: failed to merge target specific data of file CMakeFiles/Qt5camlMock.dir/Qt5camlMock_automoc.cpp.o
collect2: error: ld returned 1 exit status
make[2]: *** [Qt5camlMock] Error 1
make[2]: Leaving directory `/home/yocto/Developer/CamlMock/mx6Build'
make[1]: *** [CMakeFiles/Qt5camlMock.dir/all] Error 2
make[1]: Leaving directory `/home/yocto/Developer/CamlMock/mx6Build'
make: *** [all] Error 2

Which compiler flags should I use? Softfp or hard? It looks like there is a mixture and the compiler doesn't like that.

Regards,
Mario

________________________________

Mario Rodriguez M.Sc., Software Architect
Phone: +49 89 45 23 47 - 297


jambit GmbH
Erika-Mann-Str. 63, 80636 M?nchen
Phone: +49 89 45 23 47 - 0, Fax: +49 89 45 23 47 - 70

http://www.jambit.com where innovation works

Gesch?ftsf?hrer: Peter F. Fellinger, Markus Hartinger
Sitz: M?nchen; Registergericht: M?nchen, HRB 129139
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/meta-freescale/attachments/20150211/72a4df08/attachment.html>


More information about the meta-freescale mailing list