aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-02-02 16:31:28 +0100
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-02-06 11:16:00 +0100
commite64573c47faa4c60d2c331a3f3d677b89b096a29 (patch)
treea907653127943c84e1fdcd9d1b926a3bedde9ae3
parentab73b9284e4e805f290181154af15800cbcacc05 (diff)
downloadbuildroot-e64573c47faa4c60d2c331a3f3d677b89b096a29.tar.gz
buildroot-e64573c47faa4c60d2c331a3f3d677b89b096a29.tar.bz2
cairo, harfbuzz: rework atomic dependencies
This commit handles the reverse dependency tree of cairo in terms of atomic dependencies. There are two main changes: - cairo in fact no longer needs atomic operations. It can perfectly build without any __sync built-in, as was tested using an ARC toolchain without atomics, and a SPARC toolchain. Optionally, Cairo can use the __atomic builtins provided by gcc >= 4.7, so support for this is added as well. Thanks to this change, the BR2_ARCH_HAS_ATOMICS dependency is removed from cairo and all its reverse dependencies. - harfbuzz does require the __sync built-in for 4 bytes integers, so we add a dependency on BR2_TOOLCHAIN_HAS_SYNC_4 to harfbuzz and all its reverse dependency, the main one being the pango package. Due to this, the vast majority of gtk-related packages are moved to a dependency on BR2_ARCH_HAS_ATOMICS (which used to be due to cairo) to a dependency on BR2_TOOLCHAIN_HAS_SYNC_4 (due to pango -> harfbuzz). In detail: - cairo Remove BR2_ARCH_HAS_ATOMICS dependency, link against -latomic when gcc >= 4.8 in order to use the __atomic functions. - harfbuzz Add dependency on BR2_TOOLCHAIN_HAS_SYNC_4 - cairomm, gst-plugins-good, gst1-plugins-good, libgdiplus, libsvg-cairo, weston Remove BR2_ARCH_HAS_ATOMICS dependency (since cairo no longer needs atomics) - enlightenment, cwiid, gst-plugins-bad, gst-plugins-base, gst1-plugins-bad, gst1-plugins-base, gtkmm3, libevas-generic-loaders, libfm, libgail, libgtk2, libgtk3, librsvg, openbox, opencv, opencv3, pango, pangomm, pcmanfm, pinentry, rrdtool, webkit, webkitgtk24, xscreensaver Switch from a BR2_ARCH_HAS_ATOMICS dependency to a BR2_TOOLCHAIN_HAS_SYNC_4 (they depend on pango, harfbuzz, gtk, or some other related package) - directfb Remove BR2_ARCH_ATOMICS dependency of the BR2_PACKAGE_DIRECTFB_SVG (since cairo can build without atomics), but add a BR2_TOOLCHAIN_HAS_SYNC_4 dependency on BR2_PACKAGE_DIRECTFB itself since it does use __sync built-ins. This replaces the !BR2_sparc dependency. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--package/cairo/Config.in1
-rw-r--r--package/cairo/cairo.mk6
-rw-r--r--package/cairomm/Config.in2
-rw-r--r--package/cwiid/Config.in2
-rw-r--r--package/directfb/Config.in5
-rw-r--r--package/enlightenment/Config.in6
-rw-r--r--package/gstreamer/gst-plugins-bad/Config.in4
-rw-r--r--package/gstreamer/gst-plugins-base/Config.in4
-rw-r--r--package/gstreamer/gst-plugins-good/Config.in1
-rw-r--r--package/gstreamer1/gst1-plugins-bad/Config.in4
-rw-r--r--package/gstreamer1/gst1-plugins-base/Config.in4
-rw-r--r--package/gstreamer1/gst1-plugins-good/Config.in1
-rw-r--r--package/gtkmm3/Config.in4
-rw-r--r--package/harfbuzz/Config.in2
-rw-r--r--package/libevas-generic-loaders/Config.in4
-rw-r--r--package/libfm/Config.in4
-rw-r--r--package/libgail/Config.in4
-rw-r--r--package/libgdiplus/Config.in2
-rw-r--r--package/libgtk2/Config.in4
-rw-r--r--package/libgtk3/Config.in4
-rw-r--r--package/librsvg/Config.in4
-rw-r--r--package/libsvg-cairo/Config.in1
-rw-r--r--package/openbox/Config.in4
-rw-r--r--package/opencv/Config.in2
-rw-r--r--package/opencv3/Config.in4
-rw-r--r--package/pango/Config.in4
-rw-r--r--package/pangomm/Config.in4
-rw-r--r--package/pcmanfm/Config.in4
-rw-r--r--package/pinentry/Config.in4
-rw-r--r--package/rrdtool/Config.in2
-rw-r--r--package/webkit/Config.in4
-rw-r--r--package/webkitgtk24/Config.in4
-rw-r--r--package/weston/Config.in2
-rw-r--r--package/xscreensaver/Config.in4
34 files changed, 56 insertions, 59 deletions
diff --git a/package/cairo/Config.in b/package/cairo/Config.in
index 38570d6f4c..0c87a2904b 100644
--- a/package/cairo/Config.in
+++ b/package/cairo/Config.in
@@ -1,6 +1,5 @@
config BR2_PACKAGE_CAIRO
bool "cairo"
- depends on BR2_ARCH_HAS_ATOMICS
select BR2_PACKAGE_PIXMAN
select BR2_PACKAGE_FONTCONFIG
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index d80d068661..205250d950 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -16,6 +16,12 @@ ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
endif
+# cairo can use C++11 atomics when available, so we need to link with
+# libatomic for the architectures who need libatomic.
+ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_4_8),y)
+CAIRO_CONF_ENV += LIBS="-latomic"
+endif
+
CAIRO_CONF_OPTS = \
--enable-trace=no \
--enable-interpreter=no
diff --git a/package/cairomm/Config.in b/package/cairomm/Config.in
index 4477b37fe8..c0d5ccd1df 100644
--- a/package/cairomm/Config.in
+++ b/package/cairomm/Config.in
@@ -3,7 +3,6 @@ config BR2_PACKAGE_CAIROMM
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_LIBSIGC
- depends on BR2_ARCH_HAS_ATOMICS # cairo
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_USE_WCHAR # libglib2
@@ -16,6 +15,5 @@ config BR2_PACKAGE_CAIROMM
comment "cairomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
|| !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
diff --git a/package/cwiid/Config.in b/package/cwiid/Config.in
index 1b64f0a79d..03b7dbbcdb 100644
--- a/package/cwiid/Config.in
+++ b/package/cwiid/Config.in
@@ -14,7 +14,7 @@ config BR2_PACKAGE_CWIID
if BR2_PACKAGE_CWIID
config BR2_PACKAGE_CWIID_WMGUI
bool "wmgui"
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk3 -> pango -> harfbuzz
depends on BR2_PACKAGE_XORG7 # libgtk2
depends on BR2_USE_WCHAR # libgtk2 -> libglib2
depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
diff --git a/package/directfb/Config.in b/package/directfb/Config.in
index 638e4e167b..2aed63f1e8 100644
--- a/package/directfb/Config.in
+++ b/package/directfb/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_DIRECTFB
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5
depends on !BR2_TOOLCHAIN_USES_MUSL # sigval_t issue
- depends on !BR2_sparc # needs atomic operation __sync_fetch_and_add
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
select BR2_PACKAGE_FREETYPE
select BR2_PACKAGE_ZLIB
help
@@ -147,7 +147,6 @@ config BR2_PACKAGE_DIRECTFB_PNG
config BR2_PACKAGE_DIRECTFB_SVG
bool "enable SVG support"
- depends on BR2_ARCH_HAS_ATOMICS # cairo
default y
select BR2_PACKAGE_LIBSVG_CAIRO
@@ -163,6 +162,6 @@ config BR2_PACKAGE_DIRECTFB_TESTS
endif # BR2_PACKAGE_DIRECTFB
comment "directfb needs a (e)glibc or uClibc toolchain w/ C++, threads, gcc >= 4.5"
- depends on !BR2_sparc # needs atomic operation __sync_fetch_and_add
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || BR2_TOOLCHAIN_USES_MUSL
diff --git a/package/enlightenment/Config.in b/package/enlightenment/Config.in
index fc1f469aa8..05ee6fc619 100644
--- a/package/enlightenment/Config.in
+++ b/package/enlightenment/Config.in
@@ -10,8 +10,8 @@ config BR2_PACKAGE_ENLIGHTENMENT
depends on BR2_USE_MMU
depends on BR2_PACKAGE_EFL
depends on BR2_PACKAGE_XORG7
- # libevas-generic-loaders-svg -> librsvg -> pango -> cairo
- depends on BR2_ARCH_HAS_ATOMICS
+ # libevas-generic-loaders-svg -> librsvg -> pango -> harfbuzz
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
select BR2_PACKAGE_EFL_X_XLIB
select BR2_PACKAGE_EFL_JPEG # needed at runtime by enlightenment_start
select BR2_PACKAGE_EFL_PNG # needed at runtime by enlightenment_start
@@ -31,4 +31,4 @@ config BR2_PACKAGE_ENLIGHTENMENT
comment "enlightenment needs a toolchain w/ wchar, C++, threads"
depends on BR2_PACKAGE_EFL && BR2_PACKAGE_XORG7 && BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
diff --git a/package/gstreamer/gst-plugins-bad/Config.in b/package/gstreamer/gst-plugins-bad/Config.in
index 43849e2a71..d95edaa572 100644
--- a/package/gstreamer/gst-plugins-bad/Config.in
+++ b/package/gstreamer/gst-plugins-bad/Config.in
@@ -298,12 +298,12 @@ config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_OPUS
config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_RSVG
bool "rsvg"
depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
- depends on BR2_ARCH_HAS_ATOMICS # librsvg -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz
select BR2_PACKAGE_LIBRSVG
comment "rsvg plugin needs a toolchain w/ C++"
depends on !BR2_INSTALL_LIBSTDCPP
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
config BR2_PACKAGE_GST_PLUGINS_BAD_PLUGIN_SDL
bool "sdl"
diff --git a/package/gstreamer/gst-plugins-base/Config.in b/package/gstreamer/gst-plugins-base/Config.in
index 8ececea5ad..8ad9a8ef81 100644
--- a/package/gstreamer/gst-plugins-base/Config.in
+++ b/package/gstreamer/gst-plugins-base/Config.in
@@ -85,12 +85,12 @@ config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_OGG
config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_PANGO
bool "pango font renderer"
depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
- depends on BR2_ARCH_HAS_ATOMICS # pango -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
select BR2_PACKAGE_PANGO
comment "pango plugin needs a toolchain w/ C++"
depends on !BR2_INSTALL_LIBSTDCPP
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
config BR2_PACKAGE_GST_PLUGINS_BASE_PLUGIN_THEORA
bool "theora (*.ogg video)"
diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
index 36ab6cb4f9..65f74e819d 100644
--- a/package/gstreamer/gst-plugins-good/Config.in
+++ b/package/gstreamer/gst-plugins-good/Config.in
@@ -174,7 +174,6 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_ANNODEX
config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_CAIRO
bool "cairo"
- depends on BR2_ARCH_HAS_ATOMICS # cairo
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
diff --git a/package/gstreamer1/gst1-plugins-bad/Config.in b/package/gstreamer1/gst1-plugins-bad/Config.in
index 0aafea0985..f02be3439a 100644
--- a/package/gstreamer1/gst1-plugins-bad/Config.in
+++ b/package/gstreamer1/gst1-plugins-bad/Config.in
@@ -623,14 +623,14 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPUS
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RSVG
bool "rsvg"
depends on BR2_INSTALL_LIBSTDCPP # librsvg -> pango
- depends on BR2_ARCH_HAS_ATOMICS # librsvg -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz
select BR2_PACKAGE_LIBRSVG
help
RSVG plugin library
comment "rsvg plugin needs a toolchain w/ C++"
depends on !BR2_INSTALL_LIBSTDCPP
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_GL
bool "gl"
diff --git a/package/gstreamer1/gst1-plugins-base/Config.in b/package/gstreamer1/gst1-plugins-base/Config.in
index 44367eb7e5..b19fa59b92 100644
--- a/package/gstreamer1/gst1-plugins-base/Config.in
+++ b/package/gstreamer1/gst1-plugins-base/Config.in
@@ -129,14 +129,14 @@ config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_OGG
config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_PANGO
bool "pango font renderer"
depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
- depends on BR2_ARCH_HAS_ATOMICS # pango -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
select BR2_PACKAGE_PANGO
help
Pango-based text rendering and overlay
comment "pango plugin needs a toolchain w/ C++"
depends on !BR2_INSTALL_LIBSTDCPP
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
config BR2_PACKAGE_GST1_PLUGINS_BASE_PLUGIN_THEORA
bool "theora (*.ogg video)"
diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
index 2606b86fd3..a59033a24e 100644
--- a/package/gstreamer1/gst1-plugins-good/Config.in
+++ b/package/gstreamer1/gst1-plugins-good/Config.in
@@ -281,7 +281,6 @@ comment "v4l2 needs a toolchain w/ headers >= 3.0"
config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_CAIRO
bool "cairo"
- depends on BR2_ARCH_HAS_ATOMICS # cairo
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
help
diff --git a/package/gtkmm3/Config.in b/package/gtkmm3/Config.in
index 80dbbde24a..238a8cdeba 100644
--- a/package/gtkmm3/Config.in
+++ b/package/gtkmm3/Config.in
@@ -5,7 +5,7 @@ config BR2_PACKAGE_GTKMM3
# and GCC >= 5.3.
# https://sourceware.org/bugzilla/show_bug.cgi?id=19405
depends on !BR2_nios2
- depends on BR2_ARCH_HAS_ATOMICS # libcairomm/libgtk3/libpangomm -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pangomm, libgtk3 -> pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # glibmm, libpangomm -> glibmm/pango
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/libgtk3 -> libglib2
@@ -24,6 +24,6 @@ config BR2_PACKAGE_GTKMM3
comment "gtkmm3 needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/harfbuzz/Config.in b/package/harfbuzz/Config.in
index 7a864e9b7a..a6db9840cc 100644
--- a/package/harfbuzz/Config.in
+++ b/package/harfbuzz/Config.in
@@ -1,6 +1,7 @@
config BR2_PACKAGE_HARFBUZZ
bool "harfbuzz"
depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
help
HarfBuzz is an OpenType text shaping engine
@@ -10,4 +11,5 @@ config BR2_PACKAGE_HARFBUZZ
glib2 and icu packages if they are selected.
comment "harfbuzz needs a toolchain w/ C++"
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/libevas-generic-loaders/Config.in b/package/libevas-generic-loaders/Config.in
index 1d5b717977..c171d47193 100644
--- a/package/libevas-generic-loaders/Config.in
+++ b/package/libevas-generic-loaders/Config.in
@@ -27,14 +27,14 @@ 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_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # librsvg -> pango -> harfbuzz
select BR2_PACKAGE_LIBRSVG
select BR2_PACKAGE_CAIRO
help
This option enables the Evas generic SVG loader
comment "SVG loader needs a toolchain w/ wchar, threads, C++"
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
diff --git a/package/libfm/Config.in b/package/libfm/Config.in
index c6cfcf6d48..603b4d51ee 100644
--- a/package/libfm/Config.in
+++ b/package/libfm/Config.in
@@ -9,7 +9,7 @@ config BR2_PACKAGE_LIBFM
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_USE_MMU # libglib2
depends on BR2_INSTALL_LIBSTDCPP # libgtk2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
help
A glib/gio-based library providing some file management
utilities and related-widgets missing in gtk+/glib. This is
@@ -23,6 +23,6 @@ config BR2_PACKAGE_LIBFM
comment "libfm needs X.org and a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_XORG7
diff --git a/package/libgail/Config.in b/package/libgail/Config.in
index 5e4f03bdaf..821a922fa5 100644
--- a/package/libgail/Config.in
+++ b/package/libgail/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_LIBGAIL
depends on BR2_TOOLCHAIN_HAS_THREADS # pango -> libglib2
depends on BR2_USE_MMU # pango -> libglib2
depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
- depends on BR2_ARCH_HAS_ATOMICS # pango -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
depends on BR2_PACKAGE_LIBGTK2
depends on BR2_DEPRECATED_SINCE_2015_08
select BR2_PACKAGE_PANGO
@@ -27,5 +27,5 @@ comment "libgail needs a toolchain w/ C++, wchar, threads"
depends on BR2_PACKAGE_LIBGTK2
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_DEPRECATED_SINCE_2015_08
diff --git a/package/libgdiplus/Config.in b/package/libgdiplus/Config.in
index f860ab3394..68625031e2 100644
--- a/package/libgdiplus/Config.in
+++ b/package/libgdiplus/Config.in
@@ -8,7 +8,6 @@ config BR2_PACKAGE_LIBGDIPLUS
depends on BR2_USE_WCHAR # libglib2 -> gettext
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_USE_MMU # libglib2
- depends on BR2_ARCH_HAS_ATOMICS # cairo
help
An Open Source implementation of the GDI+ API.
@@ -16,6 +15,5 @@ config BR2_PACKAGE_LIBGDIPLUS
comment "libgdiplus needs a toolchain w/ wchar, threads"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
depends on BR2_PACKAGE_XORG7
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index 9326f44209..b6cf37e191 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -17,7 +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_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
help
The GTK+ version 2 graphical user interface library
@@ -35,7 +35,7 @@ endif
comment "libgtk2 needs a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_PACKAGE_XORG7
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index 02c7aaf0c7..ac56b85a69 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -15,7 +15,7 @@ config BR2_PACKAGE_LIBGTK3
depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
depends on BR2_USE_MMU # glib2
depends on BR2_INSTALL_LIBSTDCPP # pango
- depends on BR2_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
help
The GTK+ version 3 graphical user interface library
@@ -84,6 +84,6 @@ endif
comment "libgtk3 needs a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/librsvg/Config.in b/package/librsvg/Config.in
index 03e5cf3aae..7ce9d063a8 100644
--- a/package/librsvg/Config.in
+++ b/package/librsvg/Config.in
@@ -11,7 +11,7 @@ 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_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
help
The rsvg library is an efficient renderer for Scalable
Vector Graphics (SVG) pictures.
@@ -20,5 +20,5 @@ config BR2_PACKAGE_LIBRSVG
comment "librsvg needs a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
diff --git a/package/libsvg-cairo/Config.in b/package/libsvg-cairo/Config.in
index d69a6b9259..9577c69bf0 100644
--- a/package/libsvg-cairo/Config.in
+++ b/package/libsvg-cairo/Config.in
@@ -1,6 +1,5 @@
config BR2_PACKAGE_LIBSVG_CAIRO
bool "libsvg-cairo"
- depends on BR2_ARCH_HAS_ATOMICS # cairo
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_SVG
select BR2_PACKAGE_LIBSVG
diff --git a/package/openbox/Config.in b/package/openbox/Config.in
index f5475bf827..3ddd376803 100644
--- a/package/openbox/Config.in
+++ b/package/openbox/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_OPENBOX
depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
depends on BR2_USE_MMU # glib2
depends on BR2_USE_WCHAR # glib2
- depends on BR2_ARCH_HAS_ATOMICS # pango -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # pango -> freetype
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_LIBXML2
@@ -21,7 +21,7 @@ config BR2_PACKAGE_OPENBOX
comment "openbox needs a toolchain w/ C++, threads, wchar"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR || \
!BR2_INSTALL_LIBSTDCPP
depends on BR2_PACKAGE_XORG7
diff --git a/package/opencv/Config.in b/package/opencv/Config.in
index 679ce6fb95..8bc6c34779 100644
--- a/package/opencv/Config.in
+++ b/package/opencv/Config.in
@@ -179,7 +179,7 @@ config BR2_PACKAGE_OPENCV_WITH_GTK
depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> libglib2
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_MMU # libgtk2 -> glib2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
depends on BR2_PACKAGE_OPENCV_LIB_HIGHGUI
select BR2_PACKAGE_LIBGTK2
diff --git a/package/opencv3/Config.in b/package/opencv3/Config.in
index 873680515b..3a185d6871 100644
--- a/package/opencv3/Config.in
+++ b/package/opencv3/Config.in
@@ -69,7 +69,7 @@ config BR2_PACKAGE_OPENCV3_WITH_GTK
comment "gtk2 support needs libgtk2"
depends on BR2_USE_MMU # libgtk2 -> glib2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_PACKAGE_LIBGTK2
config BR2_PACKAGE_OPENCV3_WITH_GTK3
@@ -78,7 +78,7 @@ config BR2_PACKAGE_OPENCV3_WITH_GTK3
comment "gtk3 support needs libgtk3"
depends on BR2_USE_MMU # libgtk3 -> glib2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk3 -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_PACKAGE_LIBGTK3
config BR2_PACKAGE_OPENCV3_WITH_QT
diff --git a/package/pango/Config.in b/package/pango/Config.in
index e9c3040b1f..7813c4ebaf 100644
--- a/package/pango/Config.in
+++ b/package/pango/Config.in
@@ -4,7 +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_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz
select BR2_PACKAGE_LIBGLIB2
select BR2_PACKAGE_EXPAT
select BR2_PACKAGE_CAIRO
@@ -24,6 +24,6 @@ config BR2_PACKAGE_PANGO
comment "pango needs a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_INSTALL_LIBSTDCPP
diff --git a/package/pangomm/Config.in b/package/pangomm/Config.in
index 6a84c424fd..a7c41a008f 100644
--- a/package/pangomm/Config.in
+++ b/package/pangomm/Config.in
@@ -4,7 +4,7 @@ config BR2_PACKAGE_PANGOMM
select BR2_PACKAGE_GLIBMM
select BR2_PACKAGE_PANGO
select BR2_PACKAGE_LIBSIGC
- depends on BR2_ARCH_HAS_ATOMICS # libcairomm/pango -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # glibmm/pango
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/pango -> libglib2
@@ -17,6 +17,6 @@ config BR2_PACKAGE_PANGOMM
comment "pangomm needs a toolchain w/ C++, wchar, threads, gcc >= 4.8"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR \
|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/pcmanfm/Config.in b/package/pcmanfm/Config.in
index 4289785b4a..149a595448 100644
--- a/package/pcmanfm/Config.in
+++ b/package/pcmanfm/Config.in
@@ -9,7 +9,7 @@ config BR2_PACKAGE_PCMANFM
depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
depends on BR2_USE_MMU # libglib2
depends on BR2_INSTALL_LIBSTDCPP # libgtk2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
help
PCMan File Manager (PCManFM) is a file manager application developed
by Hong Jen Yee from Taiwan which is meant to be a replacement for
@@ -19,6 +19,6 @@ config BR2_PACKAGE_PCMANFM
comment "pcmanfm needs X.org and a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_XORG7
diff --git a/package/pinentry/Config.in b/package/pinentry/Config.in
index edf3316322..f5a8159762 100644
--- a/package/pinentry/Config.in
+++ b/package/pinentry/Config.in
@@ -23,7 +23,7 @@ config BR2_PACKAGE_PINENTRY_GTK2
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU
depends on BR2_INSTALL_LIBSTDCPP
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
select BR2_PACKAGE_LIBGTK2
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
help
@@ -31,7 +31,7 @@ config BR2_PACKAGE_PINENTRY_GTK2
comment "pinentry-gtk2 needs X and a toolchain w/ wchar, threads, C++"
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_PACKAGE_XORG7 || !BR2_USE_WCHAR || \
!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/rrdtool/Config.in b/package/rrdtool/Config.in
index b07c446cd9..631ed32847 100644
--- a/package/rrdtool/Config.in
+++ b/package/rrdtool/Config.in
@@ -15,7 +15,7 @@ if BR2_PACKAGE_RRDTOOL
config BR2_PACKAGE_RRDTOOL_RRDGRAPH
bool "rrd_graph"
default y
- depends on BR2_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
depends on BR2_INSTALL_LIBSTDCPP # freetype support from pango
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PDF
diff --git a/package/webkit/Config.in b/package/webkit/Config.in
index 7f0d1e4edb..c139f5212c 100644
--- a/package/webkit/Config.in
+++ b/package/webkit/Config.in
@@ -18,7 +18,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_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_ENCHANT
@@ -47,7 +47,7 @@ config BR2_PACKAGE_WEBKIT
comment "webkit needs libgtk2 and a toolchain w/ C++, wchar, threads"
depends on BR2_DEPRECATED_SINCE_2015_08
depends on BR2_PACKAGE_WEBKIT_ARCH_SUPPORTS
- depends on BR2_ARCH_HAS_ATOMICS # cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_PACKAGE_LIBGTK2 || !BR2_INSTALL_LIBSTDCPP || \
!BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU
diff --git a/package/webkitgtk24/Config.in b/package/webkitgtk24/Config.in
index 0a30bac7ac..3c7c3300b9 100644
--- a/package/webkitgtk24/Config.in
+++ b/package/webkitgtk24/Config.in
@@ -11,7 +11,7 @@ config BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS
comment "webkitgtk24 needs libgtk2 and a toolchain w/ C++, wchar, NPTL, gcc >=4.8"
depends on BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_PACKAGE_LIBGTK2 || !BR2_PACKAGE_XORG7 || \
!BR2_TOOLCHAIN_HAS_THREADS_NPTL || !BR2_INSTALL_LIBSTDCPP \
|| !BR2_USE_WCHAR || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
@@ -25,7 +25,7 @@ config BR2_PACKAGE_WEBKITGTK24
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
depends on (BR2_PACKAGE_LIBGTK2 && BR2_PACKAGE_XORG7)
depends on BR2_PACKAGE_WEBKITGTK24_ARCH_SUPPORTS
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # harfbuzz
select BR2_PACKAGE_CAIRO
select BR2_PACKAGE_CAIRO_PNG
select BR2_PACKAGE_ENCHANT
diff --git a/package/weston/Config.in b/package/weston/Config.in
index 3fd798121a..c5525e1bee 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -1,5 +1,4 @@
comment "weston needs udev and a toolchain w/ locale, threads, dynamic library, headers >= 3.0"
- depends on BR2_ARCH_HAS_ATOMICS
depends on !BR2_PACKAGE_HAS_UDEV || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 || BR2_STATIC_LIBS || \
!BR2_ENABLE_LOCALE
@@ -19,7 +18,6 @@ config BR2_PACKAGE_WESTON
depends on !BR2_STATIC_LIBS # wayland
depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0
- depends on BR2_ARCH_HAS_ATOMICS # cairo
# Runtime dependency
select BR2_PACKAGE_XKEYBOARD_CONFIG
# Make sure at least one compositor is selected.
diff --git a/package/xscreensaver/Config.in b/package/xscreensaver/Config.in
index 59b19c5eb1..5213ce3695 100644
--- a/package/xscreensaver/Config.in
+++ b/package/xscreensaver/Config.in
@@ -5,7 +5,7 @@ config BR2_PACKAGE_XSCREENSAVER
depends on BR2_TOOLCHAIN_HAS_THREADS # libgtk2 -> glib2
depends on BR2_USE_WCHAR # libgtk2 -> glib2
depends on BR2_USE_MMU # libgtk2 -> glib2
- depends on BR2_ARCH_HAS_ATOMICS # libgtk2 -> cairo
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
select BR2_PACKAGE_LIBGTK2
select BR2_PACKAGE_LIBGLADE
select BR2_PACKAGE_JPEG
@@ -25,6 +25,6 @@ config BR2_PACKAGE_XSCREENSAVER
comment "xscreensaver needs a toolchain w/ wchar, C++, threads"
depends on BR2_PACKAGE_XORG7
depends on BR2_USE_MMU
- depends on BR2_ARCH_HAS_ATOMICS
+ depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_USE_WCHAR