diff mbox

[v1,2/2] WIP: qt5base: use system/buildroot provided harfbuzz

Message ID 20170209223055.31121-2-ps.report@gmx.net
State Superseded
Headers show

Commit Message

Peter Seiderer Feb. 9, 2017, 10:30 p.m. UTC
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Missing BR2_TOOLCHAIN_HAS_SYNC_4 dependecy propagation from harfbuzz.
---
 package/qt5/qt5base/Config.in  | 1 +
 package/qt5/qt5base/qt5base.mk | 2 ++
 2 files changed, 3 insertions(+)

Comments

Peter Seiderer Feb. 10, 2017, 4:12 p.m. UTC | #1
Hello,

On Thu,  9 Feb 2017 23:30:55 +0100, Peter Seiderer <ps.report@gmx.net> wrote:

> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Missing BR2_TOOLCHAIN_HAS_SYNC_4 dependecy propagation from harfbuzz.

Qt5 does not (yet) have the dependency on BR2_TOOLCHAIN_HAS_SYNC_4 (but seems
to compile fine with the bundled version of harfbuzz), is this
because (the existing) dependency on BR2_TOOLCHAIN_HAS_THREADS_NPTL is
'stronger' than BR2_TOOLCHAIN_HAS_SYNC_4 (or is this complete unrelated)?

Regards,
Peter


> ---
>  package/qt5/qt5base/Config.in  | 1 +
>  package/qt5/qt5base/qt5base.mk | 2 ++
>  2 files changed, 3 insertions(+)
> 
> diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
> index 337dcf245..9cfbd10ab 100644
> --- a/package/qt5/qt5base/Config.in
> +++ b/package/qt5/qt5base/Config.in
> @@ -129,6 +129,7 @@ config BR2_PACKAGE_QT5BASE_XML
>  config BR2_PACKAGE_QT5BASE_GUI
>  	bool "gui module"
>  	select BR2_PACKAGE_FREETYPE
> +	select BR2_PACKAGE_HARFBUZZ
>  	# At least one graphic backend must be enabled, so enable
>  	# linuxfb if nothing is enabled.
>  	select BR2_PACKAGE_QT5BASE_LINUXFB if \
> diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
> index 07803e776..5c17c649d 100644
> --- a/package/qt5/qt5base/qt5base.mk
> +++ b/package/qt5/qt5base/qt5base.mk
> @@ -102,6 +102,8 @@ endif
>  QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-gui,-no-gui)
>  QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-system-freetype,-no-freetype)
>  QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_GUI),freetype)
> +QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-system-harfbuzz,-no-harfbuzz)
> +QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_GUI),harfbuzz)
>  QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets)
>  QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-no-linuxfb)
>  QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)
Thomas Petazzoni Feb. 11, 2017, 6:20 p.m. UTC | #2
Hello,

On Fri, 10 Feb 2017 17:12:23 +0100, Peter Seiderer wrote:

> Qt5 does not (yet) have the dependency on BR2_TOOLCHAIN_HAS_SYNC_4 (but seems
> to compile fine with the bundled version of harfbuzz), is this
> because (the existing) dependency on BR2_TOOLCHAIN_HAS_THREADS_NPTL is
> 'stronger' than BR2_TOOLCHAIN_HAS_SYNC_4 (or is this complete unrelated)?

These are completely unrelated. For example, SPARC has NPTL, but not
BR2_TOOLCHAIN_HAS_SYNC_4.

Thomas
Peter Seiderer Feb. 11, 2017, 9:35 p.m. UTC | #3
Hello Thomas,

On Sat, 11 Feb 2017 19:20:55 +0100, Thomas Petazzoni <thomas.petazzoni@free-electrons.com> wrote:

> Hello,
> 
> On Fri, 10 Feb 2017 17:12:23 +0100, Peter Seiderer wrote:
> 
> > Qt5 does not (yet) have the dependency on BR2_TOOLCHAIN_HAS_SYNC_4 (but seems
> > to compile fine with the bundled version of harfbuzz), is this
> > because (the existing) dependency on BR2_TOOLCHAIN_HAS_THREADS_NPTL is
> > 'stronger' than BR2_TOOLCHAIN_HAS_SYNC_4 (or is this complete unrelated)?
> 
> These are completely unrelated. For example, SPARC has NPTL, but not
> BR2_TOOLCHAIN_HAS_SYNC_4.

Thanks for the answer...

Found the trick of the Qt built-in harfbuzz, they use the QAtomicPointer implementation
instead of the default harfbuzz provided for hb_atomic_int_impl_add, hb_atomic_ptr_impl_get
and hb_atomic_ptr_impl_cmpexch (see qtbase-opensource-src-5.8.0/src/3rdparty/harfbuzz-ng/config.h).

What should we do for the !BR2_TOOLCHAIN_HAS_SYNC_4 case:

- fall back to qt built-in harfbuzz
- disable harfbuzz support

Regards,
Peter

> 
> Thomas
diff mbox

Patch

diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index 337dcf245..9cfbd10ab 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -129,6 +129,7 @@  config BR2_PACKAGE_QT5BASE_XML
 config BR2_PACKAGE_QT5BASE_GUI
 	bool "gui module"
 	select BR2_PACKAGE_FREETYPE
+	select BR2_PACKAGE_HARFBUZZ
 	# At least one graphic backend must be enabled, so enable
 	# linuxfb if nothing is enabled.
 	select BR2_PACKAGE_QT5BASE_LINUXFB if \
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 07803e776..5c17c649d 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -102,6 +102,8 @@  endif
 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-gui,-no-gui)
 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-system-freetype,-no-freetype)
 QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_GUI),freetype)
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-system-harfbuzz,-no-harfbuzz)
+QT5BASE_DEPENDENCIES   += $(if $(BR2_PACKAGE_QT5BASE_GUI),harfbuzz)
 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets)
 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-no-linuxfb)
 QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)