Bitbaking meta-toolchain-qt5 gives multiple errors

Hi, I have found multiple errors while bitbaking meta-toolchain-qt5.
Those errors are:

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot open crt1.o: No such file or directory

home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot open crti.o: No such file or directory

/home/user/user/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot open crtbegin.o: No such file or directory

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot open crtend.o: No such file or directory

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot open crtn.o: No such file or directory

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot find -lgcc

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot find -lgcc

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot find -lgcc

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: cannot find -lgcc

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: /home/user/oe-core/build/tmp-glibc/sysroots/colibri-vf/usr/lib/libstdc++.so uses VFP register arguments, output does not

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: /home/user/oe-core/build/tmp-glibc/sysroots/colibri-vf/usr/lib/libm.so uses VFP register arguments, output does not

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: /home/user/oe-core/build/tmp-glibc/sysroots/colibri-vf/lib/libgcc_s.so.1 uses VFP register arguments, output does not

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: /home/user/oe-core/build/tmp-glibc/sysroots/colibri-vf/lib/libc.so.6 uses VFP register arguments, output does not

/home/user/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/arm-angstrom-linux-gnueabi/arm-angstrom-linux-gnueabi-ld.gold: error: /home/user/oe-core/build/tmp-glibc/sysroots/colibri-vf/lib/ld-linux-armhf.so.3 uses VFP register arguments, output does not

I’m far from being a linux expert and I don’t know where are this errors coming from since I builded the tutorial from toradex step-by-step

EDIT:
Information about my build as requested:
Versions of my builds:

Angstrom v2016.12 for ColiBri-VF
Added Qt Layer to the conf. (Qt Vers. 5.7)

Bitbake command:

bitbake -k meta-toolchain-qt5

Next action:

After succesfully building the toolchain I plan on building the linux ldx image with Qt

I Have attached the log file, also as requested.
log file
END OF EDIT

What exact versions of things are you trying to build? What exact bitbake build target? Attaching full log file may prove helpful as well.

I have edited my question to add all the information you requested.

I had a look at your log files, it does not seem to me that the posted errors lead to the failure of the build, it seems that this is just an intermediate test. Building continues after those messages. However, the build fails later on with the following error:

checking for OpenGL... 
arm-angstrom-linux-gnueabi-g++  -march=armv7-a -mthumb -mfpu=neon  -mfloat-abi=hard --sysroot=/home/foodcircle/oe-core/build/tmp-glibc/sysroots/colibri-vf -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/qtbase/5.7.1+gitAUTOINC+a55f36211e-r0=/usr/src/debug/qtbase/5.7.1+gitAUTOINC+a55f36211e-r0 -fdebug-prefix-map=/home/foodcircle/oe-core/build/tmp-glibc/sysroots/x86_64-linux= -fdebug-prefix-map=/home/foodcircle/oe-core/build/tmp-glibc/sysroots/colibri-vf=  -fvisibility-inlines-hidden -O2 -Wall -W -fPIC  -I../../../../git/config.tests/unix/opengldesktop -I. -I../../../../git/mkspecs/linux-oe-g++ -o opengldesktop.o ../../../../git/config.tests/unix/opengldesktop/opengldesktop.cpp
../../../../git/config.tests/unix/opengldesktop/opengldesktop.cpp:43:19: fatal error: GL/gl.h: No     such file or directory
 #include <GL/gl.h>
                   ^
compilation terminated.
Makefile:186: recipe for target 'opengldesktop.o' failed
make: *** [opengldesktop.o] Error 1

Do you use the morty branch of meta-qt5? Can you provide the initial output of OpenEmbedded which shows the overview of layers and version in use?

We just recently built such an image, I am not aware of any failure.

Hi Stefan, thak you for your help, I don’t quite understand what do you mean by “morty”, I followed the tutorial as it is, I didn’t make any modifications to anything at all. The initial output is this one:

 Build Configuration:
    BB_VERSION        = "1.32.0"
    BUILD_SYS         = "x86_64-linux"
    NATIVELSBSTRING   = "Ubuntu-16.04"
    TARGET_SYS        = "arm-angstrom-linux-gnueabi"
    MACHINE           = "colibri-vf"
    DISTRO            = "angstrom"
    DISTRO_VERSION    = "v2016.12"
    TUNE_FEATURES     = "arm armv7a vfp thumb neon       callconvention-hard"
    TARGET_FPU        = "hard"
    meta-angstrom     = "HEAD:4f27481ab24ae0fab737771d066b8b33c9c9b3c7"
    meta-toradex-nxp  = "HEAD:d351e11b76c004afbf0f37d5481266bafdb015ee"
    meta-freescale    = "HEAD:fc804d29ee85d58e9bb66f7319e749b53e192457"
    meta-freescale-3rdparty = "HEAD:a78b17c24e66567f272ad47f9d6300e6b1b90c29"
    meta-toradex-tegra = "HEAD:fecccd7ebf62b8da88569d229b5c7bb3938aaa76"
    meta-jetson-tk1   = "HEAD:e8b87fe8da7c6fcffa37ab245f50082953cc1ee1"
    meta-toradex-bsp-common = "HEAD:554adccf11f2ba2947ed221307ddd703c0889967"
    meta-linaro-toolchain = "HEAD:b6d0b81584c3395708b27ffe7b8fe248ef674839"
    meta-oe           
    meta-efl          
    meta-gpe          
    meta-gnome        
    meta-xfce         
    meta-initramfs    
    meta-systemd      
    meta-networking   
    meta-multimedia   
    meta-python       = "HEAD:fe5c83312de11e80b85680ef237f8acb04b4b26e"
    meta-lxde         = "HEAD:1bd36a4d0f7e1e9fdea9c4c991188bc1dc9da421"
    meta-browser      = "HEAD:7d37ae2adec5cc5ea27367ce125bc7bce2310ca1"
    meta-qt4          = "HEAD:2c7f8df9039be498f8a2232d1428adb7f4e5e800"
    meta-qt5          = "HEAD:3601fd2c5306ac6d5d0d536e0be8cbb90da9b4c1"
    meta-freescale-distro = "HEAD:cd5c7a2539f40004f74126e9fdf08254fd9a6390"
    meta-toradex-demos = "HEAD:298a87246b9ea2480520d3f698aaaedbc490c8b8"
    meta              = "HEAD:ddf907ca95a19f54785079b4396935273b3747f6"

I also get the following warning :

WARNING: No recipes available for:
  /home/foodcircle/oe-core/build/../layers/meta-jetson-tk1/recipes-graphics/mesa/mesa_11.1.1.bbappend

“morty” is the OpenEmbedded branch which our 2.7 BSP series is based on. Often layers have dependencies between each other which are somewhat implicit, so it is best to use the same branch of every layer. Your build configuration looks good, I will try to reproduce your issue.

This warning likely does not affect i.MX 7.

these are my conf files. download, can you check if everything is ok with those ? I think the error might be there. (I had to do some changes to build the qt layer and maybe I made an error I can’t detect)

Thank for sharing the configuration. I see you are removing X11 by DISTRO_FEATURES_remove = "x11 wayland". As the OpenEmbedded (Core) article mentions, this is only supported with i.MX6 devices. It does not work on non-GPU devices since there is no software OpenGL without X11, you can read the details in this thread. So far, we only verify builds of Qt5 with X11 with our non-OpenGL devices.

That said, it should be possible to compile Qt with the 2D renderer only.

You can also try to use Qt’s boot2qt which should work with non-GPU devices and the 2D renderer without modifications. You can use the commercial variant Qt for Device Creation which even comes with prebuilt images, or alternatively build it yourself from the layers available at code.qt.io, the README has basic instructions.

This article has a bit more information about the Qt Quick 2D Renderer. There is a recipe available for the Qt 5.7 version of the 2D renderer in the community version of meta-qt5. However, the Qt 5.7 2D renderer comes with a fake OpenGL library and headers, but as far as I can tell this part is not being taken care of in that recipe. So using the 2D renderer on non-GPU modules with the community meta-qt5 layer would need further work on this recipes…

I wont be using QtQuick, is there any way I can build QtWidget apps without the desktop environment ?

This should work yes, make sure to remove opengl from DISTRO_FEATURES:

DISTRO_FEATURES_remove = "x11 wayland opengl"

Add linuxfb to qtbase PACKAGECONFIG, e.g. in meta-toradex-demos/recipes-qt/qt5/qtbase_%.bbappend:

PACKAGECONFIG_append = " linuxfb"

You probably have to restart the build from scratch due to changes to DISTRO_FEATURES. You need to make sure that you don’t use qtdeclarative

Allright I’m going to leave the thing building from scratch overnight (I’m from es), finally the files I used were these I would appreciate if you could double check everything is ok. And finally, now can I bitbake the bitbake -k console-tdx-image right ?

Thanks a lot for your help Stefan!

It did run through for me, but only after I removing

qtsystems-dev \
qtsystems-mkspecs \

from meta-qt5/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb and

qtsystems \
qtsystems-tools \
qtsystems-qmlplugins \

from recipes-angstrom/packagegroups/packagegroup-qt5.bb

The meta toolchain qt5 went just perfect! Somehow the bitbake of the image gave me the following error relating to cinematicexperience.

ERROR: cinematicexperience-1.0-r0 do_configure: Error calling /home/foodcircle/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/qt5/qmake -makefile -o Makefile      /home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/cinematicexperience/1.0-r0/Qt5_CinematicExperience_rpi_1.0//Qt5_CinematicExperience.pro 
ERROR: cinematicexperience-1.0-r0 do_configure: Function failed: do_configure (log file is located at /home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/cinematicexperience/1.0-r0/temp/log.do_configure.18722)
ERROR: Logfile of failure stored in: /home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/cinematicexperience/1.0-r0/temp/log.do_configure.18722
Log data follows:
| DEBUG: Executing python function sysroot_cleansstate
| DEBUG: Python function sysroot_cleansstate finished
| DEBUG: Executing shell function qmake5_base_preconfigure
| DEBUG: Shell function qmake5_base_preconfigure finished
| DEBUG: Executing shell function do_configure
| NOTE: qmake prevar substitution: ' '
| ERROR: Error calling /home/foodcircle/oe-core/build/tmp-glibc/sysroots/x86_64-linux/usr/bin/qt5/qmake -makefile -o Makefile      /home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/cinematicexperience/1.0-r0/Qt5_CinematicExperience_rpi_1.0//Qt5_CinematicExperience.pro
| sh: 1: OE_QMAKE_CXX: not found
| sh: 1: OE_QMAKE_CXXFLAGS: not found
| Info: creating stash file /home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/cinematicexperience/1.0-r0/build/.qmake.stash
| Project ERROR: Unknown module(s) in QT: quick
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /home/foodcircle/oe-core/build/tmp-glibc/work/armv7at2hf-neon-angstrom-linux-gnueabi/cinematicexperience/1.0-r0/temp/log.do_configure.18722)
ERROR: Task (/home/foodcircle/oe-core/build/../layers/meta-qt5/recipes-qt/examples/cinematicexperience_1.0.bb:do_configure) failed with exit code '1'

the bitbake command was the bitbake -k console-tdx-image also, I supose that once I get the image up and running I’ll have to call platform when executing my qt software.

And who added cinematicexperience? Probably does’n make any much sense in such an environment isn’t it?

Yeah cinematicexperience makes use of Qml/Qt Quick, which you don’t have. So you should not add cinematicexperience but the individual Qt components your project needs.

Btw, there is a recipe tool, which as far as I understand should help you create a recipe with the correct dependencies in the meta-qt5 layer under lib/recipetool/create_qt5.py.

I forgot about including cinematixexperience in the build.conf, once I removed it everything went just perfect! Thank you both for your help!