Commit 8ea392b8 authored by Thomas Petazzoni's avatar Thomas Petazzoni
Browse files

json-c: needs __sync_val_compare_and_swap_4

While json-c itself builds fine on platforms that don't provide the
__sync atomic built-ins, it does use them. json-c doesn't fail to
build because only a library is built, so such function calls are left
unresolved. But as soon as it gets used in another package linked in a
program, linking will fail due to the missing
__sync_val_compare_and_swap_4() function.

To fix this, we make json-c depend on BR2_TOOLCHAIN_HAS_SYNC_4, and
propagate to the reverse dependencies:

 - json-c
   - fastd
   - pulseaudio
     - efl
     - espeak
     - gst-plugins-good
     - gst1-plugins-good
     - mpd
   - rsyslog
   - ubus

Note that pulseaudio already had a BR2_ARCH_HAS_ATOMICS dependency,
which we are keeping for the moment, and will clean-up in a subsequent
commit.

This commit will also fix packages that could optionally use json-c,
and therefore fixes build failures like:

  http://autobuild.buildroot.org/results/4fe/4feaa9089ee9a183c5086b791bea35c0156945af/



Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
parent 508c3e0c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ config BR2_PACKAGE_EFL_LIBSNDFILE
config BR2_PACKAGE_EFL_PULSEAUDIO
	bool "Enable pulseaudio support (recommended)"
	depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
	select BR2_PACKAGE_PULSEAUDIO
	default y
	help
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
	bool "pulseaudio"
	depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
	select BR2_PACKAGE_PULSEAUDIO

endchoice
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ config BR2_PACKAGE_FASTD_STATUS_SOCKET
	bool "status socket support"
	default y
	select BR2_PACKAGE_JSON_C
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
	help
	  Enable support for a socket to get fastd's status.

+2 −0
Original line number Diff line number Diff line
@@ -206,12 +206,14 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_PULSE
	depends on BR2_USE_MMU # pulseaudio
	depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
	depends on !BR2_STATIC_LIBS # pulseaudio
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
	select BR2_PACKAGE_PULSEAUDIO
	bool "pulseaudio"

comment "pulseaudio support needs a toolchain w/ threads, dynamic library"
	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_STATIC_LIBS

config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
+2 −0
Original line number Diff line number Diff line
@@ -313,6 +313,7 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
	depends on BR2_USE_MMU # pulseaudio
	depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
	depends on !BR2_STATIC_LIBS # pulseaudio
	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
	select BR2_PACKAGE_PULSEAUDIO
	bool "pulseaudio"
	help
@@ -321,6 +322,7 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
comment "pulseaudio support needs a toolchain w/ threads, dynamic library"
	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_STATIC_LIBS

config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
Loading