bitbake meta-toolchain-qt5 for Raspberry Pi board.



  • I have a working Yocto 2.1 Krogoth line with Qt 5.6.2 version. I have built an image for Nitrogen6x board, and was able to successfully extract the Qt5 toolchain & SDK and developed a working Qt application to run on Nitrogen board. Now, I wanted to use the same Yocto and Qt support to be built for Raspberry Pi 2 board, and have the same application to run on Raspberry Pi board to verify that the Yocto line I created will work on multiple hardware platforms.

    I have made the necessary changes in local.conf and was able to build an image for Raspberry Pi board, I have got the Yocto OS boot on Raspberry pi board. In order to build my Qt application for
    Raspberry Pi board, I tried to extract the Qt5 toolchain by running the below command (same way that I followed for Nitrogen board).

    bitbake meta-toolchain-qt5

    but, my build was failed with the below errors:

    
    /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git/configure: 1: /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git/configure: /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git/config.tests/unix/makeabs: not found
    Performing shadow build...
    Preparing build tree...
    Running configuration tests (phase 1)...
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git/mkspecs/linux-oe-g++/../oe-device-extra.pri
    arm-poky-linux-gnueabi-g++ -march=armv7ve -marm -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2 -c -fvisibility=hidden fvisibility.c
    Symbol visibility control enabled.
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot open crt1.o: No such file or directory
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot open crti.o: No such file or directory
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot open crtbegin.o: No such file or directory
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot open crtend.o: No such file or directory
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot open crtn.o: No such file or directory
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot find -lgcc
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot find -lgcc
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot find -lgcc
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: cannot find -lgcc
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libstdc++.so uses VFP register arguments, output does not
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libm.so uses VFP register arguments, output does not
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/lib/libgcc_s.so.1 uses VFP register arguments, output does not
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/lib/libc.so.6 uses VFP register arguments, output does not
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-ld.gold: error: /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/lib/ld-linux-armhf.so.3 uses VFP register arguments, output does not
    collect2: error: ld returned 1 exit status
    arm-poky-linux-gnueabi-g++ -march=armv7ve -marm -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2 -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c
    bsymbolic_functions.c:2:2: error: #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."
     #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."
      ^
    Symbolic function binding disabled.
    DEFAULT_INCDIRS="/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/include/c++/5.3.0
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/include/c++/5.3.0/arm-poky-linux-gnueabi
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/include/c++/5.3.0/backward
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/gcc/arm-poky-linux-gnueabi/5.3.0/include
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/include-fixed
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/include
    "
    DEFAULT_LIBDIRS="/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib
    /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/lib
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/arm-poky-linux-gnueabi/5.3.0
    "
    Done running configuration tests.
    <srcbase> = /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git 
    <outbase> = /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/build 
    Creating qmake...
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    WARNING: Unable to find file /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++/../oe-device-extra.pri
    make: Nothing to be done for `first'.
    Running configuration tests (phase 2)...
    Found pkg-config from $PATH: /home/krogoth-next/rpi-build/tmp/sysroots/i686-linux/usr/bin/pkg-config
    Determining architecture... ()
    arm-poky-linux-gnueabi-g++  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2 -c -pipe  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0=/usr/src/debug/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0 -fdebug-prefix-map=/home/krogoth-next/rpi-build/tmp/sysroots/i686-linux= -fdebug-prefix-map=/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2=  -fvisibility-inlines-hidden -g -Wall -W -fPIC  -I../../../git/config.tests/arch -I. -I../../../git/mkspecs/linux-oe-g++ -o arch.o ../../../git/config.tests/arch/arch.cpp
    arm-poky-linux-gnueabi-g++  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o arch arch.o    
        Found architecture in binary
    CFG_CPUFEATURES=" neon"
    CFG_ARCH="arm"
    Determining architecture... ()
    
    *
    *
    *
                ^
    arm-poky-linux-gnueabi-g++  -march=armv7ve -marm -mfpu=neon-vfpv4  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -o egl egl.o   -lGLESv2 -lvchostif -lbcm_host -lvcos -lvchiq_arm -pthread -lEGL 
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_GetRenderbufferParameteriv'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `gl20_client_state_init'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `gl11_client_state_init'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glintAttribPointer'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_GenFramebuffers'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_buffer_info_get'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glDiscardFramebufferEXT'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_FramebufferTexture2D'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_IsRenderbuffer'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_set_error'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_BindFramebuffer'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_GenRenderbuffers'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_set_error_api'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_BindRenderbuffer'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glBufferSubData'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_GetFramebufferAttachmentParameteriv'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_CheckFramebufferStatus'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_FramebufferRenderbuffer'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_RenderbufferStorage'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_DeleteRenderbuffers'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_GenerateMipmap'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_buffer_info_set'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glPointSizePointerOES'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_DeleteFramebuffers'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_IsFramebuffer'
    /home/krogoth-next/rpi-build/tmp/sysroots/raspberrypi2/usr/lib/libEGL.so: undefined reference to `glxx_client_state_free'
    collect2: error: ld returned 1 exit status
    make: *** [egl] Error 1
    EGL disabled.
     The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces.
     You might need to modify the include and library search paths by editing
     QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/git/mkspecs/linux-oe-g++.
    WARNING: exit code 1 from a shell command.
    ERROR: Function failed: do_configure (log file is located at /home/krogoth-next/rpi-build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/qtbase/5.6.2+gitAUTOINC+b4ada3f0d8-r0/temp/log.do_configure.20749)
    

    I see that the Qt mkspec is pointing to linux-oe-g++ (which I suppose was intended for Nitrogen board). Is there some configuration that I need to set in order to build the toolchain for Raspberry Pi.


  • administrators

    Hi @chaithubk
    Please don't repost the same question again.
    Use the thread you already opened
    https://forum.qt.io/topic/79069/bitbake-meta-toolchain-qt5-for-raspberry-pi-board


Log in to reply