* [Buildroot] [PATCH] package/qt6/qt6base: don't require gbm for eglfs @ 2026-09-14 8:21 Fred Lefranc 2026-09-14 8:21 ` [Buildroot] [PATCH 1/1] " Fred Lefranc 0 siblings, 1 reply; 3+ messages in thread From: Fred Lefranc @ 2026-09-14 8:21 UTC (permalink / raw) To: buildroot; +Cc: Fred Lefranc From: Fred Lefranc <fred.lefranc+evs@gmail.com> Hi all, While trying to enable Qt 6 with the eglfs eglfs_viv backend on a 32-bit i.MX6 target (imx-gpu-viv, framebuffer output), I hit the package dependency-chain consistency error, because qt6base pulls in libgbm/libdrm unconditionally for eglfs even though the Vivante framebuffer EGL integration needs neither. The root cause is that qt6base treats GBM as a hard requirement for *all* of eglfs, whereas GBM/KMS is only needed by the eglfs_kms backend. This patch decouples the two: eglfs now only requires libegl, and GBM/KMS support is enabled conditionally when a gbm provider is available. Tested: - i.MX6Q (Cortex-A9, glibc, EABIhf), imx-gpu-viv FB output: qt6base builds, libqeglfs-viv-integration.so is produced, and a Qt app runs with -platform eglfs / QT_QPA_EGLFS_INTEGRATION=eglfs_viv. I wasn't sure whether maintainers prefer keeping a Config.in comment to explain that eglfs without gbm only provides vendor/fb backends - happy to add one. Feedback welcome. Thanks, Fred Fred Lefranc (1): package/qt6/qt6base: don't require gbm for eglfs package/qt6/qt6base/Config.in | 2 +- package/qt6/qt6base/qt6base.mk | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) -- 2.34.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH 1/1] package/qt6/qt6base: don't require gbm for eglfs 2026-09-14 8:21 [Buildroot] [PATCH] package/qt6/qt6base: don't require gbm for eglfs Fred Lefranc @ 2026-09-14 8:21 ` Fred Lefranc 2026-09-28 8:42 ` Fred Lefranc 0 siblings, 1 reply; 3+ messages in thread From: Fred Lefranc @ 2026-09-14 8:21 UTC (permalink / raw) To: buildroot Cc: Fred Lefranc, Jesse Van Gavere, Roy Kollen Svendsen, Thomas Petazzoni From: Fred Lefranc <fred.lefranc+evs@gmail.com> BR2_PACKAGE_QT6BASE_EGLFS currently has a hard "depends on BR2_PACKAGE_HAS_LIBGBM", and qt6base.mk unconditionally adds libgbm and libdrm to QT6BASE_DEPENDENCIES whenever eglfs is enabled. This is incorrect: GBM is only needed by the eglfs_kms backend. Other eglfs device integrations, such as the Vivante framebuffer backend (eglfs_viv) used on 32-bit i.MX6, provide EGL and OpenGL ES without GBM or DRM. As a result, eglfs cannot be enabled on i.MX6 (imx-gpu-viv only provides libgbm on the aarch64/i.MX8 blobs), and forcing it through triggers the dependency-chain consistency check: package 'qt6base' has added 'libgbm' to its _DEPENDENCIES variable without selecting it or depending on it from Config.in. Make GBM optional for eglfs: - In Config.in, drop the hard dependency on BR2_PACKAGE_HAS_LIBGBM and keep only the libegl requirement, which every eglfs backend needs. - In qt6base.mk, only pass -DFEATURE_gbm=ON/-DFEATURE_kms=ON and add libgbm/libdrm to the dependencies when a gbm provider is actually present (BR2_PACKAGE_HAS_LIBGBM). Otherwise pass -DFEATURE_gbm=OFF/-DFEATURE_kms=OFF so that the eglfs_kms backend is simply not built, while eglfs_viv (and other vendor backends) still are. This keeps eglfs_kms working unchanged on platforms that do provide GBM (i.MX8, Raspberry Pi 4, ...) while allowing eglfs to be enabled on GBM-less platforms such as i.MX6 with the Vivante framebuffer output. Signed-off-by: Fred Lefranc <fred.lefranc+evs@gmail.com> --- package/qt6/qt6base/Config.in | 2 +- package/qt6/qt6base/qt6base.mk | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/package/qt6/qt6base/Config.in b/package/qt6/qt6base/Config.in index e6bb99de28..c33e078b15 100644 --- a/package/qt6/qt6base/Config.in +++ b/package/qt6/qt6base/Config.in @@ -74,7 +74,7 @@ comment "X.org XCB backend available if X.org is enabled" config BR2_PACKAGE_QT6BASE_EGLFS bool "eglfs support" depends on BR2_PACKAGE_HAS_LIBEGL - depends on BR2_PACKAGE_HAS_LIBGBM + depends on BR2_PACKAGE_HAS_LIBGBM || BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB depends on BR2_PACKAGE_QT6_GL_SUPPORTS select BR2_PACKAGE_QT6BASE_OPENGL diff --git a/package/qt6/qt6base/qt6base.mk b/package/qt6/qt6base/qt6base.mk index 01661b7f01..5e6cf66f32 100644 --- a/package/qt6/qt6base/qt6base.mk +++ b/package/qt6/qt6base/qt6base.mk @@ -305,8 +305,16 @@ QT6BASE_CONF_OPTS += -DFEATURE_tslib=OFF endif ifeq ($(BR2_PACKAGE_QT6BASE_EGLFS),y) -QT6BASE_CONF_OPTS += -DFEATURE_egl=ON -DFEATURE_eglfs=ON -QT6BASE_DEPENDENCIES += libegl libgbm +QT6BASE_CONF_OPTS += -DINPUT_opengl=es2 -DFEATURE_egl=ON -DFEATURE_eglfs=ON +QT6BASE_DEPENDENCIES += libegl + +# Only pull in GBM/KMS/DRM when a gbm provider actually exists (i.MX8, RPi, etc.) +ifeq ($(BR2_PACKAGE_HAS_LIBGBM),y) +QT6BASE_CONF_OPTS += -DFEATURE_gbm=ON -DFEATURE_kms=ON +QT6BASE_DEPENDENCIES += libgbm libdrm +else +QT6BASE_CONF_OPTS += -DFEATURE_gbm=OFF -DFEATURE_kms=OFF +endif else QT6BASE_CONF_OPTS += -DFEATURE_eglfs=OFF endif -- 2.34.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/qt6/qt6base: don't require gbm for eglfs 2026-09-14 8:21 ` [Buildroot] [PATCH 1/1] " Fred Lefranc @ 2026-09-28 8:42 ` Fred Lefranc 0 siblings, 0 replies; 3+ messages in thread From: Fred Lefranc @ 2026-09-28 8:42 UTC (permalink / raw) To: buildroot Cc: Fred Lefranc, Jesse Van Gavere, Roy Kollen Svendsen, Thomas Petazzoni Hello, Do you want any update on that one? Best regards, Fred On Mon, Sep 14, 2026 at 10:21 AM Fred Lefranc <fred.lefranc.evs@gmail.com> wrote: > > From: Fred Lefranc <fred.lefranc+evs@gmail.com> > > BR2_PACKAGE_QT6BASE_EGLFS currently has a hard "depends on > BR2_PACKAGE_HAS_LIBGBM", and qt6base.mk unconditionally adds libgbm > and libdrm to QT6BASE_DEPENDENCIES whenever eglfs is enabled. This is > incorrect: GBM is only needed by the eglfs_kms backend. Other eglfs > device integrations, such as the Vivante framebuffer backend > (eglfs_viv) used on 32-bit i.MX6, provide EGL and OpenGL ES without > GBM or DRM. > > As a result, eglfs cannot be enabled on i.MX6 (imx-gpu-viv only > provides libgbm on the aarch64/i.MX8 blobs), and forcing it through > triggers the dependency-chain consistency check: > > package 'qt6base' has added 'libgbm' to its _DEPENDENCIES variable > without selecting it or depending on it from Config.in. > > Make GBM optional for eglfs: > > - In Config.in, drop the hard dependency on BR2_PACKAGE_HAS_LIBGBM > and keep only the libegl requirement, which every eglfs backend > needs. > > - In qt6base.mk, only pass -DFEATURE_gbm=ON/-DFEATURE_kms=ON and add > libgbm/libdrm to the dependencies when a gbm provider is actually > present (BR2_PACKAGE_HAS_LIBGBM). Otherwise pass > -DFEATURE_gbm=OFF/-DFEATURE_kms=OFF so that the eglfs_kms backend > is simply not built, while eglfs_viv (and other vendor backends) > still are. > > This keeps eglfs_kms working unchanged on platforms that do provide > GBM (i.MX8, Raspberry Pi 4, ...) while allowing eglfs to be enabled on > GBM-less platforms such as i.MX6 with the Vivante framebuffer output. > > Signed-off-by: Fred Lefranc <fred.lefranc+evs@gmail.com> > --- > package/qt6/qt6base/Config.in | 2 +- > package/qt6/qt6base/qt6base.mk | 12 ++++++++++-- > 2 files changed, 11 insertions(+), 3 deletions(-) > > diff --git a/package/qt6/qt6base/Config.in b/package/qt6/qt6base/Config.in > index e6bb99de28..c33e078b15 100644 > --- a/package/qt6/qt6base/Config.in > +++ b/package/qt6/qt6base/Config.in > @@ -74,7 +74,7 @@ comment "X.org XCB backend available if X.org is enabled" > config BR2_PACKAGE_QT6BASE_EGLFS > bool "eglfs support" > depends on BR2_PACKAGE_HAS_LIBEGL > - depends on BR2_PACKAGE_HAS_LIBGBM > + depends on BR2_PACKAGE_HAS_LIBGBM || BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB > depends on BR2_PACKAGE_QT6_GL_SUPPORTS > select BR2_PACKAGE_QT6BASE_OPENGL > > diff --git a/package/qt6/qt6base/qt6base.mk b/package/qt6/qt6base/qt6base.mk > index 01661b7f01..5e6cf66f32 100644 > --- a/package/qt6/qt6base/qt6base.mk > +++ b/package/qt6/qt6base/qt6base.mk > @@ -305,8 +305,16 @@ QT6BASE_CONF_OPTS += -DFEATURE_tslib=OFF > endif > > ifeq ($(BR2_PACKAGE_QT6BASE_EGLFS),y) > -QT6BASE_CONF_OPTS += -DFEATURE_egl=ON -DFEATURE_eglfs=ON > -QT6BASE_DEPENDENCIES += libegl libgbm > +QT6BASE_CONF_OPTS += -DINPUT_opengl=es2 -DFEATURE_egl=ON -DFEATURE_eglfs=ON > +QT6BASE_DEPENDENCIES += libegl > + > +# Only pull in GBM/KMS/DRM when a gbm provider actually exists (i.MX8, RPi, etc.) > +ifeq ($(BR2_PACKAGE_HAS_LIBGBM),y) > +QT6BASE_CONF_OPTS += -DFEATURE_gbm=ON -DFEATURE_kms=ON > +QT6BASE_DEPENDENCIES += libgbm libdrm > +else > +QT6BASE_CONF_OPTS += -DFEATURE_gbm=OFF -DFEATURE_kms=OFF > +endif > else > QT6BASE_CONF_OPTS += -DFEATURE_eglfs=OFF > endif > -- > 2.34.1 > _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-28 8:43 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-09-14 8:21 [Buildroot] [PATCH] package/qt6/qt6base: don't require gbm for eglfs Fred Lefranc 2026-09-14 8:21 ` [Buildroot] [PATCH 1/1] " Fred Lefranc 2026-09-28 8:42 ` Fred Lefranc
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.