All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/9] arc: Support option of atomic extension
@ 2014-07-28 18:02 Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 2/9] cairo: arc: Disable if ARC atomics are disabled Anton Kolesov
                   ` (8 more replies)
  0 siblings, 9 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

GCC has several builtin functions that implement atomic operations. In GCC
for ARC those functions rely on LLOCK/SCOND instructions which are optional
in ARC CPU's. If software uses those functions and as a result those
instructions, it will be abort with Illegal instruction exception. To avoid
confusion user should first specify that their CPU supports atomic
extension, which will allow selection of packages that use builtin atomic
functions.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 arch/Config.in.arc  | 4 ++++
 package/Makefile.in | 4 ++++
 2 files changed, 8 insertions(+)

diff --git a/arch/Config.in.arc b/arch/Config.in.arc
index 60b59f0..9edcbd4 100644
--- a/arch/Config.in.arc
+++ b/arch/Config.in.arc
@@ -1,3 +1,7 @@
+# Choise of atomic instructions presence
+config BR2_ARC_ATOMIC_EXT
+	bool "Atomic extension (LLOCK/SCOND instructions)"
+
 config BR2_ARCH
 	default "arc"	if BR2_arcle
 	default "arceb"	if BR2_arceb
diff --git a/package/Makefile.in b/package/Makefile.in
index fc55850..3d25d2a 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -102,6 +102,10 @@ ifeq ($(BR2_xtensa),y)
 TARGET_ABI += -mlongcalls -mtext-section-literals
 endif
 
+ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
+TARGET_ABI += -matomic
+endif
+
 STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
 STAGING_DIR    = $(HOST_DIR)/$(STAGING_SUBDIR)
 
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 2/9] cairo: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 3/9] jack2: " Anton Kolesov
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Cairo requires GCC built-in atomic functions which are optional in ARC
toolchain.

This fixes:
http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/cairo/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a29..7c1cbac 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
 	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  Cairo is a 2D graphics library with support for multiple
 	  output devices. Currently supported output targets include
@@ -13,6 +14,9 @@ config BR2_PACKAGE_CAIRO
 
 	  http://cairographics.org/
 
+comment "cairo needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
+
 if BR2_PACKAGE_CAIRO
 
 config BR2_PACKAGE_CAIRO_PS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 3/9] jack2: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 2/9] cairo: arc: Disable if ARC atomics are disabled Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 4/9] pulseaudio: " Anton Kolesov
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Jack2 requires GCC built-in atomic functions which are optional in ARC
toolchain.

This fixes:
http://autobuild.buildroot.net/results/c218be876d3abf7a8e212b6d526595bfd835e1c5/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/jack2/Config.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/package/jack2/Config.in b/package/jack2/Config.in
index a443f58..2a04a85 100644
--- a/package/jack2/Config.in
+++ b/package/jack2/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_JACK2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc # missing compiler intrinsics
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	select BR2_PACKAGE_LIBSAMPLERATE
 	select BR2_PACKAGE_LIBSNDFILE
 	select BR2_PACKAGE_ALSA_LIB
@@ -23,6 +23,8 @@ config BR2_PACKAGE_JACK2
 
 comment "jack2 needs a toolchain w/ largefile, threads, C++"
 	depends on BR2_USE_MMU
-	depends on !BR2_arc
 	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || \
 		!BR2_INSTALL_LIBSTDCPP
+
+comment "jack2 needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 4/9] pulseaudio: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 2/9] cairo: arc: Disable if ARC atomics are disabled Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 3/9] jack2: " Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 5/9] libftdi: " Anton Kolesov
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Pulseaudio requires GCC built-in atomic functions which are optional in ARC
toolchain.

This fixes:
http://autobuild.buildroot.net/results/d463f3bf730a600a07ed6cd33695bf45e9fd3540/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/pulseaudio/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/pulseaudio/Config.in b/package/pulseaudio/Config.in
index ac6222c..02401f5 100644
--- a/package/pulseaudio/Config.in
+++ b/package/pulseaudio/Config.in
@@ -8,6 +8,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_SPEEX
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_MMU # fork()
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
@@ -33,3 +34,6 @@ endif
 comment "pulseaudio needs a toolchain w/ wchar, largefile, threads"
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "pulseaudio needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 5/9] libftdi: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
                   ` (2 preceding siblings ...)
  2014-07-28 18:02 ` [Buildroot] [PATCH 4/9] pulseaudio: " Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 6/9] msgpack: " Anton Kolesov
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Libftdi requires GCC built-in atomic functions which are optional in ARC
toolchain.

This fixes:
http://autobuild.buildroot.net/results/6cb25ed954840109c9d0e582e922b0ba9d07e174/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/libftdi/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/libftdi/Config.in b/package/libftdi/Config.in
index dc81514..8bc79e1 100644
--- a/package/libftdi/Config.in
+++ b/package/libftdi/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_LIBFTDI
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_LIBUSB_COMPAT
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  Userspace access to FTDI USB interface chips
 
@@ -20,3 +21,6 @@ endif # BR2_PACKAGE_LIBFTDI
 
 comment "libftdi needs a toolchain w/ threads"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+comment "libftdi needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 6/9] msgpack: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
                   ` (3 preceding siblings ...)
  2014-07-28 18:02 ` [Buildroot] [PATCH 5/9] libftdi: " Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 7/9] icu: " Anton Kolesov
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Msgpack requires GCC built-in atomic functions which are optional in ARC
toolchain.

This fixes:
http://autobuild.buildroot.net/results/44849a386cefb8899f4560296bfbbd8ea19ee910/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/msgpack/Config.in        | 6 ++++--
 package/python-msgpack/Config.in | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/package/msgpack/Config.in b/package/msgpack/Config.in
index b380c58..66e525f 100644
--- a/package/msgpack/Config.in
+++ b/package/msgpack/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_MSGPACK
 	bool "msgpack"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc # atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  MessagePack is an efficient binary serialization format.
 
@@ -12,4 +12,6 @@ config BR2_PACKAGE_MSGPACK
 
 comment "msgpack needs a toolchain w/ C++"
 	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+
+comment "msgpack needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
diff --git a/package/python-msgpack/Config.in b/package/python-msgpack/Config.in
index c4b68a3..365b60c 100644
--- a/package/python-msgpack/Config.in
+++ b/package/python-msgpack/Config.in
@@ -3,7 +3,7 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 	depends on BR2_PACKAGE_PYTHON
 	select BR2_PACKAGE_MSGPACK
 	depends on BR2_INSTALL_LIBSTDCPP # msgpack
-	depends on !BR2_arc # msgpack - atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  MessagePack (http://msgpack.org/) is a fast, compact binary
 	  serialization format, suitable for similar data to JSON.
@@ -15,4 +15,6 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 comment "python-msgpack needs a toolchain w/ C++"
 	depends on BR2_PACKAGE_PYTHON
 	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+
+comment "python-msgpack needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 7/9] icu: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
                   ` (4 preceding siblings ...)
  2014-07-28 18:02 ` [Buildroot] [PATCH 6/9] msgpack: " Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 8/9] libtorrent: " Anton Kolesov
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

ICU requires GCC built-in atomic functions which are optional in ARC
toolchain.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/beecrypt/Config.in    | 6 ++++--
 package/cppcms/Config.in      | 6 ++++--
 package/icu/Config.in         | 6 ++++--
 package/php/Config.ext        | 6 ++++--
 package/qt5/qt5base/Config.in | 5 ++++-
 5 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/package/beecrypt/Config.in b/package/beecrypt/Config.in
index 462c8a6..2c17685 100644
--- a/package/beecrypt/Config.in
+++ b/package/beecrypt/Config.in
@@ -15,15 +15,17 @@ config BR2_PACKAGE_BEECRYPT_CPP
 	bool "C++ support"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_WCHAR # icu
-	depends on !BR2_arc # icu
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	depends on !BR2_BINFMT_FLAT # icu
 	select BR2_PACKAGE_ICU
 	help
 	  Enable C++ support. This pulls in the (large) icu package.
 
 comment "C++ support needs a toolchain w/ wchar"
-	depends on !BR2_arc
 	depends on !BR2_BINFMT_FLAT
 	depends on BR2_INSTALL_LIBSTDCPP && !BR2_USE_WCHAR
 
+comment "C++ support needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
+
 endif # BR2_PACKAGE_BEECRYPT
diff --git a/package/cppcms/Config.in b/package/cppcms/Config.in
index 614abeb..467025a 100644
--- a/package/cppcms/Config.in
+++ b/package/cppcms/Config.in
@@ -24,7 +24,7 @@ if BR2_PACKAGE_CPPCMS
 
 config BR2_PACKAGE_CPPCMS_ICU
 	bool "enable icu support"
-	depends on !BR2_arc # icu -> atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	depends on !BR2_BINFMT_FLAT # icu
 	depends on BR2_USE_WCHAR # icu
 	select BR2_PACKAGE_ICU
@@ -33,10 +33,12 @@ config BR2_PACKAGE_CPPCMS_ICU
 	  in another hand ICU is heavier than iconv.
 
 comment "icu support needs a toolchain w/ wchar"
-	depends on !BR2_arc
 	depends on !BR2_BINFMT_FLAT
 	depends on !BR2_USE_WCHAR
 
+comment "icu support needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
+
 endif
 
 comment "cppcms needs a toolchain w/ C++, NPTL, dynamic library"
diff --git a/package/icu/Config.in b/package/icu/Config.in
index 9a27894..33a2724 100644
--- a/package/icu/Config.in
+++ b/package/icu/Config.in
@@ -7,14 +7,16 @@ config BR2_PACKAGE_ICU
 	# file, and it cannot easily be changed to generate FLAT
 	# format.
 	depends on !BR2_BINFMT_FLAT
-	depends on !BR2_arc # atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	help
 	  International Components for Unicode.
 
 	  http://site.icu-project.org/
 
 comment "icu needs a toolchain w/ C++, wchar, threads"
-	depends on !BR2_arc
 	depends on !BR2_BINFMT_FLAT
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS
+
+comment "icu needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
diff --git a/package/php/Config.ext b/package/php/Config.ext
index ff9a6ad..90cb6af 100644
--- a/package/php/Config.ext
+++ b/package/php/Config.ext
@@ -166,17 +166,19 @@ config BR2_PACKAGE_PHP_EXT_INTL
 	select BR2_PACKAGE_ICU
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_WCHAR
-	depends on !BR2_arc # icu -> atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	depends on !BR2_BINFMT_FLAT # icu
 	depends on BR2_TOOLCHAIN_HAS_THREADS # icu
 	help
 	  Internationalization support
 
 comment "intl support needs a toolchain w/ C++, wchar, threads"
-	depends on !BR2_arc
 	depends on !BR2_BINFMT_FLAT
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
 
+comment "intl supports needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
+
 comment "Image processing"
 
 config BR2_PACKAGE_PHP_EXT_EXIF
diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index b95a74a..5789eb9 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -241,12 +241,15 @@ config BR2_PACKAGE_QT5BASE_DBUS
 config BR2_PACKAGE_QT5BASE_ICU
 	bool "Enable ICU support"
 	select BR2_PACKAGE_ICU
-	depends on !BR2_arc # icu -> atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	depends on !BR2_BINFMT_FLAT # icu
 	help
 	  This option enables ICU support in Qt5. This is for example
 	  needed for Qt5Webkit.
 
+comment "icu needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
+
 config BR2_PACKAGE_QT5BASE_TSLIB
 	bool "Enable Tslib support"
 	depends on !BR2_PREFER_STATIC_LIB # dlopen
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 8/9] libtorrent: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
                   ` (5 preceding siblings ...)
  2014-07-28 18:02 ` [Buildroot] [PATCH 7/9] icu: " Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-28 18:02 ` [Buildroot] [PATCH 9/9] thrift: " Anton Kolesov
  2014-07-30  6:45 ` [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Thomas Petazzoni
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Libtorrent requires GCC built-in atomic functions which are optional in
ARC toolchain.

This fixes:
http://autobuild.buildroot.net/results/51414e22c8ea47c38df20d864526a370c5a895d7/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/libtorrent/Config.in | 7 ++++---
 package/rtorrent/Config.in   | 7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/package/libtorrent/Config.in b/package/libtorrent/Config.in
index a21bf95..a8f31d2 100644
--- a/package/libtorrent/Config.in
+++ b/package/libtorrent/Config.in
@@ -2,8 +2,7 @@ config BR2_PACKAGE_LIBTORRENT
 	bool "libtorrent"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	# ARC GCC doesn't support atomic instructions required by this lib
-	depends on !BR2_arc
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	select BR2_PACKAGE_LIBSIGC
 	help
 	  BitTorrent library written in C++ for *nix
@@ -12,4 +11,6 @@ config BR2_PACKAGE_LIBTORRENT
 
 comment "libtorrent needs a toolchain w/ C++, threads"
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_arc
+
+comment "libtorrent needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
diff --git a/package/rtorrent/Config.in b/package/rtorrent/Config.in
index fa81cde..a7a3411 100644
--- a/package/rtorrent/Config.in
+++ b/package/rtorrent/Config.in
@@ -4,8 +4,7 @@ config BR2_PACKAGE_RTORRENT
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_MMU # fork()
-	# ARC GCC doesn't support atomic instructions required by libtorrent
-	depends on !BR2_arc
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	select BR2_PACKAGE_LIBCURL
 	select BR2_PACKAGE_LIBSIGC
 	select BR2_PACKAGE_LIBTORRENT
@@ -19,4 +18,6 @@ config BR2_PACKAGE_RTORRENT
 comment "rtorrent needs a toolchain w/ C++, threads, wchar"
 	depends on BR2_USE_MMU
 	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
-	depends on !BR2_arc
+
+comment "rtorrent needs an ARC CPU w/ atomic extension"
+	depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 9/9] thrift: arc: Disable if ARC atomics are disabled
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
                   ` (6 preceding siblings ...)
  2014-07-28 18:02 ` [Buildroot] [PATCH 8/9] libtorrent: " Anton Kolesov
@ 2014-07-28 18:02 ` Anton Kolesov
  2014-07-30  6:45 ` [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Thomas Petazzoni
  8 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-28 18:02 UTC (permalink / raw)
  To: buildroot

Thrift requires GCC built-in atomic functions which are optional in ARC
toolchain.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/thrift/Config.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/package/thrift/Config.in b/package/thrift/Config.in
index ac99801..6ea5751 100644
--- a/package/thrift/Config.in
+++ b/package/thrift/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_THRIFT
 	depends on BR2_USE_WCHAR
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_arc # atomic builtins
+	depends on !BR2_arc || BR2_ARC_ATOMIC_EXT
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_LIBEVENT
 	select BR2_PACKAGE_OPENSSL
@@ -22,4 +22,6 @@ config BR2_PACKAGE_THRIFT
 comment "thrift needs a toolchain w/ C++, largefile, wchar, threads"
 	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || \
 		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+
+comment "thrift needs an ARC CPU w/ atomic extension"
+        depends on BR2_arc && !BR2_ARC_ATOMIC_EXT
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH 1/9] arc: Support option of atomic extension
  2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
                   ` (7 preceding siblings ...)
  2014-07-28 18:02 ` [Buildroot] [PATCH 9/9] thrift: " Anton Kolesov
@ 2014-07-30  6:45 ` Thomas Petazzoni
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
  8 siblings, 1 reply; 42+ messages in thread
From: Thomas Petazzoni @ 2014-07-30  6:45 UTC (permalink / raw)
  To: buildroot

Dear Anton Kolesov,

On Mon, 28 Jul 2014 22:02:00 +0400, Anton Kolesov wrote:

> GCC has several builtin functions that implement atomic operations. In GCC
> for ARC those functions rely on LLOCK/SCOND instructions which are optional
> in ARC CPU's. If software uses those functions and as a result those
> instructions, it will be abort with Illegal instruction exception. To avoid
> confusion user should first specify that their CPU supports atomic
> extension, which will allow selection of packages that use builtin atomic
> functions.
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  arch/Config.in.arc  | 4 ++++
>  package/Makefile.in | 4 ++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc
> index 60b59f0..9edcbd4 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -1,3 +1,7 @@
> +# Choise of atomic instructions presence
> +config BR2_ARC_ATOMIC_EXT
> +	bool "Atomic extension (LLOCK/SCOND instructions)"
> +
>  config BR2_ARCH
>  	default "arc"	if BR2_arcle
>  	default "arceb"	if BR2_arceb
> diff --git a/package/Makefile.in b/package/Makefile.in
> index fc55850..3d25d2a 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -102,6 +102,10 @@ ifeq ($(BR2_xtensa),y)
>  TARGET_ABI += -mlongcalls -mtext-section-literals
>  endif
>  
> +ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
> +TARGET_ABI += -matomic
> +endif
> +
>  STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
>  STAGING_DIR    = $(HOST_DIR)/$(STAGING_SUBDIR)

I think this is looking generally good, but after discussing with Yann,
I think we'd prefer to have a slightly more generic solution. First, a
hidden kconfig boolean that tells whether the compiler has the atomic
intrinsics:

config BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
	bool

and then architectures would "select" this hidden boolean whenever they
have the atomic intrinsics, and packages would use this hidden boolean
to create the dependencies.

What do you think about this? It's not a big change compared to what
you have done, it only pushes things to be a little bit more generic.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics
  2014-07-30  6:45 ` [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Thomas Petazzoni
@ 2014-07-31 13:24   ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 2/9] cairo: Add dependency on " Anton Kolesov
                       ` (9 more replies)
  0 siblings, 10 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

GCC has several builtin functions that implement atomic operations. Those
functions are architecture specific and may not be implemented by the
specific toolchain. In case of GCC for ARC those functions rely on
LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't
support those instructions but software tries to use them, then application
will be aborted with Illegal instruction exception. To avoid confusion user
should first specify that their CPU supports atomic extension, which will
allow selection of packages that use builtin atomic functions.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 arch/Config.in.arc            | 5 +++++
 package/Makefile.in           | 4 ++++
 toolchain/toolchain-common.in | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/arch/Config.in.arc b/arch/Config.in.arc
index 60b59f0..836cfef 100644
--- a/arch/Config.in.arc
+++ b/arch/Config.in.arc
@@ -1,3 +1,8 @@
+# Choise of atomic instructions presence
+config BR2_ARC_ATOMIC_EXT
+	bool "Atomic extension (LLOCK/SCOND instructions)"
+	select BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_ARCH
 	default "arc"	if BR2_arcle
 	default "arceb"	if BR2_arceb
diff --git a/package/Makefile.in b/package/Makefile.in
index 02f6e3d..106a04c 100644
--- a/package/Makefile.in
+++ b/package/Makefile.in
@@ -102,6 +102,10 @@ ifeq ($(BR2_xtensa),y)
 TARGET_ABI += -mlongcalls -mtext-section-literals
 endif
 
+ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
+TARGET_ABI += -matomic
+endif
+
 STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
 STAGING_DIR    = $(HOST_DIR)/$(STAGING_SUBDIR)
 
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index 13de9e5..f9cb7cf 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -44,6 +44,10 @@ config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
 config BR2_TOOLCHAIN_HAS_SSP
 	bool
 
+config BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+	bool
+	default y if !BR2_arc
+
 config BR2_ENABLE_LOCALE_PURGE
 	bool "Purge unwanted locales"
 	help
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 2/9] cairo: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 3/9] jack2: " Anton Kolesov
                       ` (8 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Cairo requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/cairo/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a29..2aeaa2a 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_PIXMAN
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
@@ -13,6 +14,9 @@ config BR2_PACKAGE_CAIRO
 
 	  http://cairographics.org/
 
+comment "cairo needs a toolchain with atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 if BR2_PACKAGE_CAIRO
 
 config BR2_PACKAGE_CAIRO_PS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 3/9] jack2: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 2/9] cairo: Add dependency on " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 4/9] pulseaudio: " Anton Kolesov
                       ` (7 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Jack requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/c218be876d3abf7a8e212b6d526595bfd835e1c5/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/jack2/Config.in | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/package/jack2/Config.in b/package/jack2/Config.in
index a443f58..82143c7 100644
--- a/package/jack2/Config.in
+++ b/package/jack2/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_JACK2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
 	depends on BR2_USE_MMU # fork()
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc # missing compiler intrinsics
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_LIBSAMPLERATE
 	select BR2_PACKAGE_LIBSNDFILE
 	select BR2_PACKAGE_ALSA_LIB
@@ -21,8 +21,7 @@ config BR2_PACKAGE_JACK2
 
 	  http://jackaudio.org/
 
-comment "jack2 needs a toolchain w/ largefile, threads, C++"
+comment "jack2 needs a toolchain w/ largefile, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !BR2_arc
 	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS || \
-		!BR2_INSTALL_LIBSTDCPP
+		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 4/9] pulseaudio: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 2/9] cairo: Add dependency on " Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 3/9] jack2: " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 5/9] libftdi: " Anton Kolesov
                       ` (6 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Pulseaudio requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/d463f3bf730a600a07ed6cd33695bf45e9fd3540/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/pulseaudio/Config.in | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/package/pulseaudio/Config.in b/package/pulseaudio/Config.in
index ac6222c..de99fc8 100644
--- a/package/pulseaudio/Config.in
+++ b/package/pulseaudio/Config.in
@@ -8,6 +8,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_SPEEX
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_MMU # fork()
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
@@ -30,6 +31,7 @@ config BR2_PACKAGE_PULSEAUDIO_DAEMON
 
 endif
 
-comment "pulseaudio needs a toolchain w/ wchar, largefile, threads"
+comment "pulseaudio needs a toolchain w/ wchar, largefile, threads, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 5/9] libftdi: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (2 preceding siblings ...)
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 4/9] pulseaudio: " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 6/9] msgpack: " Anton Kolesov
                       ` (5 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Libftdi requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/6cb25ed954840109c9d0e582e922b0ba9d07e174/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/libftdi/Config.in | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/libftdi/Config.in b/package/libftdi/Config.in
index dc81514..ce65158 100644
--- a/package/libftdi/Config.in
+++ b/package/libftdi/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_LIBFTDI
 	bool "libftdi"
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_LIBUSB_COMPAT
 	help
@@ -18,5 +19,5 @@ config BR2_PACKAGE_LIBTFDI_CPP
 
 endif # BR2_PACKAGE_LIBFTDI
 
-comment "libftdi needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
+comment "libftdi needs a toolchain w/ threads, atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 6/9] msgpack: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (3 preceding siblings ...)
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 5/9] libftdi: " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 7/9] icu: " Anton Kolesov
                       ` (4 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Msgpack requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/44849a386cefb8899f4560296bfbbd8ea19ee910/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/msgpack/Config.in        | 7 +++----
 package/python-msgpack/Config.in | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/package/msgpack/Config.in b/package/msgpack/Config.in
index b380c58..7d6277f 100644
--- a/package/msgpack/Config.in
+++ b/package/msgpack/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_MSGPACK
 	bool "msgpack"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc # atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  MessagePack is an efficient binary serialization format.
 
@@ -10,6 +10,5 @@ config BR2_PACKAGE_MSGPACK
 
 	  http://msgpack.org/
 
-comment "msgpack needs a toolchain w/ C++"
-	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+comment "msgpack needs a toolchain w/ C++, atomic intrinsics"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/python-msgpack/Config.in b/package/python-msgpack/Config.in
index c4b68a3..3b825a1 100644
--- a/package/python-msgpack/Config.in
+++ b/package/python-msgpack/Config.in
@@ -3,7 +3,7 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 	depends on BR2_PACKAGE_PYTHON
 	select BR2_PACKAGE_MSGPACK
 	depends on BR2_INSTALL_LIBSTDCPP # msgpack
-	depends on !BR2_arc # msgpack - atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # msgpack
 	help
 	  MessagePack (http://msgpack.org/) is a fast, compact binary
 	  serialization format, suitable for similar data to JSON.
@@ -12,7 +12,6 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 
 	  https://pypi.python.org/pypi/msgpack-python/
 
-comment "python-msgpack needs a toolchain w/ C++"
+comment "python-msgpack needs a toolchain w/ C++, atomic intrinsics"
 	depends on BR2_PACKAGE_PYTHON
-	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 7/9] icu: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (4 preceding siblings ...)
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 6/9] msgpack: " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 8/9] libtorrent: " Anton Kolesov
                       ` (3 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

ICU requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/beecrypt/Config.in    | 12 ++++++------
 package/cppcms/Config.in      |  7 +++----
 package/icu/Config.in         |  7 +++----
 package/php/Config.ext        |  8 ++++----
 package/qt5/qt5base/Config.in |  5 ++++-
 5 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/package/beecrypt/Config.in b/package/beecrypt/Config.in
index 462c8a6..e0f9181 100644
--- a/package/beecrypt/Config.in
+++ b/package/beecrypt/Config.in
@@ -1,5 +1,5 @@
-comment "beecrypt needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
+comment "beecrypt needs a toolchain w/ threads, atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 
 config BR2_PACKAGE_BEECRYPT
 	bool "beecrypt"
@@ -15,15 +15,15 @@ config BR2_PACKAGE_BEECRYPT_CPP
 	bool "C++ support"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_WCHAR # icu
-	depends on !BR2_arc # icu
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
 	depends on !BR2_BINFMT_FLAT # icu
 	select BR2_PACKAGE_ICU
 	help
 	  Enable C++ support. This pulls in the (large) icu package.
 
-comment "C++ support needs a toolchain w/ wchar"
-	depends on !BR2_arc
+comment "C++ support needs a toolchain w/ wchar, atomic intrinsics"
 	depends on !BR2_BINFMT_FLAT
-	depends on BR2_INSTALL_LIBSTDCPP && !BR2_USE_WCHAR
+	depends on BR2_INSTALL_LIBSTDCPP && (!BR2_USE_WCHAR || \
+		!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS)
 
 endif # BR2_PACKAGE_BEECRYPT
diff --git a/package/cppcms/Config.in b/package/cppcms/Config.in
index 614abeb..297c514 100644
--- a/package/cppcms/Config.in
+++ b/package/cppcms/Config.in
@@ -24,17 +24,16 @@ if BR2_PACKAGE_CPPCMS
 
 config BR2_PACKAGE_CPPCMS_ICU
 	bool "enable icu support"
-	depends on !BR2_arc # icu -> atomic builtins
 	depends on !BR2_BINFMT_FLAT # icu
 	depends on BR2_USE_WCHAR # icu
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
 	select BR2_PACKAGE_ICU
 	help
 	  Using ICU allows advanced localization features into CppCMS,
 	  in another hand ICU is heavier than iconv.
 
-comment "icu support needs a toolchain w/ wchar"
-	depends on !BR2_arc
-	depends on !BR2_BINFMT_FLAT
+comment "icu support needs a toolchain w/ wchar, atomic intrinsics"
+	depends on !BR2_BINFMT_FLAT || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	depends on !BR2_USE_WCHAR
 
 endif
diff --git a/package/icu/Config.in b/package/icu/Config.in
index d14f8d8..d4521ac 100644
--- a/package/icu/Config.in
+++ b/package/icu/Config.in
@@ -7,7 +7,7 @@ config BR2_PACKAGE_ICU
 	# file, and it cannot easily be changed to generate FLAT
 	# format.
 	depends on !BR2_BINFMT_FLAT
-	depends on !BR2_arc # atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  International Components for Unicode.
 
@@ -25,8 +25,7 @@ config BR2_PACKAGE_ICU_CUSTOM_DATA_PATH
 
 endif
 
-comment "icu needs a toolchain w/ C++, wchar, threads"
-	depends on !BR2_arc
+comment "icu needs a toolchain w/ C++, wchar, threads, atomic intrinsics"
 	depends on !BR2_BINFMT_FLAT
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
-		!BR2_TOOLCHAIN_HAS_THREADS
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/php/Config.ext b/package/php/Config.ext
index ff9a6ad..078be8d 100644
--- a/package/php/Config.ext
+++ b/package/php/Config.ext
@@ -166,16 +166,16 @@ config BR2_PACKAGE_PHP_EXT_INTL
 	select BR2_PACKAGE_ICU
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_WCHAR
-	depends on !BR2_arc # icu -> atomic builtins
 	depends on !BR2_BINFMT_FLAT # icu
 	depends on BR2_TOOLCHAIN_HAS_THREADS # icu
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
 	help
 	  Internationalization support
 
-comment "intl support needs a toolchain w/ C++, wchar, threads"
-	depends on !BR2_arc
+comment "intl support needs a toolchain w/ C++, wchar, threads, atomic intrinsics"
 	depends on !BR2_BINFMT_FLAT
-	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 
 comment "Image processing"
 
diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index b95a74a..67f211c 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -241,12 +241,15 @@ config BR2_PACKAGE_QT5BASE_DBUS
 config BR2_PACKAGE_QT5BASE_ICU
 	bool "Enable ICU support"
 	select BR2_PACKAGE_ICU
-	depends on !BR2_arc # icu -> atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # icu
 	depends on !BR2_BINFMT_FLAT # icu
 	help
 	  This option enables ICU support in Qt5. This is for example
 	  needed for Qt5Webkit.
 
+comment "icu needs a toolchain w/ atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_QT5BASE_TSLIB
 	bool "Enable Tslib support"
 	depends on !BR2_PREFER_STATIC_LIB # dlopen
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 8/9] libtorrent: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (5 preceding siblings ...)
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 7/9] icu: " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 9/9] thrift: " Anton Kolesov
                       ` (2 subsequent siblings)
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Libtorrent requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/51414e22c8ea47c38df20d864526a370c5a895d7/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/libtorrent/Config.in | 9 ++++-----
 package/rtorrent/Config.in   | 9 ++++-----
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/package/libtorrent/Config.in b/package/libtorrent/Config.in
index a21bf95..a706d98 100644
--- a/package/libtorrent/Config.in
+++ b/package/libtorrent/Config.in
@@ -2,14 +2,13 @@ config BR2_PACKAGE_LIBTORRENT
 	bool "libtorrent"
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	# ARC GCC doesn't support atomic instructions required by this lib
-	depends on !BR2_arc
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_LIBSIGC
 	help
 	  BitTorrent library written in C++ for *nix
 
 	  http://libtorrent.rakshasa.no/
 
-comment "libtorrent needs a toolchain w/ C++, threads"
-	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_arc
+comment "libtorrent needs a toolchain w/ C++, threads, atomic intrinsics"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/rtorrent/Config.in b/package/rtorrent/Config.in
index fa81cde..1efc5f1 100644
--- a/package/rtorrent/Config.in
+++ b/package/rtorrent/Config.in
@@ -4,8 +4,7 @@ config BR2_PACKAGE_RTORRENT
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_USE_MMU # fork()
-	# ARC GCC doesn't support atomic instructions required by libtorrent
-	depends on !BR2_arc
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # libtorrent
 	select BR2_PACKAGE_LIBCURL
 	select BR2_PACKAGE_LIBSIGC
 	select BR2_PACKAGE_LIBTORRENT
@@ -16,7 +15,7 @@ config BR2_PACKAGE_RTORRENT
 
 	  http://libtorrent.rakshasa.no/
 
-comment "rtorrent needs a toolchain w/ C++, threads, wchar"
+comment "rtorrent needs a toolchain w/ C++, threads, wchar, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS)
-	depends on !BR2_arc
+	depends on !(BR2_INSTALL_LIBSTDCPP && BR2_USE_WCHAR && BR2_TOOLCHAIN_HAS_THREADS \
+		&& BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS)
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 9/9] thrift: Add dependency on atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (6 preceding siblings ...)
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 8/9] libtorrent: " Anton Kolesov
@ 2014-07-31 13:24     ` Anton Kolesov
  2014-07-31 17:25     ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for " Yann E. MORIN
  2014-08-03  9:32     ` Thomas Petazzoni
  9 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-07-31 13:24 UTC (permalink / raw)
  To: buildroot

Thrift requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/thrift/Config.in | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/package/thrift/Config.in b/package/thrift/Config.in
index ac99801..071c85c 100644
--- a/package/thrift/Config.in
+++ b/package/thrift/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_THRIFT
 	depends on BR2_USE_WCHAR
 	depends on BR2_LARGEFILE
 	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on !BR2_arc # atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_BOOST
 	select BR2_PACKAGE_LIBEVENT
 	select BR2_PACKAGE_OPENSSL
@@ -19,7 +19,8 @@ config BR2_PACKAGE_THRIFT
 
 	  http://thrift.apache.org/
 
-comment "thrift needs a toolchain w/ C++, largefile, wchar, threads"
+comment "thrift needs a toolchain w/ C++, largefile, wchar, threads, atomic intrinsics"
 	depends on !BR2_LARGEFILE || !BR2_USE_WCHAR || \
-		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
+		!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (7 preceding siblings ...)
  2014-07-31 13:24     ` [Buildroot] [PATCH v2 9/9] thrift: " Anton Kolesov
@ 2014-07-31 17:25     ` Yann E. MORIN
  2014-07-31 18:05       ` Thomas Petazzoni
  2014-08-03  9:32     ` Thomas Petazzoni
  9 siblings, 1 reply; 42+ messages in thread
From: Yann E. MORIN @ 2014-07-31 17:25 UTC (permalink / raw)
  To: buildroot

Anton, All,

On 2014-07-31 17:24 +0400, Anton Kolesov spake thusly:
> GCC has several builtin functions that implement atomic operations. Those
> functions are architecture specific and may not be implemented by the
> specific toolchain. In case of GCC for ARC those functions rely on
> LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't
> support those instructions but software tries to use them, then application
> will be aborted with Illegal instruction exception. To avoid confusion user
> should first specify that their CPU supports atomic extension, which will
> allow selection of packages that use builtin atomic functions.

I think what Thomas and I discussed, was to have a patch series that
does the following changes:

   1- introduce BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS;
   2- have all current architectures, that have atomics, select that new
      symbol (note: i386 does not, i486 and above have, for example);
   3- convert packages (one patch par package) to depend on it;
   4- introduce BR2_ARC_ATOMIC_EXT that selects it, too.

This is more logical: you first add a new option, and then you gradually
start using it, until finally you airrive to what you eventually wanted.

Regards,
Yann E. MORIN.

> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  arch/Config.in.arc            | 5 +++++
>  package/Makefile.in           | 4 ++++
>  toolchain/toolchain-common.in | 4 ++++
>  3 files changed, 13 insertions(+)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc
> index 60b59f0..836cfef 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -1,3 +1,8 @@
> +# Choise of atomic instructions presence
> +config BR2_ARC_ATOMIC_EXT
> +	bool "Atomic extension (LLOCK/SCOND instructions)"
> +	select BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_ARCH
>  	default "arc"	if BR2_arcle
>  	default "arceb"	if BR2_arceb
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 02f6e3d..106a04c 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -102,6 +102,10 @@ ifeq ($(BR2_xtensa),y)
>  TARGET_ABI += -mlongcalls -mtext-section-literals
>  endif
>  
> +ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
> +TARGET_ABI += -matomic
> +endif
> +
>  STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
>  STAGING_DIR    = $(HOST_DIR)/$(STAGING_SUBDIR)
>  
> diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
> index 13de9e5..f9cb7cf 100644
> --- a/toolchain/toolchain-common.in
> +++ b/toolchain/toolchain-common.in
> @@ -44,6 +44,10 @@ config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
>  config BR2_TOOLCHAIN_HAS_SSP
>  	bool
>  
> +config BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +	bool
> +	default y if !BR2_arc
> +
>  config BR2_ENABLE_LOCALE_PURGE
>  	bool "Purge unwanted locales"
>  	help
> -- 
> 1.8.4.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics
  2014-07-31 17:25     ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for " Yann E. MORIN
@ 2014-07-31 18:05       ` Thomas Petazzoni
  0 siblings, 0 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2014-07-31 18:05 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Thu, 31 Jul 2014 19:25:20 +0200, Yann E. MORIN wrote:

> On 2014-07-31 17:24 +0400, Anton Kolesov spake thusly:
> > GCC has several builtin functions that implement atomic operations. Those
> > functions are architecture specific and may not be implemented by the
> > specific toolchain. In case of GCC for ARC those functions rely on
> > LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't
> > support those instructions but software tries to use them, then application
> > will be aborted with Illegal instruction exception. To avoid confusion user
> > should first specify that their CPU supports atomic extension, which will
> > allow selection of packages that use builtin atomic functions.
> 
> I think what Thomas and I discussed, was to have a patch series that
> does the following changes:
> 
>    1- introduce BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS;
>    2- have all current architectures, that have atomics, select that new
>       symbol (note: i386 does not, i486 and above have, for example);
>    3- convert packages (one patch par package) to depend on it;
>    4- introduce BR2_ARC_ATOMIC_EXT that selects it, too.
> 
> This is more logical: you first add a new option, and then you gradually
> start using it, until finally you airrive to what you eventually wanted.

Well, that's pretty much what Anton did actually: his patch 1 covers
your items (1), (2) and (4), and his other patches cover your item (3).
And there's actually no problem in having (4) being done before (3).

So far the only difference between what you expose and what he has done
is the fact that his patch series have
BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS selected even for i386. But the
current Buildroot already assumes that i386 has atomic intrinsics.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics
  2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
                       ` (8 preceding siblings ...)
  2014-07-31 17:25     ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for " Yann E. MORIN
@ 2014-08-03  9:32     ` Thomas Petazzoni
  2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
  2014-08-04 12:17       ` [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section Anton Kolesov
  9 siblings, 2 replies; 42+ messages in thread
From: Thomas Petazzoni @ 2014-08-03  9:32 UTC (permalink / raw)
  To: buildroot

Dear Anton Kolesov,

On Thu, 31 Jul 2014 17:24:42 +0400, Anton Kolesov wrote:
> GCC has several builtin functions that implement atomic operations. Those
> functions are architecture specific and may not be implemented by the
> specific toolchain. In case of GCC for ARC those functions rely on
> LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't
> support those instructions but software tries to use them, then application
> will be aborted with Illegal instruction exception. To avoid confusion user
> should first specify that their CPU supports atomic extension, which will
> allow selection of packages that use builtin atomic functions.
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>

I have applied the following patches from your series:

3ebdc64dcc687a95dd4fed7eda8ff811d2db0eaf thrift: Add dependency on atomic intrinsics
b6f9dd2a389c1f4da858c928bf48f8baec461082 libtorrent: Add dependency on atomic intrinsics
b7a791a103d21835d0e3fb8accfb58346330560f icu: Add dependency on atomic intrinsics
b35d1582346625a7076de0a44958d5c5133103d2 jack2: Add dependency on atomic intrinsics
cbffd50561f7ce595296bddaf108031e501b2063 toolchain: Add config option for atomic intrinsics

I did not apply the other patches, because they were missing the
propagation of the atomic intrinsics dependency to the reverse
depencies of the package needing atomic intrinsics. For example, in
PATCH 2/9, you add the dependency on atomic intrinsics to Cairo, but
nowhere you propagate that to the reverse dependencies of Cairo. Could
you send an updated version of those patches, taking into account this
need?

Also, could you send a patch against the Buildroot manual that
documents the atomic intrinsics dependency, like we document
dependencies like wchar, largefile, ipv6 and so on.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v3 1/4] cairo: Add dependency on atomic intrinsics
  2014-08-03  9:32     ` Thomas Petazzoni
@ 2014-08-04 12:16       ` Anton Kolesov
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 2/4] pulseaudio: " Anton Kolesov
                           ` (3 more replies)
  2014-08-04 12:17       ` [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section Anton Kolesov
  1 sibling, 4 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-04 12:16 UTC (permalink / raw)
  To: buildroot

Cairo requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/cairo/Config.in                        | 4 ++++
 package/efl/libevas-generic-loaders/Config.in  | 6 ++++--
 package/gstreamer/gst-plugins-good/Config.in   | 4 ++++
 package/gstreamer1/gst1-plugins-good/Config.in | 4 ++++
 package/libgtk2/Config.in                      | 5 +++--
 package/librsvg/Config.in                      | 6 ++++--
 package/libsvg-cairo/Config.in                 | 4 ++++
 package/pango/Config.in                        | 5 +++--
 package/webkit/Config.in                       | 6 ++++--
 package/weston/Config.in                       | 4 ++++
 10 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a29..2aeaa2a 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_PIXMAN
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
@@ -13,6 +14,9 @@ config BR2_PACKAGE_CAIRO
 
 	  http://cairographics.org/
 
+comment "cairo needs a toolchain with atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 if BR2_PACKAGE_CAIRO
 
 config BR2_PACKAGE_CAIRO_PS
diff --git a/package/efl/libevas-generic-loaders/Config.in b/package/efl/libevas-generic-loaders/Config.in
index 23b9f77..c7145d5 100644
--- a/package/efl/libevas-generic-loaders/Config.in
+++ b/package/efl/libevas-generic-loaders/Config.in
@@ -17,10 +17,12 @@ config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG
 	depends on BR2_USE_WCHAR # librsvg -> glib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # librsvg -> glib2
 	depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	help
 	  This option enables the Evas generic SVG loader
 
-comment "SVG loader needs a toolchain w/ wchar, threads, C++"
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+comment "SVG loader needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 
 endif
diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
index 3ec93cf..8bc79a2 100644
--- a/package/gstreamer/gst-plugins-good/Config.in
+++ b/package/gstreamer/gst-plugins-good/Config.in
@@ -178,9 +178,13 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ANNODEX
 
 config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PNG
 
+comment "cairo needs a toolchain with atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_FLAC
 	bool "flac (libFLAC)"
 	depends on BR2_USE_WCHAR # flac
diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
index 7159c5a..60ee17d 100644
--- a/package/gstreamer1/gst1-plugins-good/Config.in
+++ b/package/gstreamer1/gst1-plugins-good/Config.in
@@ -274,11 +274,15 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PNG
 	help
 	  Cairo-based elements
 
+comment "cairo needs a toolchain with atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC
 	bool "flac (libFLAC)"
 	depends on BR2_USE_WCHAR # flac
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index 5239c25..ce70256 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -17,6 +17,7 @@ config BR2_PACKAGE_LIBGTK2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_INSTALL_LIBSTDCPP # pango
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	help
 	  The GTK+ version 2 graphical user interface library
 
@@ -32,8 +33,8 @@ config BR2_PACKAGE_LIBGTK2_DEMO
 
 endif
 
-comment "libgtk2 needs a toolchain w/ wchar, threads, C++"
+comment "libgtk2 needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_XORG7
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_HAS_THREADS
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
index 5dd4c58..e1dbf4f 100644
--- a/package/librsvg/Config.in
+++ b/package/librsvg/Config.in
@@ -10,12 +10,14 @@ config BR2_PACKAGE_LIBRSVG
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_INSTALL_LIBSTDCPP # pango
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	help
 	  The rsvg library is an efficient renderer for Scalable
 	  Vector Graphics (SVG) pictures.
 
 	  http://librsvg.sourceforge.net/
 
-comment "librsvg needs a toolchain w/ wchar, threads, C++"
+comment "librsvg needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
index 9577c69..48f09f6 100644
--- a/package/libsvg-cairo/Config.in
+++ b/package/libsvg-cairo/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_LIBSVG_CAIRO
 	bool "libsvg-cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_SVG
 	select BR2_PACKAGE_LIBSVG
@@ -9,3 +10,6 @@ config BR2_PACKAGE_LIBSVG_CAIRO
 	  rendering library.
 
 	  http://cairographics.org
+
+comment "cairo needs a toolchain with atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/pango/Config.in b/package/pango/Config.in
index 70f4fd3..6dee251 100644
--- a/package/pango/Config.in
+++ b/package/pango/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_PANGO
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_INSTALL_LIBSTDCPP # freetype support
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_EXPAT
 	select BR2_PACKAGE_CAIRO
@@ -21,7 +22,7 @@ config BR2_PACKAGE_PANGO
 
 	  http://www.pango.org/
 
-comment "pango needs a toolchain w/ wchar, threads, C++"
+comment "pango needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
-		!BR2_INSTALL_LIBSTDCPP
+		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/webkit/Config.in b/package/webkit/Config.in
index c86eb94..99fe18a 100644
--- a/package/webkit/Config.in
+++ b/package/webkit/Config.in
@@ -17,6 +17,7 @@ config BR2_PACKAGE_WEBKIT
 	depends on BR2_PACKAGE_LIBGTK2
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	depends on !BR2_BINFMT_FLAT # icu
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_CAIRO_PNG
 	select BR2_PACKAGE_ENCHANT
 	select BR2_PACKAGE_HARFBUZZ
@@ -41,7 +42,8 @@ config BR2_PACKAGE_WEBKIT
 
 	  http://webkit.org/
 
-comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads"
+comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads, atomic intrinsics"
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/weston/Config.in b/package/weston/Config.in
index aaef405..4b3ca74 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -15,6 +15,7 @@ config BR2_PACKAGE_WESTON
 	depends on !BR2_avr32 # wayland
 	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	# Runtime dependency
 	select BR2_PACKAGE_XKEYBOARD_CONFIG
 	# Make sure at least one compositor is selected.
@@ -27,6 +28,9 @@ config BR2_PACKAGE_WESTON
 
 	  http://wayland.freedesktop.org/
 
+comment "weston needs a toolchain with atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 if BR2_PACKAGE_WESTON
 
 # Helper to make sure at least one compositor is selected.
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v3 2/4] pulseaudio: Add dependency on atomic intrinsics
  2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
@ 2014-08-04 12:16         ` Anton Kolesov
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 3/4] libftdi: " Anton Kolesov
                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-04 12:16 UTC (permalink / raw)
  To: buildroot

Pulseaudio requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/d463f3bf730a600a07ed6cd33695bf45e9fd3540/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/gstreamer/gst-plugins-good/Config.in   | 5 +++++
 package/gstreamer1/gst1-plugins-good/Config.in | 5 +++++
 package/mpd/Config.in                          | 5 +++--
 package/pulseaudio/Config.in                   | 6 ++++--
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
index 8bc79a2..7b577c7 100644
--- a/package/gstreamer/gst-plugins-good/Config.in
+++ b/package/gstreamer/gst-plugins-good/Config.in
@@ -212,9 +212,14 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_PULSE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
 	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
 	depends on BR2_USE_MMU # pulseaudio
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
 	select BR2_PACKAGE_PULSEAUDIO
 	bool "pulseaudio"
 
+comment "pulseaudio support needs a toolchain w/ largefile, threads, atomic intrinsics"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
 	bool "souphttpsrc (http client)"
 	depends on BR2_USE_WCHAR # libsoup -> glib2
diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
index 60ee17d..46bf553 100644
--- a/package/gstreamer1/gst1-plugins-good/Config.in
+++ b/package/gstreamer1/gst1-plugins-good/Config.in
@@ -308,11 +308,16 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
 	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
 	depends on BR2_USE_MMU # pulseaudio
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
 	select BR2_PACKAGE_PULSEAUDIO
 	bool "pulseaudio"
 	help
 	  PulseAudio plugin library
 
+comment "pulseaudio support needs a toolchain w/ largefile, threads, atomic intrinsics"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
 	bool "souphttpsrc (http client)"
 	depends on BR2_USE_WCHAR # libsoup -> glib2
diff --git a/package/mpd/Config.in b/package/mpd/Config.in
index f5f5b34..8382a5d 100644
--- a/package/mpd/Config.in
+++ b/package/mpd/Config.in
@@ -45,12 +45,13 @@ config BR2_PACKAGE_MPD_AUDIOFILE
 config BR2_PACKAGE_MPD_PULSEAUDIO
 	bool "pulseaudio"
 	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
 	select BR2_PACKAGE_PULSEAUDIO
 	help
 	  Enable pulseaudio output support.
 
-comment "pulseaudio support needs a toolchain w/ largefile"
-	depends on !BR2_LARGEFILE
+comment "pulseaudio support needs a toolchain w/ largefile, atomic intrinsics"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 
 config BR2_PACKAGE_MPD_BZIP2
 	bool "bzip2"
diff --git a/package/pulseaudio/Config.in b/package/pulseaudio/Config.in
index ac6222c..de99fc8 100644
--- a/package/pulseaudio/Config.in
+++ b/package/pulseaudio/Config.in
@@ -8,6 +8,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_SPEEX
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_MMU # fork()
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
@@ -30,6 +31,7 @@ config BR2_PACKAGE_PULSEAUDIO_DAEMON
 
 endif
 
-comment "pulseaudio needs a toolchain w/ wchar, largefile, threads"
+comment "pulseaudio needs a toolchain w/ wchar, largefile, threads, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v3 3/4] libftdi: Add dependency on atomic intrinsics
  2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 2/4] pulseaudio: " Anton Kolesov
@ 2014-08-04 12:16         ` Anton Kolesov
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 4/4] msgpack: " Anton Kolesov
  2014-08-07 15:42         ` [Buildroot] [PATCH v3 1/4] cairo: " Thomas De Schampheleire
  3 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-04 12:16 UTC (permalink / raw)
  To: buildroot

Libftdi requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/6cb25ed954840109c9d0e582e922b0ba9d07e174/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/libftdi/Config.in | 5 +++--
 package/openocd/Config.in | 4 ++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/package/libftdi/Config.in b/package/libftdi/Config.in
index dc81514..ce65158 100644
--- a/package/libftdi/Config.in
+++ b/package/libftdi/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_LIBFTDI
 	bool "libftdi"
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_LIBUSB_COMPAT
 	help
@@ -18,5 +19,5 @@ config BR2_PACKAGE_LIBTFDI_CPP
 
 endif # BR2_PACKAGE_LIBFTDI
 
-comment "libftdi needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
+comment "libftdi needs a toolchain w/ threads, atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/openocd/Config.in b/package/openocd/Config.in
index 7f96ef8..e692d2d 100644
--- a/package/openocd/Config.in
+++ b/package/openocd/Config.in
@@ -14,11 +14,15 @@ comment "Adapters"
 
 config BR2_PACKAGE_OPENOCD_FT2XXX
 	bool "FT2xxx/FT4xxx Based JTAG Programmer"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # libftdi
 	select BR2_PACKAGE_LIBFTDI
 	help
 	  Enable building support for FT2232 based devices
 	  using the libftdi driver, opensource alternate of FTD2XX
 
+comment "FT2232 support needs a toolchain w/ atomic intrinsics"
+        depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_OPENOCD_JLINK
 	bool "Segger J-Link JTAG Programmer"
 	help
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v3 4/4] msgpack: Add dependency on atomic intrinsics
  2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 2/4] pulseaudio: " Anton Kolesov
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 3/4] libftdi: " Anton Kolesov
@ 2014-08-04 12:16         ` Anton Kolesov
  2014-08-07 15:42         ` [Buildroot] [PATCH v3 1/4] cairo: " Thomas De Schampheleire
  3 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-04 12:16 UTC (permalink / raw)
  To: buildroot

Msgpack requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/44849a386cefb8899f4560296bfbbd8ea19ee910/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/msgpack/Config.in        | 7 +++----
 package/python-msgpack/Config.in | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/package/msgpack/Config.in b/package/msgpack/Config.in
index b380c58..7d6277f 100644
--- a/package/msgpack/Config.in
+++ b/package/msgpack/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_MSGPACK
 	bool "msgpack"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc # atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  MessagePack is an efficient binary serialization format.
 
@@ -10,6 +10,5 @@ config BR2_PACKAGE_MSGPACK
 
 	  http://msgpack.org/
 
-comment "msgpack needs a toolchain w/ C++"
-	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+comment "msgpack needs a toolchain w/ C++, atomic intrinsics"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/python-msgpack/Config.in b/package/python-msgpack/Config.in
index c4b68a3..3b825a1 100644
--- a/package/python-msgpack/Config.in
+++ b/package/python-msgpack/Config.in
@@ -3,7 +3,7 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 	depends on BR2_PACKAGE_PYTHON
 	select BR2_PACKAGE_MSGPACK
 	depends on BR2_INSTALL_LIBSTDCPP # msgpack
-	depends on !BR2_arc # msgpack - atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # msgpack
 	help
 	  MessagePack (http://msgpack.org/) is a fast, compact binary
 	  serialization format, suitable for similar data to JSON.
@@ -12,7 +12,6 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 
 	  https://pypi.python.org/pypi/msgpack-python/
 
-comment "python-msgpack needs a toolchain w/ C++"
+comment "python-msgpack needs a toolchain w/ C++, atomic intrinsics"
 	depends on BR2_PACKAGE_PYTHON
-	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section
  2014-08-03  9:32     ` Thomas Petazzoni
  2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
@ 2014-08-04 12:17       ` Anton Kolesov
  2014-08-15 20:40         ` Yann E. MORIN
  2014-08-15 22:17         ` Thomas Petazzoni
  1 sibling, 2 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-04 12:17 UTC (permalink / raw)
  To: buildroot

Add atomic intrinsics to the examples of dependencies comments.

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 docs/manual/adding-packages-directory.txt | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt
index 93e6a3e..4b4d056 100644
--- a/docs/manual/adding-packages-directory.txt
+++ b/docs/manual/adding-packages-directory.txt
@@ -265,6 +265,10 @@ use in the comment.
 ** Dependency symbol: +!BR2_PREFER_STATIC_LIB+
 ** Comment string: +dynamic library+
 
+* Atomic intrinsics
+** Dependency symbol: +!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS+
+** Comment string: +atomic intrinsics+
+
 ==== Dependencies on a Linux kernel built by buildroot
 
 Some packages need a Linux kernel to be built by buildroot. These are
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v3 1/4] cairo: Add dependency on atomic intrinsics
  2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
                           ` (2 preceding siblings ...)
  2014-08-04 12:16         ` [Buildroot] [PATCH v3 4/4] msgpack: " Anton Kolesov
@ 2014-08-07 15:42         ` Thomas De Schampheleire
  3 siblings, 0 replies; 42+ messages in thread
From: Thomas De Schampheleire @ 2014-08-07 15:42 UTC (permalink / raw)
  To: buildroot

Hi Anton,

On Mon, Aug 4, 2014 at 2:16 PM, Anton Kolesov
<Anton.Kolesov@synopsys.com> wrote:
> Cairo requires GCC built-in atomic functions which are architecture specific
> and may not be implemented.
>
> This fixes:
> http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/
>
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  package/cairo/Config.in                        | 4 ++++
>  package/efl/libevas-generic-loaders/Config.in  | 6 ++++--
>  package/gstreamer/gst-plugins-good/Config.in   | 4 ++++
>  package/gstreamer1/gst1-plugins-good/Config.in | 4 ++++
>  package/libgtk2/Config.in                      | 5 +++--
>  package/librsvg/Config.in                      | 6 ++++--
>  package/libsvg-cairo/Config.in                 | 4 ++++
>  package/pango/Config.in                        | 5 +++--
>  package/webkit/Config.in                       | 6 ++++--
>  package/weston/Config.in                       | 4 ++++
>  10 files changed, 38 insertions(+), 10 deletions(-)
>
> diff --git a/package/cairo/Config.in b/package/cairo/Config.in
> index 0c87a29..2aeaa2a 100644
> --- a/package/cairo/Config.in
> +++ b/package/cairo/Config.in
> @@ -1,5 +1,6 @@
>  config BR2_PACKAGE_CAIRO
>         bool "cairo"
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>         select BR2_PACKAGE_PIXMAN
>         select BR2_PACKAGE_FONTCONFIG
>         select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> @@ -13,6 +14,9 @@ config BR2_PACKAGE_CAIRO
>
>           http://cairographics.org/
>
> +comment "cairo needs a toolchain with atomic intrinsics"
> +       depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS

This should be 'w/' instead of 'with'

> +
>  if BR2_PACKAGE_CAIRO
>
>  config BR2_PACKAGE_CAIRO_PS
> diff --git a/package/efl/libevas-generic-loaders/Config.in b/package/efl/libevas-generic-loaders/Config.in
> index 23b9f77..c7145d5 100644
> --- a/package/efl/libevas-generic-loaders/Config.in
> +++ b/package/efl/libevas-generic-loaders/Config.in
> @@ -17,10 +17,12 @@ config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG
>         depends on BR2_USE_WCHAR # librsvg -> glib2
>         depends on BR2_TOOLCHAIN_HAS_THREADS # librsvg -> glib2
>         depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>         help
>           This option enables the Evas generic SVG loader
>
> -comment "SVG loader needs a toolchain w/ wchar, threads, C++"
> -       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
> +comment "SVG loader needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
> +       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
> +               || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>
>  endif
> diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
> index 3ec93cf..8bc79a2 100644
> --- a/package/gstreamer/gst-plugins-good/Config.in
> +++ b/package/gstreamer/gst-plugins-good/Config.in
> @@ -178,9 +178,13 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ANNODEX
>
>  config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_CAIRO
>         bool "cairo"
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>         select BR2_PACKAGE_CAIRO
>         select BR2_PACKAGE_CAIRO_PNG
>
> +comment "cairo needs a toolchain with atomic intrinsics"
> +       depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS

Same here

> +
>  config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_FLAC
>         bool "flac (libFLAC)"
>         depends on BR2_USE_WCHAR # flac
> diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
> index 7159c5a..60ee17d 100644
> --- a/package/gstreamer1/gst1-plugins-good/Config.in
> +++ b/package/gstreamer1/gst1-plugins-good/Config.in
> @@ -274,11 +274,15 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
>
>  config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO
>         bool "cairo"
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>         select BR2_PACKAGE_CAIRO
>         select BR2_PACKAGE_CAIRO_PNG
>         help
>           Cairo-based elements
>
> +comment "cairo needs a toolchain with atomic intrinsics"
> +       depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +

and here

>  config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC
>         bool "flac (libFLAC)"
>         depends on BR2_USE_WCHAR # flac
> diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
> index 5239c25..ce70256 100644
> --- a/package/libgtk2/Config.in
> +++ b/package/libgtk2/Config.in
> @@ -17,6 +17,7 @@ config BR2_PACKAGE_LIBGTK2
>         depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
>         depends on BR2_USE_MMU # glib2
>         depends on BR2_INSTALL_LIBSTDCPP # pango
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>         help
>           The GTK+ version 2 graphical user interface library
>
> @@ -32,8 +33,8 @@ config BR2_PACKAGE_LIBGTK2_DEMO
>
>  endif
>
> -comment "libgtk2 needs a toolchain w/ wchar, threads, C++"
> +comment "libgtk2 needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
>         depends on BR2_USE_MMU
>         depends on BR2_PACKAGE_XORG7
>         depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
> -               !BR2_TOOLCHAIN_HAS_THREADS
> +               !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
> index 5dd4c58..e1dbf4f 100644
> --- a/package/librsvg/Config.in
> +++ b/package/librsvg/Config.in
> @@ -10,12 +10,14 @@ config BR2_PACKAGE_LIBRSVG
>         depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
>         depends on BR2_USE_MMU # glib2
>         depends on BR2_INSTALL_LIBSTDCPP # pango
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>         help
>           The rsvg library is an efficient renderer for Scalable
>           Vector Graphics (SVG) pictures.
>
>           http://librsvg.sourceforge.net/
>
> -comment "librsvg needs a toolchain w/ wchar, threads, C++"
> +comment "librsvg needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
>         depends on BR2_USE_MMU
> -       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
> +       depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
> +               || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
> index 9577c69..48f09f6 100644
> --- a/package/libsvg-cairo/Config.in
> +++ b/package/libsvg-cairo/Config.in
> @@ -1,5 +1,6 @@
>  config BR2_PACKAGE_LIBSVG_CAIRO
>         bool "libsvg-cairo"
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>         select BR2_PACKAGE_CAIRO
>         select BR2_PACKAGE_CAIRO_SVG
>         select BR2_PACKAGE_LIBSVG
> @@ -9,3 +10,6 @@ config BR2_PACKAGE_LIBSVG_CAIRO
>           rendering library.
>
>           http://cairographics.org
> +
> +comment "cairo needs a toolchain with atomic intrinsics"
> +       depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS

and here

> diff --git a/package/pango/Config.in b/package/pango/Config.in
> index 70f4fd3..6dee251 100644
> --- a/package/pango/Config.in
> +++ b/package/pango/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_PANGO
>         depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
>         depends on BR2_USE_MMU # glib2
>         depends on BR2_INSTALL_LIBSTDCPP # freetype support
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>         select BR2_PACKAGE_LIBGLIB2
>         select BR2_PACKAGE_EXPAT
>         select BR2_PACKAGE_CAIRO
> @@ -21,7 +22,7 @@ config BR2_PACKAGE_PANGO
>
>           http://www.pango.org/
>
> -comment "pango needs a toolchain w/ wchar, threads, C++"
> +comment "pango needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
>         depends on BR2_USE_MMU
>         depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> -               !BR2_INSTALL_LIBSTDCPP
> +               !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/webkit/Config.in b/package/webkit/Config.in
> index c86eb94..99fe18a 100644
> --- a/package/webkit/Config.in
> +++ b/package/webkit/Config.in
> @@ -17,6 +17,7 @@ config BR2_PACKAGE_WEBKIT
>         depends on BR2_PACKAGE_LIBGTK2
>         depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
>         depends on !BR2_BINFMT_FLAT # icu
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>         select BR2_PACKAGE_CAIRO_PNG
>         select BR2_PACKAGE_ENCHANT
>         select BR2_PACKAGE_HARFBUZZ
> @@ -41,7 +42,8 @@ config BR2_PACKAGE_WEBKIT
>
>           http://webkit.org/
>
> -comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads"
> +comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads, atomic intrinsics"
>         depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
>         depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP || \
> -               !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> +               !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> +               !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/weston/Config.in b/package/weston/Config.in
> index aaef405..4b3ca74 100644
> --- a/package/weston/Config.in
> +++ b/package/weston/Config.in
> @@ -15,6 +15,7 @@ config BR2_PACKAGE_WESTON
>         depends on !BR2_avr32 # wayland
>         depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
>         depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> +       depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>         # Runtime dependency
>         select BR2_PACKAGE_XKEYBOARD_CONFIG
>         # Make sure at least one compositor is selected.
> @@ -27,6 +28,9 @@ config BR2_PACKAGE_WESTON
>
>           http://wayland.freedesktop.org/
>
> +comment "weston needs a toolchain with atomic intrinsics"
> +       depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +

and here

Best regards,
Thomas

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics
       [not found] <In-Reply-To: <CAAXf6LURyGxEfQR+3g6xriwqUeE1E91Oav2X=r_C3YD66JzpEA@mail.gmail.com>
@ 2014-08-08 15:09 ` Anton Kolesov
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 2/4] pulseaudio: " Anton Kolesov
                     ` (4 more replies)
  0 siblings, 5 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-08 15:09 UTC (permalink / raw)
  To: buildroot

Cairo requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/cairo/Config.in                        | 4 ++++
 package/efl/libevas-generic-loaders/Config.in  | 6 ++++--
 package/gstreamer/gst-plugins-good/Config.in   | 4 ++++
 package/gstreamer1/gst1-plugins-good/Config.in | 4 ++++
 package/libgtk2/Config.in                      | 5 +++--
 package/librsvg/Config.in                      | 6 ++++--
 package/libsvg-cairo/Config.in                 | 4 ++++
 package/pango/Config.in                        | 5 +++--
 package/webkit/Config.in                       | 6 ++++--
 package/weston/Config.in                       | 4 ++++
 10 files changed, 38 insertions(+), 10 deletions(-)

diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 0c87a29..103aa0d 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_PIXMAN
 	select BR2_PACKAGE_FONTCONFIG
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
@@ -13,6 +14,9 @@ config BR2_PACKAGE_CAIRO
 
 	  http://cairographics.org/
 
+comment "cairo needs a toolchain w/ atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 if BR2_PACKAGE_CAIRO
 
 config BR2_PACKAGE_CAIRO_PS
diff --git a/package/efl/libevas-generic-loaders/Config.in b/package/efl/libevas-generic-loaders/Config.in
index 23b9f77..c7145d5 100644
--- a/package/efl/libevas-generic-loaders/Config.in
+++ b/package/efl/libevas-generic-loaders/Config.in
@@ -17,10 +17,12 @@ config BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG
 	depends on BR2_USE_WCHAR # librsvg -> glib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # librsvg -> glib2
 	depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	help
 	  This option enables the Evas generic SVG loader
 
-comment "SVG loader needs a toolchain w/ wchar, threads, C++"
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+comment "SVG loader needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 
 endif
diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
index 3ec93cf..2e81a6a 100644
--- a/package/gstreamer/gst-plugins-good/Config.in
+++ b/package/gstreamer/gst-plugins-good/Config.in
@@ -178,9 +178,13 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ANNODEX
 
 config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PNG
 
+comment "cairo needs a toolchain w/ atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_FLAC
 	bool "flac (libFLAC)"
 	depends on BR2_USE_WCHAR # flac
diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
index 7159c5a..aa45ba7 100644
--- a/package/gstreamer1/gst1-plugins-good/Config.in
+++ b/package/gstreamer1/gst1-plugins-good/Config.in
@@ -274,11 +274,15 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO
 	bool "cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PNG
 	help
 	  Cairo-based elements
 
+comment "cairo needs a toolchain w/ atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC
 	bool "flac (libFLAC)"
 	depends on BR2_USE_WCHAR # flac
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index 5239c25..ce70256 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -17,6 +17,7 @@ config BR2_PACKAGE_LIBGTK2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_INSTALL_LIBSTDCPP # pango
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	help
 	  The GTK+ version 2 graphical user interface library
 
@@ -32,8 +33,8 @@ config BR2_PACKAGE_LIBGTK2_DEMO
 
 endif
 
-comment "libgtk2 needs a toolchain w/ wchar, threads, C++"
+comment "libgtk2 needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_XORG7
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_HAS_THREADS
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
index 5dd4c58..e1dbf4f 100644
--- a/package/librsvg/Config.in
+++ b/package/librsvg/Config.in
@@ -10,12 +10,14 @@ config BR2_PACKAGE_LIBRSVG
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_INSTALL_LIBSTDCPP # pango
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	help
 	  The rsvg library is an efficient renderer for Scalable
 	  Vector Graphics (SVG) pictures.
 
 	  http://librsvg.sourceforge.net/
 
-comment "librsvg needs a toolchain w/ wchar, threads, C++"
+comment "librsvg needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
index 9577c69..a1a8401 100644
--- a/package/libsvg-cairo/Config.in
+++ b/package/libsvg-cairo/Config.in
@@ -1,5 +1,6 @@
 config BR2_PACKAGE_LIBSVG_CAIRO
 	bool "libsvg-cairo"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_SVG
 	select BR2_PACKAGE_LIBSVG
@@ -9,3 +10,6 @@ config BR2_PACKAGE_LIBSVG_CAIRO
 	  rendering library.
 
 	  http://cairographics.org
+
+comment "cairo needs a toolchain w/ atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/pango/Config.in b/package/pango/Config.in
index 70f4fd3..6dee251 100644
--- a/package/pango/Config.in
+++ b/package/pango/Config.in
@@ -4,6 +4,7 @@ config BR2_PACKAGE_PANGO
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
 	depends on BR2_INSTALL_LIBSTDCPP # freetype support
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_EXPAT
 	select BR2_PACKAGE_CAIRO
@@ -21,7 +22,7 @@ config BR2_PACKAGE_PANGO
 
 	  http://www.pango.org/
 
-comment "pango needs a toolchain w/ wchar, threads, C++"
+comment "pango needs a toolchain w/ wchar, threads, C++, atomic intrinsics"
 	depends on BR2_USE_MMU
 	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
-		!BR2_INSTALL_LIBSTDCPP
+		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/webkit/Config.in b/package/webkit/Config.in
index b7f903c..f42a96f 100644
--- a/package/webkit/Config.in
+++ b/package/webkit/Config.in
@@ -17,6 +17,7 @@ config BR2_PACKAGE_WEBKIT
 	depends on BR2_PACKAGE_LIBGTK2
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	depends on !BR2_BINFMT_FLAT # icu
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	select BR2_PACKAGE_CAIRO_PNG
 	select BR2_PACKAGE_ENCHANT
 	select BR2_PACKAGE_HARFBUZZ
@@ -41,8 +42,9 @@ config BR2_PACKAGE_WEBKIT
 
 	  http://webkit.org/
 
-comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads"
+comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads, atomic intrinsics"
 	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
 	depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	depends on BR2_USE_MMU
diff --git a/package/weston/Config.in b/package/weston/Config.in
index aaef405..f927c5f 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -15,6 +15,7 @@ config BR2_PACKAGE_WESTON
 	depends on !BR2_avr32 # wayland
 	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
 	# Runtime dependency
 	select BR2_PACKAGE_XKEYBOARD_CONFIG
 	# Make sure at least one compositor is selected.
@@ -27,6 +28,9 @@ config BR2_PACKAGE_WESTON
 
 	  http://wayland.freedesktop.org/
 
+comment "weston needs a toolchain w/ atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 if BR2_PACKAGE_WESTON
 
 # Helper to make sure at least one compositor is selected.
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 2/4] pulseaudio: Add dependency on atomic intrinsics
  2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
@ 2014-08-08 15:09   ` Anton Kolesov
  2014-08-15 20:54     ` Yann E. MORIN
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 3/4] libftdi: " Anton Kolesov
                     ` (3 subsequent siblings)
  4 siblings, 1 reply; 42+ messages in thread
From: Anton Kolesov @ 2014-08-08 15:09 UTC (permalink / raw)
  To: buildroot

Pulseaudio requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/d463f3bf730a600a07ed6cd33695bf45e9fd3540/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/gstreamer/gst-plugins-good/Config.in   | 5 +++++
 package/gstreamer1/gst1-plugins-good/Config.in | 5 +++++
 package/mpd/Config.in                          | 5 +++--
 package/pulseaudio/Config.in                   | 6 ++++--
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
index 2e81a6a..7ab9519 100644
--- a/package/gstreamer/gst-plugins-good/Config.in
+++ b/package/gstreamer/gst-plugins-good/Config.in
@@ -212,9 +212,14 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_PULSE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
 	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
 	depends on BR2_USE_MMU # pulseaudio
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
 	select BR2_PACKAGE_PULSEAUDIO
 	bool "pulseaudio"
 
+comment "pulseaudio support needs a toolchain w/ largefile, threads, atomic intrinsics"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
 	bool "souphttpsrc (http client)"
 	depends on BR2_USE_WCHAR # libsoup -> glib2
diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
index aa45ba7..71b0a37 100644
--- a/package/gstreamer1/gst1-plugins-good/Config.in
+++ b/package/gstreamer1/gst1-plugins-good/Config.in
@@ -308,11 +308,16 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
 	depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
 	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
 	depends on BR2_USE_MMU # pulseaudio
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
 	select BR2_PACKAGE_PULSEAUDIO
 	bool "pulseaudio"
 	help
 	  PulseAudio plugin library
 
+comment "pulseaudio support needs a toolchain w/ largefile, threads, atomic intrinsics"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
 	bool "souphttpsrc (http client)"
 	depends on BR2_USE_WCHAR # libsoup -> glib2
diff --git a/package/mpd/Config.in b/package/mpd/Config.in
index f5f5b34..8382a5d 100644
--- a/package/mpd/Config.in
+++ b/package/mpd/Config.in
@@ -45,12 +45,13 @@ config BR2_PACKAGE_MPD_AUDIOFILE
 config BR2_PACKAGE_MPD_PULSEAUDIO
 	bool "pulseaudio"
 	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
 	select BR2_PACKAGE_PULSEAUDIO
 	help
 	  Enable pulseaudio output support.
 
-comment "pulseaudio support needs a toolchain w/ largefile"
-	depends on !BR2_LARGEFILE
+comment "pulseaudio support needs a toolchain w/ largefile, atomic intrinsics"
+	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 
 config BR2_PACKAGE_MPD_BZIP2
 	bool "bzip2"
diff --git a/package/pulseaudio/Config.in b/package/pulseaudio/Config.in
index ac6222c..de99fc8 100644
--- a/package/pulseaudio/Config.in
+++ b/package/pulseaudio/Config.in
@@ -8,6 +8,7 @@ config BR2_PACKAGE_PULSEAUDIO
 	select BR2_PACKAGE_SPEEX
 	depends on BR2_LARGEFILE
 	depends on BR2_USE_MMU # fork()
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  PulseAudio is a sound system for POSIX OSes, meaning that it
 	  is a proxy for your sound applications. It allows you to do
@@ -30,6 +31,7 @@ config BR2_PACKAGE_PULSEAUDIO_DAEMON
 
 endif
 
-comment "pulseaudio needs a toolchain w/ wchar, largefile, threads"
+comment "pulseaudio needs a toolchain w/ wchar, largefile, threads, atomic intrinsics"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 3/4] libftdi: Add dependency on atomic intrinsics
  2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 2/4] pulseaudio: " Anton Kolesov
@ 2014-08-08 15:09   ` Anton Kolesov
  2014-08-15 20:58     ` Yann E. MORIN
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 4/4] msgpack: " Anton Kolesov
                     ` (2 subsequent siblings)
  4 siblings, 1 reply; 42+ messages in thread
From: Anton Kolesov @ 2014-08-08 15:09 UTC (permalink / raw)
  To: buildroot

Libftdi requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/6cb25ed954840109c9d0e582e922b0ba9d07e174/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/libftdi/Config.in | 5 +++--
 package/openocd/Config.in | 4 ++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/package/libftdi/Config.in b/package/libftdi/Config.in
index dc81514..ce65158 100644
--- a/package/libftdi/Config.in
+++ b/package/libftdi/Config.in
@@ -1,6 +1,7 @@
 config BR2_PACKAGE_LIBFTDI
 	bool "libftdi"
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libusb
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	select BR2_PACKAGE_LIBUSB
 	select BR2_PACKAGE_LIBUSB_COMPAT
 	help
@@ -18,5 +19,5 @@ config BR2_PACKAGE_LIBTFDI_CPP
 
 endif # BR2_PACKAGE_LIBFTDI
 
-comment "libftdi needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
+comment "libftdi needs a toolchain w/ threads, atomic intrinsics"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/openocd/Config.in b/package/openocd/Config.in
index 7f96ef8..e692d2d 100644
--- a/package/openocd/Config.in
+++ b/package/openocd/Config.in
@@ -14,11 +14,15 @@ comment "Adapters"
 
 config BR2_PACKAGE_OPENOCD_FT2XXX
 	bool "FT2xxx/FT4xxx Based JTAG Programmer"
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # libftdi
 	select BR2_PACKAGE_LIBFTDI
 	help
 	  Enable building support for FT2232 based devices
 	  using the libftdi driver, opensource alternate of FTD2XX
 
+comment "FT2232 support needs a toolchain w/ atomic intrinsics"
+        depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
+
 config BR2_PACKAGE_OPENOCD_JLINK
 	bool "Segger J-Link JTAG Programmer"
 	help
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 4/4] msgpack: Add dependency on atomic intrinsics
  2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 2/4] pulseaudio: " Anton Kolesov
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 3/4] libftdi: " Anton Kolesov
@ 2014-08-08 15:09   ` Anton Kolesov
  2014-08-15 21:04     ` Yann E. MORIN
  2014-08-15 12:49   ` [Buildroot] [PATCH v4 1/4] cairo: " Anton Kolesov
  2014-08-15 20:46   ` Yann E. MORIN
  4 siblings, 1 reply; 42+ messages in thread
From: Anton Kolesov @ 2014-08-08 15:09 UTC (permalink / raw)
  To: buildroot

Msgpack requires GCC built-in atomic functions which are architecture specific
and may not be implemented.

This fixes:
http://autobuild.buildroot.net/results/44849a386cefb8899f4560296bfbbd8ea19ee910/

Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
---
 package/msgpack/Config.in        | 7 +++----
 package/python-msgpack/Config.in | 7 +++----
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/package/msgpack/Config.in b/package/msgpack/Config.in
index b380c58..7d6277f 100644
--- a/package/msgpack/Config.in
+++ b/package/msgpack/Config.in
@@ -1,7 +1,7 @@
 config BR2_PACKAGE_MSGPACK
 	bool "msgpack"
 	depends on BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc # atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
 	help
 	  MessagePack is an efficient binary serialization format.
 
@@ -10,6 +10,5 @@ config BR2_PACKAGE_MSGPACK
 
 	  http://msgpack.org/
 
-comment "msgpack needs a toolchain w/ C++"
-	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+comment "msgpack needs a toolchain w/ C++, atomic intrinsics"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
diff --git a/package/python-msgpack/Config.in b/package/python-msgpack/Config.in
index c4b68a3..3b825a1 100644
--- a/package/python-msgpack/Config.in
+++ b/package/python-msgpack/Config.in
@@ -3,7 +3,7 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 	depends on BR2_PACKAGE_PYTHON
 	select BR2_PACKAGE_MSGPACK
 	depends on BR2_INSTALL_LIBSTDCPP # msgpack
-	depends on !BR2_arc # msgpack - atomic builtins
+	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # msgpack
 	help
 	  MessagePack (http://msgpack.org/) is a fast, compact binary
 	  serialization format, suitable for similar data to JSON.
@@ -12,7 +12,6 @@ config BR2_PACKAGE_PYTHON_MSGPACK
 
 	  https://pypi.python.org/pypi/msgpack-python/
 
-comment "python-msgpack needs a toolchain w/ C++"
+comment "python-msgpack needs a toolchain w/ C++, atomic intrinsics"
 	depends on BR2_PACKAGE_PYTHON
-	depends on !BR2_INSTALL_LIBSTDCPP
-	depends on !BR2_arc
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics
  2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
                     ` (2 preceding siblings ...)
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 4/4] msgpack: " Anton Kolesov
@ 2014-08-15 12:49   ` Anton Kolesov
  2014-08-15 20:46   ` Yann E. MORIN
  4 siblings, 0 replies; 42+ messages in thread
From: Anton Kolesov @ 2014-08-15 12:49 UTC (permalink / raw)
  To: buildroot

Hi,

Any news on this and my submission to the manual (https://patchwork.ozlabs.org/patch/376259/)?

Anton


> -----Original Message-----
> From: Anton Kolesov [mailto:Anton.Kolesov at synopsys.com]
> Sent: 08 August 2014 19:09
> To: buildroot at uclibc.org
> Cc: Anton Kolesov; Alexey Brodkin
> Subject: [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics
> 
> Cairo requires GCC built-in atomic functions which are architecture specific
> and may not be implemented.
> 
> This fixes:
> http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31b
> ee1601d0/
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  package/cairo/Config.in                        | 4 ++++
>  package/efl/libevas-generic-loaders/Config.in  | 6 ++++--
>  package/gstreamer/gst-plugins-good/Config.in   | 4 ++++
>  package/gstreamer1/gst1-plugins-good/Config.in | 4 ++++
>  package/libgtk2/Config.in                      | 5 +++--
>  package/librsvg/Config.in                      | 6 ++++--
>  package/libsvg-cairo/Config.in                 | 4 ++++
>  package/pango/Config.in                        | 5 +++--
>  package/webkit/Config.in                       | 6 ++++--
>  package/weston/Config.in                       | 4 ++++
>  10 files changed, 38 insertions(+), 10 deletions(-)
> 
> diff --git a/package/cairo/Config.in b/package/cairo/Config.in
> index 0c87a29..103aa0d 100644
> --- a/package/cairo/Config.in
> +++ b/package/cairo/Config.in
> @@ -1,5 +1,6 @@
>  config BR2_PACKAGE_CAIRO
>  	bool "cairo"
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>  	select BR2_PACKAGE_PIXMAN
>  	select BR2_PACKAGE_FONTCONFIG
>  	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
> @@ -13,6 +14,9 @@ config BR2_PACKAGE_CAIRO
> 
>  	  http://cairographics.org/
> 
> +comment "cairo needs a toolchain w/ atomic intrinsics"
> +	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  if BR2_PACKAGE_CAIRO
> 
>  config BR2_PACKAGE_CAIRO_PS
> diff --git a/package/efl/libevas-generic-loaders/Config.in
> b/package/efl/libevas-generic-loaders/Config.in
> index 23b9f77..c7145d5 100644
> --- a/package/efl/libevas-generic-loaders/Config.in
> +++ b/package/efl/libevas-generic-loaders/Config.in
> @@ -17,10 +17,12 @@ config
> BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG
>  	depends on BR2_USE_WCHAR # librsvg -> glib2
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # librsvg -> glib2
>  	depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	help
>  	  This option enables the Evas generic SVG loader
> 
> -comment "SVG loader needs a toolchain w/ wchar, threads, C++"
> -	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> || !BR2_INSTALL_LIBSTDCPP
> +comment "SVG loader needs a toolchain w/ wchar, threads, C++, atomic
> intrinsics"
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> || !BR2_INSTALL_LIBSTDCPP \
> +		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> 
>  endif
> diff --git a/package/gstreamer/gst-plugins-good/Config.in
> b/package/gstreamer/gst-plugins-good/Config.in
> index 3ec93cf..2e81a6a 100644
> --- a/package/gstreamer/gst-plugins-good/Config.in
> +++ b/package/gstreamer/gst-plugins-good/Config.in
> @@ -178,9 +178,13 @@ config
> BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ANNODEX
> 
>  config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_CAIRO
>  	bool "cairo"
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	select BR2_PACKAGE_CAIRO
>  	select BR2_PACKAGE_CAIRO_PNG
> 
> +comment "cairo needs a toolchain w/ atomic intrinsics"
> +	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_FLAC
>  	bool "flac (libFLAC)"
>  	depends on BR2_USE_WCHAR # flac
> diff --git a/package/gstreamer1/gst1-plugins-good/Config.in
> b/package/gstreamer1/gst1-plugins-good/Config.in
> index 7159c5a..aa45ba7 100644
> --- a/package/gstreamer1/gst1-plugins-good/Config.in
> +++ b/package/gstreamer1/gst1-plugins-good/Config.in
> @@ -274,11 +274,15 @@ config
> BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
> 
>  config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO
>  	bool "cairo"
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	select BR2_PACKAGE_CAIRO
>  	select BR2_PACKAGE_CAIRO_PNG
>  	help
>  	  Cairo-based elements
> 
> +comment "cairo needs a toolchain w/ atomic intrinsics"
> +	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_FLAC
>  	bool "flac (libFLAC)"
>  	depends on BR2_USE_WCHAR # flac
> diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
> index 5239c25..ce70256 100644
> --- a/package/libgtk2/Config.in
> +++ b/package/libgtk2/Config.in
> @@ -17,6 +17,7 @@ config BR2_PACKAGE_LIBGTK2
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
>  	depends on BR2_USE_MMU # glib2
>  	depends on BR2_INSTALL_LIBSTDCPP # pango
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	help
>  	  The GTK+ version 2 graphical user interface library
> 
> @@ -32,8 +33,8 @@ config BR2_PACKAGE_LIBGTK2_DEMO
> 
>  endif
> 
> -comment "libgtk2 needs a toolchain w/ wchar, threads, C++"
> +comment "libgtk2 needs a toolchain w/ wchar, threads, C++, atomic
> intrinsics"
>  	depends on BR2_USE_MMU
>  	depends on BR2_PACKAGE_XORG7
>  	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
> -		!BR2_TOOLCHAIN_HAS_THREADS
> +		!BR2_TOOLCHAIN_HAS_THREADS ||
> !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
> index 5dd4c58..e1dbf4f 100644
> --- a/package/librsvg/Config.in
> +++ b/package/librsvg/Config.in
> @@ -10,12 +10,14 @@ config BR2_PACKAGE_LIBRSVG
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
>  	depends on BR2_USE_MMU # glib2
>  	depends on BR2_INSTALL_LIBSTDCPP # pango
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	help
>  	  The rsvg library is an efficient renderer for Scalable
>  	  Vector Graphics (SVG) pictures.
> 
>  	  http://librsvg.sourceforge.net/
> 
> -comment "librsvg needs a toolchain w/ wchar, threads, C++"
> +comment "librsvg needs a toolchain w/ wchar, threads, C++, atomic
> intrinsics"
>  	depends on BR2_USE_MMU
> -	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> || !BR2_INSTALL_LIBSTDCPP
> +	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> || !BR2_INSTALL_LIBSTDCPP \
> +		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
> index 9577c69..a1a8401 100644
> --- a/package/libsvg-cairo/Config.in
> +++ b/package/libsvg-cairo/Config.in
> @@ -1,5 +1,6 @@
>  config BR2_PACKAGE_LIBSVG_CAIRO
>  	bool "libsvg-cairo"
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	select BR2_PACKAGE_CAIRO
>  	select BR2_PACKAGE_CAIRO_SVG
>  	select BR2_PACKAGE_LIBSVG
> @@ -9,3 +10,6 @@ config BR2_PACKAGE_LIBSVG_CAIRO
>  	  rendering library.
> 
>  	  http://cairographics.org
> +
> +comment "cairo needs a toolchain w/ atomic intrinsics"
> +	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/pango/Config.in b/package/pango/Config.in
> index 70f4fd3..6dee251 100644
> --- a/package/pango/Config.in
> +++ b/package/pango/Config.in
> @@ -4,6 +4,7 @@ config BR2_PACKAGE_PANGO
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
>  	depends on BR2_USE_MMU # glib2
>  	depends on BR2_INSTALL_LIBSTDCPP # freetype support
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	select BR2_PACKAGE_LIBGLIB2
>  	select BR2_PACKAGE_EXPAT
>  	select BR2_PACKAGE_CAIRO
> @@ -21,7 +22,7 @@ config BR2_PACKAGE_PANGO
> 
>  	  http://www.pango.org/
> 
> -comment "pango needs a toolchain w/ wchar, threads, C++"
> +comment "pango needs a toolchain w/ wchar, threads, C++, atomic
> intrinsics"
>  	depends on BR2_USE_MMU
>  	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> || \
> -		!BR2_INSTALL_LIBSTDCPP
> +		!BR2_INSTALL_LIBSTDCPP ||
> !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/webkit/Config.in b/package/webkit/Config.in
> index b7f903c..f42a96f 100644
> --- a/package/webkit/Config.in
> +++ b/package/webkit/Config.in
> @@ -17,6 +17,7 @@ config BR2_PACKAGE_WEBKIT
>  	depends on BR2_PACKAGE_LIBGTK2
>  	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
>  	depends on !BR2_BINFMT_FLAT # icu
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	select BR2_PACKAGE_CAIRO_PNG
>  	select BR2_PACKAGE_ENCHANT
>  	select BR2_PACKAGE_HARFBUZZ
> @@ -41,8 +42,9 @@ config BR2_PACKAGE_WEBKIT
> 
>  	  http://webkit.org/
> 
> -comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads"
> +comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads,
> atomic intrinsics"
>  	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
>  	depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP
> || \
> -		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
> +		!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
> +		!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>  	depends on BR2_USE_MMU
> diff --git a/package/weston/Config.in b/package/weston/Config.in
> index aaef405..f927c5f 100644
> --- a/package/weston/Config.in
> +++ b/package/weston/Config.in
> @@ -15,6 +15,7 @@ config BR2_PACKAGE_WESTON
>  	depends on !BR2_avr32 # wayland
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
>  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	# Runtime dependency
>  	select BR2_PACKAGE_XKEYBOARD_CONFIG
>  	# Make sure at least one compositor is selected.
> @@ -27,6 +28,9 @@ config BR2_PACKAGE_WESTON
> 
>  	  http://wayland.freedesktop.org/
> 
> +comment "weston needs a toolchain w/ atomic intrinsics"
> +	depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  if BR2_PACKAGE_WESTON
> 
>  # Helper to make sure at least one compositor is selected.
> --
> 1.8.4.1

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section
  2014-08-04 12:17       ` [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section Anton Kolesov
@ 2014-08-15 20:40         ` Yann E. MORIN
  2014-08-15 22:17         ` Thomas Petazzoni
  1 sibling, 0 replies; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-15 20:40 UTC (permalink / raw)
  To: buildroot

Anton, All,

On 2014-08-04 16:17 +0400, Anton Kolesov spake thusly:
> Add atomic intrinsics to the examples of dependencies comments.
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> ---
>  docs/manual/adding-packages-directory.txt | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt
> index 93e6a3e..4b4d056 100644
> --- a/docs/manual/adding-packages-directory.txt
> +++ b/docs/manual/adding-packages-directory.txt
> @@ -265,6 +265,10 @@ use in the comment.
>  ** Dependency symbol: +!BR2_PREFER_STATIC_LIB+
>  ** Comment string: +dynamic library+
>  
> +* Atomic intrinsics
> +** Dependency symbol: +!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS+
> +** Comment string: +atomic intrinsics+
> +
>  ==== Dependencies on a Linux kernel built by buildroot
>  
>  Some packages need a Linux kernel to be built by buildroot. These are
> -- 
> 1.8.4.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics
  2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
                     ` (3 preceding siblings ...)
  2014-08-15 12:49   ` [Buildroot] [PATCH v4 1/4] cairo: " Anton Kolesov
@ 2014-08-15 20:46   ` Yann E. MORIN
  4 siblings, 0 replies; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-15 20:46 UTC (permalink / raw)
  To: buildroot

Anton, All,

On 2014-08-08 19:09 +0400, Anton Kolesov spake thusly:
> Cairo requires GCC built-in atomic functions which are architecture specific
> and may not be implemented.
> 
> This fixes:
> http://autobuild.buildroot.net/results/fadfaa9916724d310d0dda555a1db31bee1601d0/
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

However, a small comment, unrelated to your change...

[--SNIP--]
> diff --git a/package/webkit/Config.in b/package/webkit/Config.in
> index b7f903c..f42a96f 100644
> --- a/package/webkit/Config.in
> +++ b/package/webkit/Config.in
> @@ -17,6 +17,7 @@ config BR2_PACKAGE_WEBKIT
>  	depends on BR2_PACKAGE_LIBGTK2
>  	depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
>  	depends on !BR2_BINFMT_FLAT # icu
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # cairo
>  	select BR2_PACKAGE_CAIRO_PNG

This should also 'select BR2_PACKAGE_CAIRO' but that's not the fault of
your patch.

I'll send a fix for that shortly.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 2/4] pulseaudio: Add dependency on atomic intrinsics
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 2/4] pulseaudio: " Anton Kolesov
@ 2014-08-15 20:54     ` Yann E. MORIN
  0 siblings, 0 replies; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-15 20:54 UTC (permalink / raw)
  To: buildroot

Anton, All,

On 2014-08-08 19:09 +0400, Anton Kolesov spake thusly:
> Pulseaudio requires GCC built-in atomic functions which are architecture specific
> and may not be implemented.
> 
> This fixes:
> http://autobuild.buildroot.net/results/d463f3bf730a600a07ed6cd33695bf45e9fd3540/
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>

You forgot espeak's pulseaudio backen option:

    config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
        select BR2_PACKAGE_PULSEAUDIO

which should also depend on intrinsics.

Regards,
Yann E. MORIN.

> ---
>  package/gstreamer/gst-plugins-good/Config.in   | 5 +++++
>  package/gstreamer1/gst1-plugins-good/Config.in | 5 +++++
>  package/mpd/Config.in                          | 5 +++--
>  package/pulseaudio/Config.in                   | 6 ++++--
>  4 files changed, 17 insertions(+), 4 deletions(-)
> 
> diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
> index 2e81a6a..7ab9519 100644
> --- a/package/gstreamer/gst-plugins-good/Config.in
> +++ b/package/gstreamer/gst-plugins-good/Config.in
> @@ -212,9 +212,14 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_PULSE
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
>  	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
>  	depends on BR2_USE_MMU # pulseaudio
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
>  	select BR2_PACKAGE_PULSEAUDIO
>  	bool "pulseaudio"
>  
> +comment "pulseaudio support needs a toolchain w/ largefile, threads, atomic intrinsics"
> +	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
> +		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
>  	bool "souphttpsrc (http client)"
>  	depends on BR2_USE_WCHAR # libsoup -> glib2
> diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
> index aa45ba7..71b0a37 100644
> --- a/package/gstreamer1/gst1-plugins-good/Config.in
> +++ b/package/gstreamer1/gst1-plugins-good/Config.in
> @@ -308,11 +308,16 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
>  	depends on BR2_TOOLCHAIN_HAS_THREADS # pulseaudio
>  	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
>  	depends on BR2_USE_MMU # pulseaudio
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
>  	select BR2_PACKAGE_PULSEAUDIO
>  	bool "pulseaudio"
>  	help
>  	  PulseAudio plugin library
>  
> +comment "pulseaudio support needs a toolchain w/ largefile, threads, atomic intrinsics"
> +	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
> +		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
>  	bool "souphttpsrc (http client)"
>  	depends on BR2_USE_WCHAR # libsoup -> glib2
> diff --git a/package/mpd/Config.in b/package/mpd/Config.in
> index f5f5b34..8382a5d 100644
> --- a/package/mpd/Config.in
> +++ b/package/mpd/Config.in
> @@ -45,12 +45,13 @@ config BR2_PACKAGE_MPD_AUDIOFILE
>  config BR2_PACKAGE_MPD_PULSEAUDIO
>  	bool "pulseaudio"
>  	depends on BR2_LARGEFILE # pulseaudio -> libsndfile
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # pulseaudio
>  	select BR2_PACKAGE_PULSEAUDIO
>  	help
>  	  Enable pulseaudio output support.
>  
> -comment "pulseaudio support needs a toolchain w/ largefile"
> -	depends on !BR2_LARGEFILE
> +comment "pulseaudio support needs a toolchain w/ largefile, atomic intrinsics"
> +	depends on !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>  
>  config BR2_PACKAGE_MPD_BZIP2
>  	bool "bzip2"
> diff --git a/package/pulseaudio/Config.in b/package/pulseaudio/Config.in
> index ac6222c..de99fc8 100644
> --- a/package/pulseaudio/Config.in
> +++ b/package/pulseaudio/Config.in
> @@ -8,6 +8,7 @@ config BR2_PACKAGE_PULSEAUDIO
>  	select BR2_PACKAGE_SPEEX
>  	depends on BR2_LARGEFILE
>  	depends on BR2_USE_MMU # fork()
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>  	help
>  	  PulseAudio is a sound system for POSIX OSes, meaning that it
>  	  is a proxy for your sound applications. It allows you to do
> @@ -30,6 +31,7 @@ config BR2_PACKAGE_PULSEAUDIO_DAEMON
>  
>  endif
>  
> -comment "pulseaudio needs a toolchain w/ wchar, largefile, threads"
> +comment "pulseaudio needs a toolchain w/ wchar, largefile, threads, atomic intrinsics"
>  	depends on BR2_USE_MMU
> -	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_USE_WCHAR || !BR2_LARGEFILE || !BR2_TOOLCHAIN_HAS_THREADS \
> +		|| !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> -- 
> 1.8.4.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 3/4] libftdi: Add dependency on atomic intrinsics
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 3/4] libftdi: " Anton Kolesov
@ 2014-08-15 20:58     ` Yann E. MORIN
  0 siblings, 0 replies; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-15 20:58 UTC (permalink / raw)
  To: buildroot

Anton, All,

On 2014-08-08 19:09 +0400, Anton Kolesov spake thusly:
> Libftdi requires GCC built-in atomic functions which are architecture specific
> and may not be implemented.
> 
> This fixes:
> http://autobuild.buildroot.net/results/6cb25ed954840109c9d0e582e922b0ba9d07e174/
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>

Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

However, I do have a small eye-candy comment to make, see below...

[--SNIP--]
> diff --git a/package/openocd/Config.in b/package/openocd/Config.in
> index 7f96ef8..e692d2d 100644
> --- a/package/openocd/Config.in
> +++ b/package/openocd/Config.in
> @@ -14,11 +14,15 @@ comment "Adapters"
>  
>  config BR2_PACKAGE_OPENOCD_FT2XXX
>  	bool "FT2xxx/FT4xxx Based JTAG Programmer"
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # libftdi
>  	select BR2_PACKAGE_LIBFTDI
>  	help
>  	  Enable building support for FT2232 based devices
>  	  using the libftdi driver, opensource alternate of FTD2XX
>  
> +comment "FT2232 support needs a toolchain w/ atomic intrinsics"

I'd prefer we keep the same title for comment and options, such as:

    comment "FT2xxx/FT4xxx support needs a toolchain w/ atomic intrinsics"

This can be fixed by whoever commits that, I guess no need to resend.

Regards,
Yann E. MORIN.

> +        depends on !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_PACKAGE_OPENOCD_JLINK
>  	bool "Segger J-Link JTAG Programmer"
>  	help
> -- 
> 1.8.4.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH v4 4/4] msgpack: Add dependency on atomic intrinsics
  2014-08-08 15:09   ` [Buildroot] [PATCH v4 4/4] msgpack: " Anton Kolesov
@ 2014-08-15 21:04     ` Yann E. MORIN
  0 siblings, 0 replies; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-15 21:04 UTC (permalink / raw)
  To: buildroot

Anton, All,

On 2014-08-08 19:09 +0400, Anton Kolesov spake thusly:
> Msgpack requires GCC built-in atomic functions which are architecture specific
> and may not be implemented.

Well, this patch does a bit more than that: it replaces the dependency
on !ARC with the new generic dependency.

What about enhancing the commit log as thus, for example:

    Msgpack requires GCC built-in atomic functions which are
    architecture specific and may not be implemented.

    Replace the current dependency on !ARC (which was the sole
    architecture so far to not have intrinsics), to the generic
    _HAS_ATOMIC_INTRINSICS dependency.

Otherwise:
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

Regards,
Yann E. MORIN.

> This fixes:
> http://autobuild.buildroot.net/results/44849a386cefb8899f4560296bfbbd8ea19ee910/
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  package/msgpack/Config.in        | 7 +++----
>  package/python-msgpack/Config.in | 7 +++----
>  2 files changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/package/msgpack/Config.in b/package/msgpack/Config.in
> index b380c58..7d6277f 100644
> --- a/package/msgpack/Config.in
> +++ b/package/msgpack/Config.in
> @@ -1,7 +1,7 @@
>  config BR2_PACKAGE_MSGPACK
>  	bool "msgpack"
>  	depends on BR2_INSTALL_LIBSTDCPP
> -	depends on !BR2_arc # atomic builtins
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
>  	help
>  	  MessagePack is an efficient binary serialization format.
>  
> @@ -10,6 +10,5 @@ config BR2_PACKAGE_MSGPACK
>  
>  	  http://msgpack.org/
>  
> -comment "msgpack needs a toolchain w/ C++"
> -	depends on !BR2_INSTALL_LIBSTDCPP
> -	depends on !BR2_arc
> +comment "msgpack needs a toolchain w/ C++, atomic intrinsics"
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> diff --git a/package/python-msgpack/Config.in b/package/python-msgpack/Config.in
> index c4b68a3..3b825a1 100644
> --- a/package/python-msgpack/Config.in
> +++ b/package/python-msgpack/Config.in
> @@ -3,7 +3,7 @@ config BR2_PACKAGE_PYTHON_MSGPACK
>  	depends on BR2_PACKAGE_PYTHON
>  	select BR2_PACKAGE_MSGPACK
>  	depends on BR2_INSTALL_LIBSTDCPP # msgpack
> -	depends on !BR2_arc # msgpack - atomic builtins
> +	depends on BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS # msgpack
>  	help
>  	  MessagePack (http://msgpack.org/) is a fast, compact binary
>  	  serialization format, suitable for similar data to JSON.
> @@ -12,7 +12,6 @@ config BR2_PACKAGE_PYTHON_MSGPACK
>  
>  	  https://pypi.python.org/pypi/msgpack-python/
>  
> -comment "python-msgpack needs a toolchain w/ C++"
> +comment "python-msgpack needs a toolchain w/ C++, atomic intrinsics"
>  	depends on BR2_PACKAGE_PYTHON
> -	depends on !BR2_INSTALL_LIBSTDCPP
> -	depends on !BR2_arc
> +	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> -- 
> 1.8.4.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section
  2014-08-04 12:17       ` [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section Anton Kolesov
  2014-08-15 20:40         ` Yann E. MORIN
@ 2014-08-15 22:17         ` Thomas Petazzoni
  2014-08-15 22:23           ` Yann E. MORIN
  1 sibling, 1 reply; 42+ messages in thread
From: Thomas Petazzoni @ 2014-08-15 22:17 UTC (permalink / raw)
  To: buildroot

Dear Anton Kolesov,

On Mon,  4 Aug 2014 16:17:08 +0400, Anton Kolesov wrote:

> diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt
> index 93e6a3e..4b4d056 100644
> --- a/docs/manual/adding-packages-directory.txt
> +++ b/docs/manual/adding-packages-directory.txt
> @@ -265,6 +265,10 @@ use in the comment.
>  ** Dependency symbol: +!BR2_PREFER_STATIC_LIB+
>  ** Comment string: +dynamic library+
>  
> +* Atomic intrinsics
> +** Dependency symbol: +!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS+
> +** Comment string: +atomic intrinsics+

Actually, the more I think about this, and the more I believe it should
be a property of the architecture rather than a property of the
toolchain. So it should probably rather be
BR2_ARCH_HAS_ATOMIC_INTRINSICS. And then, since it's a property of the
architecture, i.e not something the user can enable/disable, there is
no point in adding Config.in comment for that. So we would handle that
like we handle BR2_USE_MMU, not like we handle BR2_LARGEFILE.

Thoughts?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section
  2014-08-15 22:17         ` Thomas Petazzoni
@ 2014-08-15 22:23           ` Yann E. MORIN
  2014-08-16  7:40             ` Thomas Petazzoni
  0 siblings, 1 reply; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-15 22:23 UTC (permalink / raw)
  To: buildroot

Thomas, Anton, All,

On 2014-08-16 00:17 +0200, Thomas Petazzoni spake thusly:
> On Mon,  4 Aug 2014 16:17:08 +0400, Anton Kolesov wrote:
> > diff --git a/docs/manual/adding-packages-directory.txt b/docs/manual/adding-packages-directory.txt
> > index 93e6a3e..4b4d056 100644
> > --- a/docs/manual/adding-packages-directory.txt
> > +++ b/docs/manual/adding-packages-directory.txt
> > @@ -265,6 +265,10 @@ use in the comment.
> >  ** Dependency symbol: +!BR2_PREFER_STATIC_LIB+
> >  ** Comment string: +dynamic library+
> >  
> > +* Atomic intrinsics
> > +** Dependency symbol: +!BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS+
> > +** Comment string: +atomic intrinsics+
> 
> Actually, the more I think about this, and the more I believe it should
> be a property of the architecture rather than a property of the
> toolchain. So it should probably rather be
> BR2_ARCH_HAS_ATOMIC_INTRINSICS. And then, since it's a property of the
> architecture, i.e not something the user can enable/disable, there is
> no point in adding Config.in comment for that. So we would handle that
> like we handle BR2_USE_MMU, not like we handle BR2_LARGEFILE.
> 
> Thoughts?

Ah, I remember now, that we talked about that. My bad, I had forgotten
during the review.

However, we can't really change the implementation now, we're frozen for
the release.

What about adding this to the manual for now, since it does reflect the
current status of the code, and switch to an architecture option in
-next, or after the release is cut?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section
  2014-08-15 22:23           ` Yann E. MORIN
@ 2014-08-16  7:40             ` Thomas Petazzoni
  2014-08-16 15:26               ` Yann E. MORIN
  0 siblings, 1 reply; 42+ messages in thread
From: Thomas Petazzoni @ 2014-08-16  7:40 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Sat, 16 Aug 2014 00:23:08 +0200, Yann E. MORIN wrote:

> Ah, I remember now, that we talked about that. My bad, I had forgotten
> during the review.
> 
> However, we can't really change the implementation now, we're frozen for
> the release.
> 
> What about adding this to the manual for now, since it does reflect the
> current status of the code, and switch to an architecture option in
> -next, or after the release is cut?

I disagree: it's still time to change this, before it gets set in stone
by doing a release.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section
  2014-08-16  7:40             ` Thomas Petazzoni
@ 2014-08-16 15:26               ` Yann E. MORIN
  0 siblings, 0 replies; 42+ messages in thread
From: Yann E. MORIN @ 2014-08-16 15:26 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2014-08-16 09:40 +0200, Thomas Petazzoni spake thusly:
> On Sat, 16 Aug 2014 00:23:08 +0200, Yann E. MORIN wrote:
> 
> > Ah, I remember now, that we talked about that. My bad, I had forgotten
> > during the review.
> > 
> > However, we can't really change the implementation now, we're frozen for
> > the release.
> > 
> > What about adding this to the manual for now, since it does reflect the
> > current status of the code, and switch to an architecture option in
> > -next, or after the release is cut?
> 
> I disagree: it's still time to change this, before it gets set in stone
> by doing a release.

OK, I'll see to send a patch series for that tonight.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2014-08-16 15:26 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <In-Reply-To: <CAAXf6LURyGxEfQR+3g6xriwqUeE1E91Oav2X=r_C3YD66JzpEA@mail.gmail.com>
2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
2014-08-08 15:09   ` [Buildroot] [PATCH v4 2/4] pulseaudio: " Anton Kolesov
2014-08-15 20:54     ` Yann E. MORIN
2014-08-08 15:09   ` [Buildroot] [PATCH v4 3/4] libftdi: " Anton Kolesov
2014-08-15 20:58     ` Yann E. MORIN
2014-08-08 15:09   ` [Buildroot] [PATCH v4 4/4] msgpack: " Anton Kolesov
2014-08-15 21:04     ` Yann E. MORIN
2014-08-15 12:49   ` [Buildroot] [PATCH v4 1/4] cairo: " Anton Kolesov
2014-08-15 20:46   ` Yann E. MORIN
2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 2/9] cairo: arc: Disable if ARC atomics are disabled Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 3/9] jack2: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 4/9] pulseaudio: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 5/9] libftdi: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 6/9] msgpack: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 7/9] icu: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 8/9] libtorrent: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 9/9] thrift: " Anton Kolesov
2014-07-30  6:45 ` [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Thomas Petazzoni
2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 2/9] cairo: Add dependency on " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 3/9] jack2: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 4/9] pulseaudio: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 5/9] libftdi: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 6/9] msgpack: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 7/9] icu: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 8/9] libtorrent: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 9/9] thrift: " Anton Kolesov
2014-07-31 17:25     ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for " Yann E. MORIN
2014-07-31 18:05       ` Thomas Petazzoni
2014-08-03  9:32     ` Thomas Petazzoni
2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
2014-08-04 12:16         ` [Buildroot] [PATCH v3 2/4] pulseaudio: " Anton Kolesov
2014-08-04 12:16         ` [Buildroot] [PATCH v3 3/4] libftdi: " Anton Kolesov
2014-08-04 12:16         ` [Buildroot] [PATCH v3 4/4] msgpack: " Anton Kolesov
2014-08-07 15:42         ` [Buildroot] [PATCH v3 1/4] cairo: " Thomas De Schampheleire
2014-08-04 12:17       ` [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section Anton Kolesov
2014-08-15 20:40         ` Yann E. MORIN
2014-08-15 22:17         ` Thomas Petazzoni
2014-08-15 22:23           ` Yann E. MORIN
2014-08-16  7:40             ` Thomas Petazzoni
2014-08-16 15:26               ` Yann E. MORIN

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.