* [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4
@ 2016-02-23 16:48 Gustavo Zacarias
2016-02-23 21:22 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Gustavo Zacarias @ 2016-02-23 16:48 UTC (permalink / raw)
To: buildroot
It uses __sync_add_and_fetch_4() and other 32-bit atomics, fixes:
http://autobuild.buildroot.net/results/7ac/7acdbc54e26ad2ba4756512614192be0a086f563/
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
package/opencv/Config.in | 1 +
package/pinentry/Config.in | 1 +
package/python-pyqt/Config.in | 2 ++
package/python-sip/Config.in | 2 ++
package/qt/Config.in | 2 ++
5 files changed, 8 insertions(+)
diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index 8bc6c34..8ebca21 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -210,6 +210,7 @@ config BR2_PACKAGE_OPENCV_WITH_QT
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU # qt
depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # qt
select BR2_PACKAGE_QT
select BR2_PACKAGE_QT_STL
select BR2_PACKAGE_QT_GUI_MODULE
diff --git a/package/pinentry/Config.in b/package/pinentry/Config.in
index f5a8159..8f6bdb9 100644
--- a/package/pinentry/Config.in
+++ b/package/pinentry/Config.in
@@ -40,6 +40,7 @@ config BR2_PACKAGE_PINENTRY_QT4
depends on BR2_USE_MMU # fork
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # qt
select BR2_PACKAGE_QT
select BR2_PACKAGE_QT_GUI_MODULE
help
diff --git a/package/python-pyqt/Config.in b/package/python-pyqt/Config.in
index a50cb74..f2d06c4 100644
--- a/package/python-pyqt/Config.in
+++ b/package/python-pyqt/Config.in
@@ -1,5 +1,6 @@
comment "python-pyqt needs a toolchain w/ C++, threads"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_PYTHON_PYQT
@@ -7,6 +8,7 @@ config BR2_PACKAGE_PYTHON_PYQT
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS # qt
depends on BR2_USE_MMU # qt
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # qt
select BR2_PACKAGE_QT
select BR2_PACKAGE_PYTHON_SIP
help
diff --git a/package/python-sip/Config.in b/package/python-sip/Config.in
index 45e48ad..9a4296a 100644
--- a/package/python-sip/Config.in
+++ b/package/python-sip/Config.in
@@ -1,5 +1,6 @@
comment "python-sip needs a toolchain w/ C++, threads"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_PYTHON_SIP
@@ -7,6 +8,7 @@ config BR2_PACKAGE_PYTHON_SIP
depends on BR2_INSTALL_LIBSTDCPP # qt
depends on BR2_TOOLCHAIN_HAS_THREADS # qt
depends on BR2_USE_MMU # qt
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # qt
select BR2_PACKAGE_QT
help
SIP is a tool that makes it very easy to create Python
diff --git a/package/qt/Config.in b/package/qt/Config.in
index bf14724..06444ed 100644
--- a/package/qt/Config.in
+++ b/package/qt/Config.in
@@ -1,5 +1,6 @@
comment "qt needs a toolchain w/ C++, threads"
depends on BR2_USE_MMU
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
menuconfig BR2_PACKAGE_QT
@@ -7,6 +8,7 @@ menuconfig BR2_PACKAGE_QT
depends on BR2_USE_MMU # fork
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
help
Qt is a cross-platform application and UI framework for
developers using C++.
--
2.4.10
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4
2016-02-23 16:48 [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4 Gustavo Zacarias
@ 2016-02-23 21:22 ` Thomas Petazzoni
2016-02-23 22:19 ` Gustavo Zacarias
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2016-02-23 21:22 UTC (permalink / raw)
To: buildroot
Gustavo,
On Tue, 23 Feb 2016 13:48:09 -0300, Gustavo Zacarias wrote:
> menuconfig BR2_PACKAGE_QT
> @@ -7,6 +8,7 @@ menuconfig BR2_PACKAGE_QT
> depends on BR2_USE_MMU # fork
> depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_TOOLCHAIN_HAS_THREADS
> + depends on BR2_TOOLCHAIN_HAS_SYNC_4
Isn't this broader than it needs to be? Only the Javascript code seems
to use this atomic operation, so maybe we could just make
BR2_PACKAGE_QT_ARCH_SUPPORTS_SCRIPT depends on
BR2_TOOLCHAIN_HAS_SYNC_4. Or maybe it's
BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT.
By doing this, it also simplifies the patch quite a bit, since you
don't need to propagate the dependency to too many packages (if any).
I've indeed tested, and the following defconfig builds fine:
BR2_sparc=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-sparc-glibc-2015.11-rc1-71-g90d1299.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_QT=y
BR2_PACKAGE_QT_LICENSE_APPROVED=y
# BR2_PACKAGE_QT_GUI_MODULE is not set
# BR2_PACKAGE_QT_XML is not set
# BR2_PACKAGE_QT_NETWORK is not set
# BR2_PACKAGE_QT_SCRIPT is not set
# BR2_TARGET_ROOTFS_TAR is not set
Which proves that Qt by itself doesn't use those atomic operations.
Could you research which specific sub-option(s) are causing problems?
I'm pretty sure it's either script or webkit, or possibly both.
Thanks!
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4
2016-02-23 21:22 ` Thomas Petazzoni
@ 2016-02-23 22:19 ` Gustavo Zacarias
2016-02-23 22:30 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Gustavo Zacarias @ 2016-02-23 22:19 UTC (permalink / raw)
To: buildroot
On 23/02/16 18:22, Thomas Petazzoni wrote:
> Isn't this broader than it needs to be? Only the Javascript code seems
> to use this atomic operation, so maybe we could just make
> BR2_PACKAGE_QT_ARCH_SUPPORTS_SCRIPT depends on
> BR2_TOOLCHAIN_HAS_SYNC_4. Or maybe it's
> BR2_PACKAGE_QT_ARCH_SUPPORTS_WEBKIT.
>
> By doing this, it also simplifies the patch quite a bit, since you
> don't need to propagate the dependency to too many packages (if any).
>
> I've indeed tested, and the following defconfig builds fine:
>
> BR2_sparc=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-sparc-glibc-2015.11-rc1-71-g90d1299.tar.bz2"
> BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
> BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_3=y
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
> BR2_TOOLCHAIN_EXTERNAL_CXX=y
> BR2_INIT_NONE=y
> BR2_SYSTEM_BIN_SH_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_QT=y
> BR2_PACKAGE_QT_LICENSE_APPROVED=y
> # BR2_PACKAGE_QT_GUI_MODULE is not set
> # BR2_PACKAGE_QT_XML is not set
> # BR2_PACKAGE_QT_NETWORK is not set
> # BR2_PACKAGE_QT_SCRIPT is not set
> # BR2_TARGET_ROOTFS_TAR is not set
>
> Which proves that Qt by itself doesn't use those atomic operations.
> Could you research which specific sub-option(s) are causing problems?
> I'm pretty sure it's either script or webkit, or possibly both.
It's possible, however how likely is it an arch that doesn't support
atomics (normally meaning very old) running a QT gui?
SPARC v8 is normally used these days for rad-hard/aerospace/avionics
solutions (gaisler), it's doubtful anyone with an old sparcstation (pre
1995) with known broken kernel support will care.
Regards.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4
2016-02-23 22:19 ` Gustavo Zacarias
@ 2016-02-23 22:30 ` Thomas Petazzoni
2016-02-24 12:19 ` Gustavo Zacarias
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2016-02-23 22:30 UTC (permalink / raw)
To: buildroot
Hello,
On Tue, 23 Feb 2016 19:19:29 -0300, Gustavo Zacarias wrote:
> It's possible, however how likely is it an arch that doesn't support
> atomics (normally meaning very old) running a QT gui?
The specific config I tested had the GUI support disabled, i.e just
QtCore, not QtGui.
Though I agree with you that generally speaking, usage on SPARC is
unlikely. But by narrowing the dependency to just script and/or webkit,
we have to propagate it to a lot less packages, which actually means
that supporting this weird SPARC architecture creates less noise, which
is what we want.
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4
2016-02-23 22:30 ` Thomas Petazzoni
@ 2016-02-24 12:19 ` Gustavo Zacarias
2016-02-24 13:14 ` Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Gustavo Zacarias @ 2016-02-24 12:19 UTC (permalink / raw)
To: buildroot
On 23/02/16 19:30, Thomas Petazzoni wrote:
> Hello,
>
> On Tue, 23 Feb 2016 19:19:29 -0300, Gustavo Zacarias wrote:
>
>> It's possible, however how likely is it an arch that doesn't support
>> atomics (normally meaning very old) running a QT gui?
>
> The specific config I tested had the GUI support disabled, i.e just
> QtCore, not QtGui.
>
> Though I agree with you that generally speaking, usage on SPARC is
> unlikely. But by narrowing the dependency to just script and/or webkit,
> we have to propagate it to a lot less packages, which actually means
> that supporting this weird SPARC architecture creates less noise, which
> is what we want.
>
> Thomas
It seems it's both script & webkit that need atomics.
However i think the arch supports list is flawed as well, webkit hasn't
worked for many of those architectures in the past - they build, yes,
but they'll probably crash on startup.
But i'm not about to test all of them since that would require hardware,
so i'm removing sparc as well since it's a cliche that can't be fixed.
Regards.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4
2016-02-24 12:19 ` Gustavo Zacarias
@ 2016-02-24 13:14 ` Thomas Petazzoni
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2016-02-24 13:14 UTC (permalink / raw)
To: buildroot
Hello,
On Wed, 24 Feb 2016 09:19:34 -0300, Gustavo Zacarias wrote:
> It seems it's both script & webkit that need atomics.
> However i think the arch supports list is flawed as well, webkit hasn't
> worked for many of those architectures in the past - they build, yes,
> but they'll probably crash on startup.
> But i'm not about to test all of them since that would require hardware,
> so i'm removing sparc as well since it's a cliche that can't be fixed.
Fully agreed to remove SPARC from the list of supported architectures
for webkit and script. However, I believe it would still be good to add
the BR2_TOOLCHAIN_HAS_SYNC_4 dependency as well.
Regarding the architectures that build but don't work at runtime, I
guess all we can do is leave things are they are, and change them
when/if someone complains/reports an issue. We are indeed not going to
test Webkit/Script on every possible funky architecture.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-02-24 13:14 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-23 16:48 [Buildroot] [PATCH] qt: depends on BR2_TOOLCHAIN_HAS_SYNC_4 Gustavo Zacarias
2016-02-23 21:22 ` Thomas Petazzoni
2016-02-23 22:19 ` Gustavo Zacarias
2016-02-23 22:30 ` Thomas Petazzoni
2016-02-24 12:19 ` Gustavo Zacarias
2016-02-24 13:14 ` Thomas Petazzoni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox