Cannot properly ./configure to install Qt with eglfs and opegles2 support.

916 views
Skip to first unread message

Jeremias Ramirez

unread,
Oct 21, 2020, 10:11:31 AM10/21/20
to BeagleBoard
Hello to everyone.
I'm Jeremias, from Argentina.
Recently I started working with the BBB and Qt software.
Tooks me a long time, but i finally be able to install it and make some tests.
But, i never can run an app using eglfs, when I run an Qt example project , i get:

Could not find the Qt platform plugin "eglfs" in ""

After a time, i see i never install so many things within the Qt installation, so i read a lot and i start over again.
But,  in the ./configure step, i got this error:

My configure:

sudo ./configure -no-gcc-sysroot -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/bin/armv8l-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -qt-zlib -qt-libpng -no-openssl -opengl es2 -eglfs -v

Error:

ERROR: Feature 'opengles2' was enabled, but the pre-condition 'config.win32 || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.

ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && features.egl' failed.

ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.


Config.log snippet:

Trying source 1 (type makeSpec) of library opengl_es2 ...
None of [libGLESv2.so libGLESv2.a] found in [] and global paths.
None of [libEGL.so libEGL.a] found in [] and global paths.
None of [libIMGegl.so libIMGegl.a] found in [] and global paths.
None of [libsrv_um.so libsrv_um.a] found in [] and global paths.
  => source produced no result.

I'm really trying to fix it by myself, but i can't, i don't want to give up with this...

Thanks in advice for any reply.

jonnymo

unread,
Oct 21, 2020, 11:18:40 AM10/21/20
to Beagle Board
For EGLS on the Beaglebone, I found this site to be useful:

These previous posts might be helpful to you as well:


For the error you are seeing, do you have the QMAKE environment variables set as the error suggests?  The should point to your sysroot location:
ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.  


Cheers,

Jon 


--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/5a7594ee-6abc-4747-9aa6-525be416382fo%40googlegroups.com.

Jeremias Ramirez

unread,
Oct 21, 2020, 12:23:59 PM10/21/20
to BeagleBoard
Hi Jon, thank you for the reply.

Thanks for the link, the first may be useful later, when this works.
The mailing links, are unavailale for me.

About the QMAKE variables, I try to change the paths on qmake.conf within the beagleboard device folder, but i dont know if I'm doing it wrong or something else because the error doesn't seem to change.

At least my configurations doesn't aply to those empty [].

None of [libGLESv2.so libGLESv2.a] found in [] and global paths.

Do you know how to edit those paths inside the ./configure command line to be sure be applied?

Thanks for the link, the first may be useful later, when this works.
The mailing links, are unavailale for me.

Thank you very much for your time.
To unsubscribe from this group and stop receiving emails from it, send an email to beagl...@googlegroups.com.

jonnymo

unread,
Oct 21, 2020, 12:45:00 PM10/21/20
to Beagle Board

Dennis Lee Bieber

unread,
Oct 21, 2020, 1:15:09 PM10/21/20
to Beagleboard
On Wed, 21 Oct 2020 07:11:31 -0700 (PDT), in
gmane.comp.hardware.beagleboard.user "'Jeremias Ramirez' via BeagleBoard"
<beagleboard-/JYPxA39Uh5...@public.gmane.org> wrote:


>
>Trying source 1 (type makeSpec) of library opengl_es2 ...
>None of [libGLESv2.so libGLESv2.a] found in [] and global paths.
>None of [libEGL.so libEGL.a] found in [] and global paths.
>None of [libIMGegl.so libIMGegl.a] found in [] and global paths.
>None of [libsrv_um.so libsrv_um.a] found in [] and global paths.

Have any of those been installed?

debian@beaglebone:~$ apt search libgles
Sorting... Done
Full Text Search... Done
<SNIP>
libgles2/stable 1.1.0-1 armhf
Vendor neutral GL dispatch library -- GLESv2 support

libgles2-mesa/unknown 19.1.6-1rcnee2~buster+20200513 armhf
transitional dummy package

<SNIP>


debian@beaglebone:~$ apt search libegl
Sorting... Done
Full Text Search... Done
<SNIP>
libegl1/stable 1.1.0-1 armhf
Vendor neutral GL dispatch library -- EGL support

<SNIP>


--
Dennis L Bieber

jonnymo

unread,
Oct 21, 2020, 1:50:49 PM10/21/20
to Beagle Board
If they are doing cross compiling from a remote host, then should they not be using the BB specific libs under sysroot and not the host OpenGL libs?

Jon 

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

Jeremias Ramirez

unread,
Oct 21, 2020, 3:51:23 PM10/21/20
to BeagleBoard
Hi Dennis, thanks for the reply.
This is the output of the apt search commands:

ubuntu@beaglebone:~$ apt search libgles

Sorting... Done
Full Text Search... Done
libgles1/bionic-updates,now 1.0.0-2ubuntu2.3 armhf [installed,automatic]
  Vendor neutral GL dispatch library -- GLESv1 support

libgles2/bionic-updates,now 1.0.0-2ubuntu2.3 armhf [installed,automatic]

  Vendor neutral GL dispatch library -- GLESv2 support

libgles2-mesa/bionic-updates 20.0.8-0ubuntu1~18.04.1 armhf
  transitional dummy package

libgles2-mesa-dev/bionic-updates,now 20.0.8-0ubuntu1~18.04.1 armhf [installed]
  free implementation of the OpenGL|ES 2.x API -- development files

ubuntu@beaglebone:~$ apt search libegl

Sorting... Done
Full Text Search... Done
libegl-mesa0/bionic-updates,now 20.0.8-0ubuntu1~18.04.1 armhf [installed,automatic]
  free implementation of the EGL API -- Mesa vendor library

libegl1/bionic-updates,now 1.0.0-2ubuntu2.3 armhf [installed,automatic]

  Vendor neutral GL dispatch library -- EGL support

libegl1-mesa/bionic-updates 20.0.8-0ubuntu1~18.04.1 armhf
  transitional dummy package

libegl1-mesa-dev/bionic-updates,now 20.0.8-0ubuntu1~18.04.1 armhf [installed]
  free implementation of the EGL API -- development files

Jon, i've looking the links you provided, in fact, i need how to make a configuration like this:

VC_LIBRARY_PATH         = $$[QT_SYSROOT]/opt/vc/lib
VC_INCLUDE_PATH         = $$[QT_SYSROOT]/opt/vc/include

QMAKE_LIBDIR_OPENGL_ES2 = $${VC_LIBRARY_PATH}
QMAKE_LIBDIR_EGL        = $$QMAKE_LIBDIR_OPENGL_ES2
QMAKE_LIBDIR_OPENVG     = $$QMAKE_LIBDIR_OPENGL_ES2

QMAKE_INCDIR_EGL        = \
                        $${VC_INCLUDE_PATH} \
                        $${VC_INCLUDE_PATH}/interface/vcos/pthreads \
                        $${VC_INCLUDE_PATH}/interface/vmcs_host/linux
QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}

QMAKE_LIBS_OPENGL_ES2   = -lGLESv2
QMAKE_LIBS_EGL          = -lEGL -lGLESv2
QMAKE_LIBS_OPENVG       = -lEGL -lOpenVG -lGLESv2


I think, please correct me if i'm wrong, i need to change the  in this folder:
sitara@workstation:/opt/qt5bbb/qt5/qtbase/mkspecs/devices/linux-beagleboard-g++$ ls
qmake.conf  qmake.conf.bkup  qmake.conf.edited  qmake.conf.save  qplatformdefs.h

(Some of those files are backup while i'm testing)

So, right now, my qmake.conf file is:

# Extra stuff (OpenGL, DirectFB, ...)
QMAKE_INCDIR_EGL        =
QMAKE_LIBDIR_EGL        =
QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}

QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}

I try to fill those blanks with my paths, but no one works.

I think,  i'm working with the wrong file, or using wrong paths.
Do i see changes in the config.log with differents paths?
I search inside the log and when it shows the EGL error, only notice me that cant found the libraries on [ ] ,, and thats all, a pair of empty square brackets.

Again, thanks for the replies, i'm very glad to have someone to ask and talk, every site or forum with this troubles has at least a few years of inactivity.

Jeremias.

jonnymo

unread,
Oct 22, 2020, 2:54:06 AM10/22/20
to Beagle Board
I've tried to set this up and I am seeing a similar issue.  I piped the output to tee and a log file and found it is not able to locate a lib which from what I can tell is there.

This is the configure statement I used:

./configure -no-gcc-sysroot -device linux-beagleboard-g++ -device-option CROSS_COMPILE=~/development/beaglbone/bbbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot ~/development/beaglbone/bbbuild/sysroot -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -extprefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -qt-zlib -qt-libpng -no-openssl -opengl es2 -eglfs -v |& tee ~/development/beaglbone/bbbuild/config-bbgr.log


This is what I see in the log file:
/home/jomodev/development/beaglbone/bbbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/jomodev/development/beaglbone/bbbuild/sysroot -Wl,-O1 -o dbus main.o   -L/home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf -ldbus-1  -lrt -lpthread -ldl
> /home/jomodev/development/beaglbone/bbbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/7.5.0/../../../../arm-linux-gnueabihf/bin/ld: warning: libsystemd.so.0, needed by /home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf/libdbus-1.so, not found (try using -rpath or -rpath-link)
> /home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf/libdbus-1.so: undefined reference to `sd_listen_fds@LIBSYSTEMD_209'
> /home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf/libdbus-1.so: undefined reference to `sd_is_socket@LIBSYSTEMD_209'
> collect2: error: ld returned 1 exit status
> Makefile:69: recipe for target 'dbus' failed
> make: *** [dbus] Error 1
 => source failed verification.
Trying source 1 (type inline) of library dbus ...
  => source failed condition 'config.win32'.
Trying source 2 (type inline) of library dbus ...
dbus/dbus.h not found in [] and global paths.
  => source produced no result.

This seems to be what is causing the ending error for the ELS libs.
Note: -optimized-tools is not useful in -release mode.

ERROR: Feature 'opengles2' was enabled, but the pre-condition '(config.win32 && !features.opengl-dynamic) || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.

ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && !config.wasm && features.egl' failed.

ERROR: The OpenGL functionality tests failed!
You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.

From what I can tell, the library is located in my sysroot:
$ ls -lt sysroot/lib/arm-linux-gnueabihf/libsystemd.so.0
lrwxrwxrwx 1 jomodev jomodev 20 May  9 10:08 sysroot/lib/arm-linux-gnueabihf/libsystemd.so.0 -> libsystemd.so.0.25.0


Perhaps it is not looking under the sysroot/lib folder but I am not sure.

I did ensure the Opengl ES libs are installed on the Beaglebone and ran rsync to bring in the changes to sysroot and the add the lib and include ref in the qmake.conf file:
               ~/opt/qt5bb/qt-everywhere-src-5.15.1/qtbase/mkspecs/devices/linux-beagleboard-g++/qmake.conf

# Extra stuff (OpenGL, DirectFB, ...)
QMAKE_INCDIR_EGL        = '/home/jomodev/development/beaglbone/bbbuild/sysroot/usr/include'
QMAKE_LIBDIR_EGL        = '/home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so.2.1.0'

I'm not sure why it is failing for the libsystemd.so.0 but will continue to look.

Cheers,

Jon



Jeremias Ramirez

unread,
Oct 22, 2020, 6:51:35 AM10/22/20
to beagl...@googlegroups.com
I will try to reproduce your way to log the error, maybe can throw some light on this.
Thanks for your time. I really appreciate it.

Dennis Lee Bieber

unread,
Oct 22, 2020, 11:04:40 AM10/22/20
to Beagleboard
On Wed, 21 Oct 2020 12:51:23 -0700 (PDT), in
gmane.comp.hardware.beagleboard.user "'Jeremias Ramirez' via BeagleBoard"
<beagleboard-/JYPxA39Uh5...@public.gmane.org> wrote:

>Hi Dennis, thanks for the reply.
>This is the output of the apt search commands:

Okay, I'm out of ideas -- other than maybe burn a Debian image and try
the same builds from it...

>
>ubuntu@beaglebone:~$ apt search libgles
>Sorting... Done
>Full Text Search... Done
>libgles1/bionic-updates,now 1.0.0-2ubuntu2.3 armhf [installed,automatic]
> Vendor neutral GL dispatch library -- GLESv1 support
>




--
Dennis L Bieber

Dennis Lee Bieber

unread,
Oct 22, 2020, 11:07:14 AM10/22/20
to Beagleboard
On Wed, 21 Oct 2020 10:50:12 -0700, in gmane.comp.hardware.beagleboard.user
jonnymo <jonnymovo-Re5JQE...@public.gmane.org> wrote:

>If they are doing cross compiling from a remote host, then should they not
>be using the BB specific libs under sysroot and not the host OpenGL libs?
>
Based upon the OP's response, they are building on a Beagle -- but that
Beagle is running a Ubuntu image (or have some other ARM-based build
environment).


--
Dennis L Bieber

Jeremias Ramirez

unread,
Oct 22, 2020, 11:12:21 AM10/22/20
to beagl...@googlegroups.com
Hi again.
Yes, the BBB is running Ubuntu 18.04 for Arm.
The workstation is running Ubuntu 18.04 too.

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

Jeremias Ramirez

unread,
Oct 22, 2020, 11:58:29 AM10/22/20
to beagl...@googlegroups.com
I think I can run the Debian image from the board memory, I have the SD with the Ubuntu distro and I don't have other SD available rigth now.
I will try with that sysroot in a couple hours.
Thanks.

jonnymo

unread,
Oct 22, 2020, 12:33:11 PM10/22/20
to Beagle Board
I have a Debian 9.13 Docker instance on Ubuntu 20.04 that I have been building so that might be an option.  I could try a 64-bit Debian VirtualBox image but only have a 32-bit in place now.  However, I am not seeing anything that would indicate it is an Ubuntu vs Debian thing but it is possible and the libsystemd.so.0 might be an indicator. I too have been using Ubuntu 18.04 for this exercise.

Cheers,

Jon


Jeremias Ramirez

unread,
Oct 22, 2020, 12:58:31 PM10/22/20
to beagl...@googlegroups.com
Jon, which version of Qt are you trying to build?

jonnymo

unread,
Oct 22, 2020, 1:21:02 PM10/22/20
to Beagle Board

Jeremias Ramirez

unread,
Oct 22, 2020, 2:04:27 PM10/22/20
to beagl...@googlegroups.com
I'm working with 5.12.9, so I think isn't a version issue either.

jonnymo

unread,
Oct 22, 2020, 4:09:36 PM10/22/20
to Beagle Board
Yeah, I just downloaded 5.12.9 and tied that but got the same end result but more info in the log.  
Also, I am following these two links and ensured both my Host and BB have the proper libs installed and such.

Also, I have edits the qmake.conf and added the following but still no go:

QMAKE_LFLAGS           += -Wl,-rpath-link,$$[QT_SYSROOT]/lib

# Extra stuff (OpenGL, DirectFB, ...)
QMAKE_INCDIR_EGL        = $$[QT_SYSROOT]/usr/include \
                          $$[QT_SYSROOT]/usr/include/GLES2 \
                          $$[QT_SYSROOT]/usr/include/arm-linux-gnueabihf \
                          $$[QT_SYSROOT]/usr/include/arm-linux-gnueabihf/bits

QMAKE_LIBDIR_EGL        = $$[QT_SYSROOT]/lib \
                          $$[QT_SYSROOT]/usr/lib \
                          $$[QT_SYSROOT]/usr/lib/arm-linux-gnueabihf


QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}

QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}

DISTRO_OPTS += hard-float

# No need for any special EGL device integration.
# Prioritize the default, compiled-in integration over any plugins.
                                                                                                                   
With 5.12.9 and all the libs and stuff in place, I now see this in the log file.
+ PKG_CONFIG_SYSROOT_DIR=/home/jomodev/development/beaglbone/bbbuild/sysroot PKG_CONFIG_LIBDIR=/home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/pkgconfig:/home/jomodev/development/beaglbone/bbbuild/sysroot/usr/share/pkgconfig:/home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig /usr/bin/pkg-config --cflags glesv2
header entry 'config.qtbase_gui.libraries.opengl_es2.headers.0' passed condition.
GLES2/gl2.h not found in [] and global paths.

  => source produced no result.
Trying source 1 (type makeSpec) of library opengl_es2 ...
None of [libIMGegl.so libIMGegl.a] found in [/home/jomodev/development/beaglbone/bbbuild/sysroot/lib /home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib /home/jomodev/development/beaglbone/bbbuild/sysroot/usr/lib/arm-linux-gnueabihf] and global paths.

I know gl2.h is in sysroot so perhaps there is a Path not set properly.
$ find sysroot/ -name "gl2.h"
sysroot/usr/include/GLES2/gl2.h

The adventure continues.

Cheers,

Jon


Jeremias Ramirez

unread,
Oct 22, 2020, 5:03:23 PM10/22/20
to beagl...@googlegroups.com
I don't know how path vars work in this kind of files, but, if you see that file, at the start includes an linux.conf file, that file also make reference to the $varPaths whom we are trying to especify.

jonnymo

unread,
Oct 22, 2020, 9:39:35 PM10/22/20
to Beagle Board
Yeah, I tried with Debian 9.13 64-bit and it still shows the same error for the OpenGL ES libs. 

Must be missing something.

Jon

Jeremias Ramirez

unread,
Oct 23, 2020, 8:44:42 AM10/23/20
to BeagleBoard
Well, i'm not sure if this is something useful, but, I try to use an older version of the Linaro compiler.
I was using 7.5 and i try 6.5
I think there's something weird updating links, because i change the ./configure, and the script still trying to use the 7.5v, look:

+ cd qtbase
+ /opt/qt5bbb/qt5/qtbase/configure -top-level -no-gcc-sysroot -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-6.5.0-2018.12-x86_64_armv8l-linux-gnueabihf/bin/armv8l-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -qt-zlib -qt-libpng -no-openssl -opengl es2 -eglfs -v
<srcbase> = /opt/qt5bbb/qt5/qtbase
<bldbase> = /opt/qt5bbb/qt5/qtbase
<outbase> = /opt/qt5bbb/qt5/qtbase
Creating qmake...
make: Nothing to be done for 'first'.
Command line: -no-gcc-sysroot -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-linaro-6.5.0-2018.12-x86_64_armv8l-linux-gnueabihf/bin/armv8l-linux-gnueabihf- -sysroot /mnt/bbb-rootfs -opensource -confirm-license -optimized-qmake -reduce-exports -release -make libs -prefix /usr/local/qt5bbb -hostprefix /usr/local/qt5bbb -qt-zlib -qt-libpng -no-openssl -opengl es2 -eglfs -v

This is the Qt Open Source Edition.

You have already accepted the terms of the Open Source license.

Running configuration tests...

+ cd /opt/qt5bbb/qt5/config.tests && /opt/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/bin/armv8l-linux-gnueabihf-g++ -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb -mfloat-abi=hard -fuse-ld=gold -o conftest-out conftest.cpp

+ /opt/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/bin/armv8l-linux-gnueabihf-g++ -dumpmachine
> armv8l-linux-gnueabihf


I rename the 7.5v folder and still giving me the same paths here.

Best regards.

jonnymo

unread,
Oct 23, 2020, 4:01:15 PM10/23/20
to Beagle Board
Okay, a bit of success.
With it picking up the older toolchain, look in the folders you are using for any '.qt*. files. There are files that get created as '.' when running the configure script.

For me,

I downloaded Qt 5.12.5 and unpacked it in a folder.
Then I created 3 folders for the prefix, extprefix and hostprefix:

prefix  ~/opt/qt512bb/install 
extprefix ~/opt/qt512bb/binaries  
hostprefix  ~/opt/qt512bb/tool

Then I created a build folder to build qt in and moved to that folder to build
mkdir -p ~/opt/qt512bb/build
cd ~/opt/qt512bb/build

Then I ran the configure script from the build folder as such.

../qt-everywhere-src-5.12.5/configure -platform linux-g++-64 -release -opengl es2 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=~/develop/bbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -sysroot ~/develop/bbuild/sysroot -opensource -confirm-license -make libs -prefix ~/opt/qt512bb/install -extprefix ~/opt/qt512bb/binaries -hostprefix ~/opt/qt512bb/tool -nomake tests -v -libdir ~/develop/bbuild/sysroot/lib/arm-linux-gnueabihf


This was just to verify the config and make sure it passes the configure stage. Currently running make and will see if it compiles then will add the other items in the config. 
Also, I am using the default qmake.conf file.

Helpful links:


Jon


Jeremias Ramirez

unread,
Oct 23, 2020, 6:17:25 PM10/23/20
to BeagleBoard

That looks good.
In the meantime I try to fully understand what are you doing and how to replicate it, you say you will add the other items in the config later. How do you will do that? I have an VirtualBox snapshot on my laptop (another Qt installation) just after the -make step, so, to try re-run the ./configure plus -make combo when we can include OpenGL I just ran -make clean, but this don't solve that re-run ./configure doesn't seem to take all the new paths.
In the past, I opt to reinstall Ubuntu just for make sure the new installation will be clean, but i hate do that, i think that in certain moment i will not be able to do that anymore without expend another week configuring the IDE.

Thank you very much for your help.
Jeremias.

jonnymo

unread,
Oct 26, 2020, 12:35:42 AM10/26/20
to Beagle Board
Okay, I think I have something that works.  This completes the configure step, completes make, and make install.
As far as the issue where it is still picking up the previous toolchain in your config, each time after I compile or run into an issue, I remove the build, the qt source, the toolchain folders and anything else that indicates it was touched during the build of qt. I had to remove the sysroot folder and resync the files from the Beaglebone at least once.

With my config, I found I was missing a couple of folders from the BB where there were files linked to other locations.  This is what I have for creating the sysroot for the BB.

mkdir -p sysroot/{lib,sbin,usr/{include,lib,bin},etc/alternatives}

rsync -avz deb...@192.168.7.2:/lib sysroot/

rsync -avz deb...@192.168.7.2:/sbin sysroot/

rsync -avz deb...@192.168.7.2:/usr/include sysroot/usr

rsync -avz deb...@192.168.7.2:/usr/lib sysroot/usr

rsync -avz deb...@192.168.7.2:/usr/bin sysroot/usr

rsync -avz deb...@192.168.7.2:/etc/alternatives sysroot/etc


Get this tool to fix relative links:
chmod +x sysroot-relativelinks.py
./sysroot-relativelinks.py sysroot

This is the qmake.conf that I am using

#
# qmake configuration for the BeagleBoard and BeagleBoard xM boards

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

#include(../../common/linux.conf)
#include(../../common/gcc-base-unix.conf)
#include(../../common/g++-unix.conf)

include(../common/linux_device_pre.conf)

load(device_config)

QT_QPA_DEFAULT_PLATFORM = eglfs

# modifications to g++.conf
QMAKE_CC                = $${CROSS_COMPILE}gcc
QMAKE_CXX               = $${CROSS_COMPILE}g++
QMAKE_LINK              = $${QMAKE_CXX}
QMAKE_LINK_SHLIB        = $${QMAKE_CXX}

# modifications to linux.conf
QMAKE_AR                = $${CROSS_COMPILE}ar cqs
QMAKE_OBJCOPY           = $${CROSS_COMPILE}objcopy
QMAKE_NM                = $${CROSS_COMPILE}nm -P
QMAKE_STRIP             = $${CROSS_COMPILE}strip

COMPILER_FLAGS          = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb

#modifications to gcc-base.conf
QMAKE_CFLAGS           += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS         += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3

INCLUDEPATH += /home/bbbuild/develop/bbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.5.0

QMAKE_LIBS             += -lrt -lpthread -ldl

# Extra stuff (OpenGL, DirectFB, ...)
QMAKE_INCDIR_EGL        = /home/bbbuild/develop/bbuild/sysroot/usr/include
QMAKE_LIBDIR_EGL        = /home/bbbuild/develop/bbuild/sysroot/usr/lib/arm-linux-gnueabihf
QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}

#QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
QMAKE_LIBS_EGL          = -lEGL
QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}

DISTRO_OPTS += hard-float

# No need for any special EGL device integration.
# Prioritize the default, compiled-in integration over any plugins.
EGLFS_DEVICE_INTEGRATION = none

include(../common/linux_arm_device_post.conf)

load(qt_config)

Note, I had to add an INCLUDEPATH entry to point to the includes in the toolchain since qmake was not finding it.

Then I ran configure from the build folder as such:
 ../qt-everywhere-src-5.12.5/configure -platform linux-g++-64  -prefix /home/bbbuild/opt/qt512bb/qt512 -extprefix /home/bbbuild/opt/qt512bb/binaries -hostprefix /home/bbbuild/opt/qt512bb/tool -release -opengl es2 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/home/bbbuild/develop/bbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-  -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-tds -sysroot /home/bbbuild/develop/bbuild/sysroot -opensource -confirm-license -skip qtwayland -skip qtlocation -skip qtscript   -make libs  -nomake examples -nomake tests   -v -no-gbm 

Then run make && make install

This is part of the config.status output from the build folder
 EGL .................................... yes
  OpenVG ................................. no
  OpenGL:
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ yes
    OpenGL ES 3.1 ........................ yes
    OpenGL ES 3.2 ........................ yes
  Vulkan ................................. yes
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. yes
  libinput ............................... yes
  INTEGRITY HID .......................... no
  mtdev .................................. yes
  tslib .................................. yes
  xkbcommon .............................. yes
  X11 specific:
    XLib ................................. yes
    XCB Xlib ............................. yes
    EGL on X11 ........................... yes
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. yes
  EGLFS details:
    EGLFS OpenWFD ........................ no
    EGLFS i.Mx6 .......................... no
    EGLFS i.Mx6 Wayland .................. no
    EGLFS RCAR ........................... no
    EGLFS EGLDevice ...................... yes
    EGLFS GBM ............................ no
    EGLFS VSP2 ........................... no
    EGLFS Mali ........................... no
    EGLFS Raspberry Pi ................... no
    EGLFS X11 ............................ yes
  LinuxFB ................................ yes
  VNC .................................... yes
  Mir client ............................. no

This is what is in the binaries folder from the extprefix option
~/opt/qt512bb$ ls -lt binaries/
total 52
drwxr-xr-x  2 bbbuild bbbuild 12288 Oct 25 19:00 translations
drwxr-xr-x 23 bbbuild bbbuild  4096 Oct 25 19:00 qml
drwxr-xr-x 80 bbbuild bbbuild  4096 Oct 25 19:00 include
drwxr-xr-x  4 bbbuild bbbuild 20480 Oct 25 19:00 lib
drwxr-xr-x  2 bbbuild bbbuild  4096 Oct 25 19:00 bin
drwxr-xr-x 25 bbbuild bbbuild  4096 Oct 25 18:59 plugins
drwxr-xr-x  3 bbbuild bbbuild  4096 Oct 25 18:58 doc

I hope this helps.

Cheers,

Jon

Jeremias Ramirez

unread,
Oct 26, 2020, 8:30:46 AM10/26/20
to BeagleBoard
You cannot imagine how I feel when see this on my terminal:

 EGL .................................... yes
  OpenVG ................................. no
  OpenGL:
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ yes
    OpenGL ES 3.1 ........................ yes
    OpenGL ES 3.2 ........................ yes
  Vulkan ................................. yes
  Session Management ..................... yes
Features used by QPA backends:
  evdev .................................. yes
  libinput ............................... no
  INTEGRITY HID .......................... no
  mtdev .................................. no
  tslib .................................. no

  xkbcommon .............................. yes
  X11 specific:
    XLib ................................. yes
    XCB Xlib ............................. yes
    EGL on X11 ........................... yes
QPA backends:
  DirectFB ............................... no
  EGLFS .................................. yes
  EGLFS details:
    EGLFS OpenWFD ........................ no
    EGLFS i.Mx6 .......................... no
    EGLFS i.Mx6 Wayland .................. no
    EGLFS RCAR ........................... no
    EGLFS EGLDevice ...................... no

    EGLFS GBM ............................ no
    EGLFS VSP2 ........................... no
    EGLFS Mali ........................... no
    EGLFS Raspberry Pi ................... no
    EGLFS X11 ............................ yes

We are almost 95% done.
Thank you very much.
That not only helps, that works.

I'm starting -make that, i will write here again when it's done.
Thank you again.

Regards, Jeremias.

Jeremias Ramirez

unread,
Oct 26, 2020, 12:35:55 PM10/26/20
to beagl...@googlegroups.com
Well, I can't compile it. 😶
I got those errors after a while:

In file included from /opt/qt5129bbb/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/armv8l-linux-gnueabihf/include/c++/7.5.0/bits/stl_algo.h:59:0,
                 from /opt/qt5129bbb/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/armv8l-linux-gnueabihf/include/c++/7.5.0/algorithm:62,
                 from ../../include/QtCore/../../../../qt5/qtbase/src/corelib/global/qglobal.h:142,
                 from ../../include/QtCore/qglobal.h:1,
                 from ../../include/QtGui/../../../../qt5/qtbase/src/gui/kernel/qtguiglobal.h:43,
                 from ../../include/QtGui/qtguiglobal.h:1,
                 from /opt/qt5129bbb/qt5/qtbase/src/gui/kernel/qt_gui_pch.h:50:
/opt/qt5129bbb/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/armv8l-linux-gnueabihf/include/c++/7.5.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
               ^~~~~~~~~~
compilation terminated.
Makefile:1926: recipe for target '.pch/Qt5Gui.gch/c++' failed
make[3]: *** [.pch/Qt5Gui.gch/c++] Error 1
make[3]: Leaving directory '/opt/qt5129bbb/build/qtbase/src/gui'
Makefile:555: recipe for target 'sub-gui-make_first' failed
make[2]: *** [sub-gui-make_first] Error 2
make[2]: Leaving directory '/opt/qt5129bbb/build/qtbase/src'
Makefile:50: recipe for target 'sub-src-make_first' failed
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory '/opt/qt5129bbb/build/qtbase'
Makefile:82: recipe for target 'module-qtbase-make_first' failed
make: *** [module-qtbase-make_first] Error 2


I'm trying to figure out what's wrong with the library.
PS: I tried removing the line you add to the conf file, just in case.

jonnymo

unread,
Oct 26, 2020, 12:41:27 PM10/26/20
to Beagle Board
I had that issue but it seemed to be resolved by adding the following line in the qmake.conf file:
INCLUDEPATH += /home/bbbuild/develop/bbuild/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.5.0  

Ensure you adjust the path, and other paths, to match your configuration.  This is fully qualified based on where the toolchain is installed on my system.

Cheers,

Jon

Jeremias Ramirez

unread,
Oct 26, 2020, 12:45:09 PM10/26/20
to beagl...@googlegroups.com
Ok! Checking the paths again...
The only difference I see against your setup is that I'm using the Arm8 version of the toolchain.

Regards, Jeremias.

Jeremias Ramirez

unread,
Oct 26, 2020, 12:54:18 PM10/26/20
to beagl...@googlegroups.com
Okay, i owe you another coffee.
I corrected the paths, but forgot just the arm8.
Was: /opt/qt5129bbb/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/arm-linux-gnueabihf/include/c++/7.5.0
Must be: /opt/qt5129bbb/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/armv8l-linux-gnueabihf/include/c++/7.5.0

Trying, again.

Dennis Lee Bieber

unread,
Oct 26, 2020, 1:06:00 PM10/26/20
to Beagleboard
On Mon, 26 Oct 2020 13:35:09 -0300, in gmane.comp.hardware.beagleboard.user
"'Jeremias Ramirez' via BeagleBoard"
<beagleboard-/JYPxA39Uh5...@public.gmane.org> wrote:


>/opt/qt5129bbb/gcc-linaro-7.5.0-2019.12-x86_64_armv8l-linux-gnueabihf/armv8l-linux-gnueabihf/include/c++/7.5.0/cstdlib:75:15:
>fatal error: stdlib.h: No such file or directory
> #include_next <stdlib.h>
> ^~~~~~~~~~
>compilation terminated.

Per https://gcc.gnu.org/onlinedocs/cpp/Wrapper-Headers.html
"include_next" says to: find the next file in the search path with this
name. That seems to indicate that the include file search path needs to be
correctly ordered -- the implication is that there is a modified stdlib.h
in the source being built, and it then wants to include the normal system
stdlib.h for completeness.


{Is it really necessary to include 8+ levels of quoting that have nothing
relevant to the current incident?}


--
Dennis L Bieber

jonnymo

unread,
Oct 26, 2020, 1:16:10 PM10/26/20
to Beagle Board
Dennis,

Yeah, that is the intent of  INCLUDEPATH since the location of the includes in the toolchain are in a different location than where Qt is looking.  I did see a post where it was suggested to remove the Default path but there were other comments in the same post where it did not work.  What I posted seems to work; at least in my config.

I don't understand this comment:
"
{Is it really necessary to include 8+ levels of quoting that have nothing
relevant to the current incident?}"


Jon

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

Jeremias Ramirez

unread,
Oct 26, 2020, 1:25:37 PM10/26/20
to beagl...@googlegroups.com
Dennis, to be honest, the quotes I see are only three little dots at the end of the mail that I simply ignore. I don't know where are you reading this, but I didn't realize that quotes may be annoying.
My apologies. 

Now running make again. Let's see what happens next.

Thanks again for the support.

Regards, Jeremias.

jonnymo

unread,
Oct 26, 2020, 1:43:05 PM10/26/20
to Beagle Board
Jeremias,

Which Beagleboard are you compiling for?  

My Beaglebone Black reports as an ARMv7 and not an ARMv8 so are you sure that is the correct toolchain for a BB Black.

debian@beaglebone:~$ cat /proc/cpuinfo | grep -i arm
model name      : ARMv7 Processor rev 2 (v7l)

Jon

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

Jeremias Ramirez

unread,
Oct 26, 2020, 1:57:14 PM10/26/20
to beagl...@googlegroups.com
I just checked that and you are right, my board is a BeaglBone Black with ARM v7.
I mixed the term cortex-8 with the Arm version.
So, I don't know why, but I've been working with this well.

I will correct it as soon as possible.

Thanks.

Dennis Lee Bieber

unread,
Oct 26, 2020, 3:50:16 PM10/26/20
to Beagleboard
On Mon, 26 Oct 2020 14:24:54 -0300, in gmane.comp.hardware.beagleboard.user
"'Jeremias Ramirez' via BeagleBoard"
<beagleboard-/JYPxA39Uh5...@public.gmane.org> wrote:

>Dennis, to be honest, the quotes I see are only three little dots at the
>end of the mail that I simply ignore. I don't know where are you reading
>this, but I didn't realize that quotes may be annoying.
>My apologies.
>
I read via the gmane NNTP server. According to my newsreader, the post
I'd responded to, and trimmed, had 1520 LINES of text in it.

I suspect whatever client you are using is simply masking quoted
material by not displaying it, but it is none-the-less being included in
replies.

And... I wasn't really targetting you with the complaint. It's a
general gripe I find in forums that didn't grow up with Usenet etiquette
(or "pay per minute" connections).

https://www.ietf.org/rfc/rfc1855.txt
Section 2.1.1 for individual email (ie: one-to-one messages)
"""
- Be brief without being overly terse. When replying to a message,
include enough original material to be understood but no more. It
is extremely bad form to simply reply to a message by including
all the previous message: edit out all the irrelevant material.
"""
Section 3.1.1 for lists and Usenet (one-to-many messages)
"""
- If you are sending a reply to a message or a posting be sure you
summarize the original at the top of the message, or include just
enough text of the original to give a context. This will make
sure readers understand when they start to read your response.
Since NetNews, especially, is proliferated by distributing the
postings from one host to another, it is possible to see a
response to a message before seeing the original. Giving context
helps everyone. But do not include the entire original!
"""

Unfortunately... Then came Microsoft Outlook -- which sought to produce
a business ethic in which quoted material is the equivalent of a photocopy
attached to a snail-mail letter as a courtesy for the recipient (who should
already be familiar with the content, the copy just saves them looking up
archived mails for any details they forgot), and the entire reply is
provided "above" the copy.


--
Dennis L Bieber

jonnymo

unread,
Oct 26, 2020, 4:21:46 PM10/26/20
to Beagle Board
I believe if you respond directly from the Google Groups Beagleboard Forum it will automatically add the previous conversation content.  If you extend the '...' then you will see what is being added.  I just respond directly in GMail and avoid the quotes unless I find them necessary.

Jeremias

If you want to take the discussion offline I am cool with that.

Jon 


--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.

Jeremias Ramirez

unread,
Oct 27, 2020, 9:16:41 PM10/27/20
to beagl...@googlegroups.com

Hi again, sorry for the delay.

Well, i finally can build Qt with OpenGL. :D
A few hours later, the -make process finishes, I ran make install and all was perfect.
After that,  I upload to the BBB the /sysroot folder.
I try to build an example and it fails.
I configure QtCreator with the Qmake from /build/qtbase/bin/qmake.
I got a lot of errors about paths. I'm not able to try to fix them by now.

Warning: libpng16.so.16, needed by /opt/qt5129bbb/build/qtbase/lib/libQt5Gui.so, not found (try using -rpath or -rpath-link)

Unfortunately my company needs me in another area by now, so I must leave the BBB for a time, I really expect that doesn't be too long.
I'm infinitely grateful for your help and camaraderie.

I promise to write here again when I come back to the project.

Hope to read you soon again!

Regards, Jeremias.


jonnymo

unread,
Oct 27, 2020, 9:40:35 PM10/27/20
to Beagle Board
Check in your sysroot folder under usr/lib/arm-linux-gnueabihf.

Jon

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages