| Summary: | Can not build qt5base 5.11.2 with weston 3.0.0 and vivante GPU. error: invalid conversion from ‘void*’ to ‘EGLNativeDisplayType {aka wl_display*}’ [-fpermissive] | ||
|---|---|---|---|
| Product: | buildroot | Reporter: | Patrick Koller <koller> |
| Component: | Other | Assignee: | unassigned |
| Status: | RESOLVED MOVED | ||
| Severity: | blocker | CC: | buildroot, yann.morin.1998 |
| Priority: | P5 | ||
| Version: | 2018.11 | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Linux | ||
| Host: | Target: | ||
| Build: | |||
| Attachments: |
Patch to reproduce the problem
Patch to reproduce the problem |
||
|
Description
Patrick Koller
2018-12-10 16:17:38 UTC
(In reply to Patrick Koller from comment #0) Hello Patrick, no actual experience with the imx-gpu-viv package and qt/wayland, but a quick test with your provided polytab_defconfig showed the same error. Second test was without qt, only wayland/weston, did not compile out of the box, a quick fix was to upgrade to a buildroot toolchain instead of the given gcc-linaro-4.9.4 toolchain (did not investigate further). You can try to fix the eglfs_viv_wl errors (by adding the needed pointer casts) or disabling qt eglfs support (with wayland/weston your want to run your application with '-platform wayland' instead '-platform eglfs'), or try to run wayland/weston only first (without Qt)... And last but not least you can try to run the open source etnaviv support (see e.g. imx6-sabresd_qt5_defconfig, your need to enable etnaviv support in librm, mesa3d and linux mainline kernel)... Regards, Peter Created attachment 7901 [details]
Patch to reproduce the problem
This patch provides the configuration to build my project with weston-imx successfully without Qt5. As soon as Qt5 is selected, the build fails as follows:
*** Reproduce the Qt5 build error ***
- Apply the attached patch to buildroot-2018.11
- make polytab_defconfig
- make
- Get the error:
qeglfsvivintegration.cpp:68:60: error: invalid conversion from ‘void*’ to ‘EGLNativeDisplayType {aka wl_display*}’ [-fpermissive]
*** Reproduce a successful build ***
- Apply the attached patch to buildroot-2018.11
- make polytab_defconfig
- make xconfig
- uncheck Qt5
- make
Weston/Wayland without Qt is working fine. The vivante examples are working excellent, too. @Peter: Thanks for your suggestions. I can not disable qt eglfs support completly, since I need the qt5webengine in my application, which requires eglfs support. So, my next step is to add the needed pointer casts and hope for success. I will report my progress here. The previously mentioned error could be solved by casting the pointers manually. Thanks to @Peter.
**************************************************
Nevertheless, I am facing this new error:
qwaylanddisplay.cpp: In member function ‘void QtWaylandClient::QWaylandDisplay::addRegistryListener(QtWaylandClient::RegistryListener, void*)’:
qwaylanddisplay.cpp:315:35: error: could not convert ‘{listener, data}’ from ‘<brace-enclosed initializer list>’ to ‘QtWaylandClient::QWaylandDisplay::Listener’
Listener l = { listener, data };
^
Makefile:1435: recipe for target '.obj/qwaylanddisplay.o' failed
make[3]: *** [.obj/qwaylanddisplay.o] Error 1
make[3]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/client'
Makefile:73: recipe for target 'sub-client-make_first' failed
make[2]: *** [sub-client-make_first] Error 2
make[2]: *** Waiting for unfinished jobs....
extensions/qwaylandxdgshellv6.cpp: In member function ‘uint QWaylandXdgToplevelV6::sendConfigure(const QSize&, const QVector<QWaylandXdgToplevelV6::State>&)’:
extensions/qwaylandxdgshellv6.cpp:957:100: error: no matching function for call to ‘QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent(<brace-enclosed initializer list>)’
d->m_pendingConfigures.append(QWaylandXdgToplevelV6Private::ConfigureEvent{states, size, serial});
^
extensions/qwaylandxdgshellv6.cpp:957:100: note: candidates are:
In file included from extensions/qwaylandxdgshellv6.cpp:38:0:
extensions/qwaylandxdgshellv6_p.h:137:12: note: QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent()
struct ConfigureEvent {
^
extensions/qwaylandxdgshellv6_p.h:137:12: note: candidate expects 0 arguments, 3 provided
extensions/qwaylandxdgshellv6_p.h:137:12: note: QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent(const QWaylandXdgToplevelV6Private::ConfigureEvent&)
extensions/qwaylandxdgshellv6_p.h:137:12: note: candidate expects 1 argument, 3 provided
extensions/qwaylandxdgshellv6_p.h:137:12: note: QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent(QWaylandXdgToplevelV6Private::ConfigureEvent&&)
extensions/qwaylandxdgshellv6_p.h:137:12: note: candidate expects 1 argument, 3 provided
Makefile:3517: recipe for target '.obj/qwaylandxdgshellv6.o' failed
make[3]: *** [.obj/qwaylandxdgshellv6.o] Error 1
make[3]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/compositor'
Makefile:98: recipe for target 'sub-compositor-make_first' failed
make[2]: *** [sub-compositor-make_first] Error 2
make[2]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src'
Makefile:46: recipe for target 'sub-src-make_first' failed
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2'
package/pkg-generic.mk:229: recipe for target '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/.stamp_built' failed
make: *** [/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/.stamp_built] Error 2
**************************************************
I will investigate further and report my progress here.
(In reply to Patrick Koller from comment #3) Try the following patch: diff --git a/package/qt5/qt5webengine/Config.in b/package/qt5/qt5webengine/Config.in index 744d659567..c29c239342 100644 --- a/package/qt5/qt5webengine/Config.in +++ b/package/qt5/qt5webengine/Config.in @@ -50,7 +50,7 @@ config BR2_PACKAGE_QT5WEBENGINE select BR2_PACKAGE_WEBP select BR2_PACKAGE_WEBP_DEMUX select BR2_PACKAGE_QT5BASE_DBUS - select BR2_PACKAGE_QT5BASE_EGLFS + select BR2_PACKAGE_QT5BASE_EGLFS if !BR2_PACKAGE_QT5WAYLAND=y select BR2_PACKAGE_QT5BASE_FONTCONFIG select BR2_PACKAGE_QT5BASE_ICU select BR2_PACKAGE_QT5BASE_GUI And try to enable/build qt5webengine (and keep qt eglfs support disabled), builds fine here, not run time tested... The imx-gpu-viv/qt eglfs compile problem (if there is no easy/quick fix) is better addressed at a qt mailing list/qt bugtracker (if you do so, please link it from here)... Thanks @Peter for your patch. The qt5webengine has been built just fine, nevertheless there was raised an error during the following "installing to target" step. The cp command complained, there are no libs to copy and indeed, there are no libs present. Why is the buildprocess successfull without creating any libs? Please have a look at the following error message: ************************************************** >>> qt5webengine 5.11.2 Building PATH="/home/patrickk/tmp/buildroot/eglfs_patch/output/host/bin:/home/patrickk/tmp/buildroot/eglfs_patch/output/host/sbin:/home/patrickk/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" PATH=/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/host-bin:"/home/patrickk/tmp/buildroot/eglfs_patch/output/host/bin:/home/patrickk/tmp/buildroot/eglfs_patch/output/host/sbin:/home/patrickk/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" NINJAFLAGS="-j9" GN_PKG_CONFIG_HOST=/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/host-bin/host-pkg-config /usr/bin/make -j9 -C /home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2 make[1]: Entering directory '/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2' make[1]: Nothing to be done for 'first'. make[1]: Leaving directory '/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2' >>> qt5webengine 5.11.2 Installing to staging directory PATH="/home/patrickk/tmp/buildroot/eglfs_patch/output/host/bin:/home/patrickk/tmp/buildroot/eglfs_patch/output/host/sbin:/home/patrickk/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" PATH=/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/host-bin:"/home/patrickk/tmp/buildroot/eglfs_patch/output/host/bin:/home/patrickk/tmp/buildroot/eglfs_patch/output/host/sbin:/home/patrickk/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" NINJAFLAGS="-j9" GN_PKG_CONFIG_HOST=/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/host-bin/host-pkg-config /usr/bin/make -j9 -C /home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2 install make[1]: Entering directory '/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2' make[1]: Nothing to be done for 'install'. make[1]: Leaving directory '/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2' for i in $(find /home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib* -name "libQt5*.la"); do /usr/bin/sed -i -e "s:/home/patrickk/tmp/buildroot/eglfs_patch/output:@BASE_DIR@:g" -e "s:/home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot:@STAGING_DIR@:g" -e "s:\(['= ]\)/usr:\\1@STAGING_DIR@/usr:g" -e "s:@STAGING_DIR@:/home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot:g" -e "s:@BASE_DIR@:/home/patrickk/tmp/buildroot/eglfs_patch/output:g" $i ; /usr/bin/sed -i -e "/^dependency_libs=/s%-L/usr/lib %%g" $i ; done for i in $(find /home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib* -name "libQt5*.prl"); do /usr/bin/sed -i -e "s%-L/usr/lib%%" $i; done >>> qt5webengine 5.11.2 Fixing libtool files >>> qt5webengine 5.11.2 Installing to target cp -dpf /home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.* /home/patrickk/tmp/buildroot/eglfs_patch/output/target/usr/lib cp: cannot stat '/home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.*': No such file or directory package/pkg-generic.mk:310: recipe for target '/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/.stamp_target_installed' failed make: *** [/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/.stamp_target_installed] Error 1 patrickk@lites:~/tmp/buildroot/eglfs_patch> make >>> qt5webengine 5.11.2 Installing to target cp -dpf /home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.* /home/patrickk/tmp/buildroot/eglfs_patch/output/target/usr/lib cp: cannot stat '/home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.*': No such file or directory package/pkg-generic.mk:310: recipe for target '/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/.stamp_target_installed' failed make: *** [/home/patrickk/tmp/buildroot/eglfs_patch/output/build/qt5webengine-5.11.2/.stamp_target_installed] Error 1 patrickk@lites:~/tmp/buildroot/eglfs_patch> kate output/build/qt5wayland-5.11.2/src/hardwareintegration/compositor/xcomposite-egl/xcompositeeglintegration.cpp patrickk@lites:~/tmp/buildroot/eglfs_patch> kate output/build/qt5wayland-5.11.2/src/hardwareintegration/client/xcomposite-egl/qwaylandxcompositeeglwindow.cpp patrickk@lites:~/tmp/buildroot/eglfs_patch> l /home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.* ls: cannot access '/home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.*': No such file or directory patrickk@lites:~/tmp/buildroot/eglfs_patch> l /home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.* ls: cannot access '/home/patrickk/tmp/buildroot/eglfs_patch/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/libQt5WebEngine*.so.*': No such file or directory ************************************************** (In reply to Patrick Koller from comment #6) Strange, the copy source paths should be /home/patrickk/tmp/buildroot/eglfs_patch/output/staging/usr/lib/libQt5WebEngine*.so.* ...but should not matter, because staging is a symlink to host/arm-buildroot-linux-gnueabihf/sysroot... Can you find the libs somewhere else (e.g. the build directory)? Do you use ccache and hit by [1] (you need a buildroot git update or [2])? Try a complete re-build (make clean; make)? Any errors in the qt5webengine unpack/configure steps? Regards, Peter [1] http://lists.busybox.net/pipermail/buildroot/2018-December/238290.html [2] http://lists.busybox.net/pipermail/buildroot/2018-December/238339.html Hi Peter
Thanks for your reply. No, I did not use the ccache nor were there any errors in the qt5webengine unpack/configure steps.
Nevertheless, after a "make clean" (Which I also made before my last post) shows now the "qt5wayland" first:
**************************************************
>>> qt5wayland 5.11.2 Building
PATH="/home/patrickk/tmp/buildroot/a/output/host/bin:/home/patrickk/tmp/buildroot/a/output/host/sbin:/home/patrickk/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games" /usr/bin/make -j9 -C /home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2
make[1]: Entering directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2'
cd src/ && ( test -e Makefile || /home/patrickk/tmp/buildroot/a/output/host/bin/qmake -o Makefile /home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/src.pro CONFIG+=wayland-compositor ) && /usr/bin/make -f Makefile
make[2]: Entering directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src'
cd qtwaylandscanner/ && ( test -e Makefile || /home/patrickk/tmp/buildroot/a/output/host/bin/qmake -o Makefile /home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/qtwaylandscanner/qtwaylandscanner.pro CONFIG+=wayland-compositor ) && /usr/bin/make -f Makefile
make[3]: Entering directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/qtwaylandscanner'
make[3]: Nothing to be done for 'first'.
make[3]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/qtwaylandscanner'
cd client/ && ( test -e Makefile || /home/patrickk/tmp/buildroot/a/output/host/bin/qmake -o Makefile /home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/client/client.pro CONFIG+=wayland-compositor ) && /usr/bin/make -f Makefile
cd compositor/ && ( test -e Makefile || /home/patrickk/tmp/buildroot/a/output/host/bin/qmake -o Makefile /home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/compositor/compositor.pro CONFIG+=wayland-compositor ) && /usr/bin/make -f Makefile
make[3]: Entering directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/client'
/home/patrickk/tmp/buildroot/a/output/host/bin/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=hard --sysroot=/home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_WAYLANDCLIENT_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_FONTDATABASE_SUPPORT_LIB -DQT_EVENTDISPATCHER_SUPPORT_LIB -DQT_THEME_SUPPORT_LIB -DQT_SERVICE_SUPPORT_LIB -DQT_GUI_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -I../shared -Ihardwareintegration -Ishellintegration -Iinputdeviceintegration -Iglobal -I../../include -I../../include/QtWaylandClient -I../../include/QtWaylandClient/5.11.2 -I../../include/QtWaylandClient/5.11.2/QtWaylandClient -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/5.11.2/QtGui -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore/5.11.2/QtCore -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtFontDatabaseSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtFontDatabaseSupport/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtFontDatabaseSupport/5.11.2/QtFontDatabaseSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtEventDispatcherSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtEventDispatcherSupport/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtEventDispatcherSupport/5.11.2/QtEventDispatcherSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtThemeSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtThemeSupport/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtThemeSupport/5.11.2/QtThemeSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtServiceSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtServiceSupport/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtServiceSupport/5.11.2/QtServiceSupport -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtDBus -I.moc -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I/home/patrickk/tmp/buildroot/a/output/host/mkspecs/devices/linux-imx6-g++ -o .obj/qwaylanddisplay.o qwaylanddisplay.cpp
make[3]: Entering directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/compositor'
/home/patrickk/tmp/buildroot/a/output/host/bin/arm-linux-gnueabihf-g++ -c -pipe -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -mfloat-abi=hard --sysroot=/home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot -O2 -std=c++1y -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -Wvla -D_REENTRANT -fPIC -DQT_WAYLAND_COMPOSITOR_QUICK -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_BUILD_WAYLANDCOMPOSITOR_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../shared -Iglobal -Iwayland_wrapper -Icompositor_api -Iextensions -I../../include -I../../include/QtWaylandCompositor -I../../include/QtWaylandCompositor/5.11.2 -I../../include/QtWaylandCompositor/5.11.2/QtWaylandCompositor -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtQuick/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtQuick/5.11.2/QtQuick -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui/5.11.2/QtGui -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtQml/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtQml/5.11.2/QtQml -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore/5.11.2 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore/5.11.2/QtCore -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtQuick -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtGui -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtQml -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtNetwork -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5/QtCore -I.moc -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -isystem /home/patrickk/tmp/buildroot/a/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I/home/patrickk/tmp/buildroot/a/output/host/mkspecs/devices/linux-imx6-g++ -o .obj/qwaylandxdgshellv6.o extensions/qwaylandxdgshellv6.cpp
qwaylanddisplay.cpp: In member function ‘void QtWaylandClient::QWaylandDisplay::addRegistryListener(QtWaylandClient::RegistryListener, void*)’:
qwaylanddisplay.cpp:315:35: error: could not convert ‘{listener, data}’ from ‘<brace-enclosed initializer list>’ to ‘QtWaylandClient::QWaylandDisplay::Listener’
Listener l = { listener, data };
^
Makefile:1435: recipe for target '.obj/qwaylanddisplay.o' failed
make[3]: *** [.obj/qwaylanddisplay.o] Error 1
make[3]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/client'
Makefile:73: recipe for target 'sub-client-make_first' failed
make[2]: *** [sub-client-make_first] Error 2
make[2]: *** Waiting for unfinished jobs....
extensions/qwaylandxdgshellv6.cpp: In member function ‘uint QWaylandXdgToplevelV6::sendConfigure(const QSize&, const QVector<QWaylandXdgToplevelV6::State>&)’:
extensions/qwaylandxdgshellv6.cpp:957:100: error: no matching function for call to ‘QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent(<brace-enclosed initializer list>)’
d->m_pendingConfigures.append(QWaylandXdgToplevelV6Private::ConfigureEvent{states, size, serial});
^
extensions/qwaylandxdgshellv6.cpp:957:100: note: candidates are:
In file included from extensions/qwaylandxdgshellv6.cpp:38:0:
extensions/qwaylandxdgshellv6_p.h:137:12: note: QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent()
struct ConfigureEvent {
^
extensions/qwaylandxdgshellv6_p.h:137:12: note: candidate expects 0 arguments, 3 provided
extensions/qwaylandxdgshellv6_p.h:137:12: note: QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent(const QWaylandXdgToplevelV6Private::ConfigureEvent&)
extensions/qwaylandxdgshellv6_p.h:137:12: note: candidate expects 1 argument, 3 provided
extensions/qwaylandxdgshellv6_p.h:137:12: note: QWaylandXdgToplevelV6Private::ConfigureEvent::ConfigureEvent(QWaylandXdgToplevelV6Private::ConfigureEvent&&)
extensions/qwaylandxdgshellv6_p.h:137:12: note: candidate expects 1 argument, 3 provided
Makefile:3517: recipe for target '.obj/qwaylandxdgshellv6.o' failed
make[3]: *** [.obj/qwaylandxdgshellv6.o] Error 1
make[3]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/compositor'
Makefile:98: recipe for target 'sub-compositor-make_first' failed
make[2]: *** [sub-compositor-make_first] Error 2
make[2]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src'
Makefile:46: recipe for target 'sub-src-make_first' failed
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2'
package/pkg-generic.mk:229: recipe for target '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/.stamp_built' failed
make: *** [/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/.stamp_built] Error 2
**************************************************
Does anybody have an idea, why this happens?
Thanks in advance.
(In reply to Patrick Koller from comment #6) Still the same advice: > Second test was without qt, only wayland/weston, did not compile out of the > box, a quick fix was to upgrade to a buildroot toolchain instead of the given > gcc-linaro-4.9.4 toolchain (did not investigate further). Did run my successful build with buildroot gcc-7.4.0 toolchain... Hi Peter,
Thanks for your hint. Now, I am able to build wayland/weston (without qt) sucessfully (With both toolchains). As soon as I try to build qt5, the previous mentioned error (qwaylanddisplay.cpp:315:35: error: could not convert ‘{listener, data}’ from ‘<brace-enclosed initializer list>’ to ‘QtWaylandClient::QWaylandDisplay::Listener’) occurs. Do you have a hint to solve this problem?
Thanks in advance.
Best regards
Patrick
(In reply to Patrick Koller from comment #10) > Thanks for your hint. Now, I am able to build wayland/weston (without qt) > sucessfully (With both toolchains). As soon as I try to build qt5, the > previous mentioned error (qwaylanddisplay.cpp:315:35: error: could not > convert ‘{listener, data}’ from ‘<brace-enclosed initializer list>’ to > ‘QtWaylandClient::QWaylandDisplay::Listener’) occurs. Do you have a > hint to solve this problem? Please do not mix toolchains, I doubt wayland/weston builds with the linaro toolchain (see comment #1), please re-build complete (make clean; make) (the complete buildroot build, not only a single package) after changing to the buildroot toolchain (used buildroot git latest, gcc-7.4.0, qt-5.11.3)... In case of failure post your .config/defconfig (In reply to Peter Seiderer from comment #11) From your build failure log: make[3]: Entering directory '/home/patrickk/tmp/buildroot/a/output/build/qt5wayland-5.11.2/src/compositor' ...disable the BR2_PACKAGE_QT5WAYLAND_COMPOSITOR option and try again (this time after make qt5wayland-dirclean), no need for the qt5wayland compositor, you have already weston enabled)... Regards, Peter Changes on base of given patch to fix compile of polytab_defconfig:
- relax qt5webengine dependency:
--- a/package/qt5/qt5webengine/Config.in
+++ b/package/qt5/qt5webengine/Config.in
@@ -50,7 +50,7 @@ config BR2_PACKAGE_QT5WEBENGINE
select BR2_PACKAGE_WEBP
select BR2_PACKAGE_WEBP_DEMUX
select BR2_PACKAGE_QT5BASE_DBUS
- select BR2_PACKAGE_QT5BASE_EGLFS
+ select BR2_PACKAGE_QT5BASE_EGLFS if !BR2_PACKAGE_QT5WAYLAND=y
select BR2_PACKAGE_QT5BASE_FONTCONFIG
select BR2_PACKAGE_QT5BASE_ICU
select BR2_PACKAGE_QT5BASE_GUI
- fix eglfs_viv/eglfs_viv_wl (only compile tested):
--- /dev/null
+++ b/package/qt5/qt5base/5.11.3/0005-fix-eglfs_viv.patch
@@ -0,0 +1,20 @@
+--- qt5base-5.11.3/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp_orig 2018-12-20 21:01:22.231473846 +0100
++++ qt5base-5.11.3/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp 2018-12-20 21:03:27.017742819 +0100
+@@ -65,7 +65,7 @@
+ VivanteInit();
+ mNativeDisplay = fbGetDisplay();
+ #else
+- mNativeDisplay = fbGetDisplayByIndex(framebufferIndex());
++ mNativeDisplay = (EGLNativeDisplayType)fbGetDisplayByIndex(framebufferIndex());
+ #endif
+
+ fbGetDisplayGeometry(mNativeDisplay, &width, &height);
+@@ -88,7 +88,7 @@
+ Q_UNUSED(window)
+ Q_UNUSED(format)
+
+- EGLNativeWindowType eglWindow = fbCreateWindow(mNativeDisplay, 0, 0, size.width(), size.height());
++ EGLNativeWindowType eglWindow = (EGLNativeWindowType)fbCreateWindow(mNativeDisplay, 0, 0, size.width(), size.height());
+ return eglWindow;
+ }
+
--- /dev/null
+++ b/package/qt5/qt5base/5.11.3/0006-fix-eglfs_viv_wl.patch
@@ -0,0 +1,20 @@
+--- qt5base-5.11.3/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp_orig 2018-12-20 21:03:59.154328914 +0100
++++ qt5base-5.11.3/src/plugins/platforms/eglfs/deviceintegration/eglfs_viv_wl/qeglfsvivwlintegration.cpp 2018-12-20 21:06:45.217366833 +0100
+@@ -60,7 +60,7 @@
+ }
+
+ mWaylandDisplay = wl_display_create();
+- mNativeDisplay = fbGetDisplay(mWaylandDisplay);
++ mNativeDisplay = (EGLNativeDisplayType)fbGetDisplay(mWaylandDisplay);
+ fbGetDisplayGeometry(mNativeDisplay, &width, &height);
+ mScreenSize.setHeight(height);
+ mScreenSize.setWidth(width);
+@@ -81,7 +81,7 @@
+ Q_UNUSED(window)
+ Q_UNUSED(format)
+
+- EGLNativeWindowType eglWindow = fbCreateWindow(mNativeDisplay, 0, 0, size.width(), size.height());
++ EGLNativeWindowType eglWindow = (EGLNativeWindowType)fbCreateWindow(mNativeDisplay, 0, 0, size.width(), size.height());
+ return eglWindow;
+ }
+
- use up to date toolchain/remove extra qt5 configure options, re-select eglfs:
--- a/configs/polytab_defconfig
+++ b/configs/polytab_defconfig
@@ -5,15 +5,8 @@ BR2_ARM_ENABLE_VFP=y
BR2_ARM_FPU_VFPV3=y
BR2_OPTIMIZE_3=y
# BR2_COMPILER_PARANOID_UNSAFE_PATH is not set
-BR2_TOOLCHAIN_EXTERNAL=y
-BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
-BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
-BR2_TOOLCHAIN_EXTERNAL_URL="https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz"
-BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-linux-gnueabihf"
-BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
-BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_0=y
-BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
-BR2_TOOLCHAIN_EXTERNAL_CXX=y
+BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
+BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TARGET_GENERIC_HOSTNAME="polytab"
BR2_TARGET_GENERIC_ISSUE="Welcome"
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
@@ -32,19 +25,15 @@ BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_LIBERATION=y
BR2_PACKAGE_QT5=y
-BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS="-v -opensource -confirm-license -make libs -device imx6 -compile-examples -no-opengl -opengl es2"
BR2_PACKAGE_QT5BASE_EXAMPLES=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_LINUXFB=y
+BR2_PACKAGE_QT5BASE_EGLFS=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="wayland"
BR2_PACKAGE_QT5BASE_HARFBUZZ=y
BR2_PACKAGE_QT5BASE_GIF=y
BR2_PACKAGE_QT5BASE_JPEG=y
Thank you for your report.
The issue tracker for the Buildroot project has been moved to
the Gitlab.com issue tracker:
https://gitlab.com/buildroot.org/buildroot/-/issues
We are taking this opportunity to close old issues in this old
tracker. If you believe your issue is still relevant, please
open one in the new issue tracker.
Thank you!
|