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: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
parent
508c3e0c50
commit
8ea392b84e
@ -82,6 +82,7 @@ config BR2_PACKAGE_EFL_LIBSNDFILE
|
|||||||
config BR2_PACKAGE_EFL_PULSEAUDIO
|
config BR2_PACKAGE_EFL_PULSEAUDIO
|
||||||
bool "Enable pulseaudio support (recommended)"
|
bool "Enable pulseaudio support (recommended)"
|
||||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
|
||||||
select BR2_PACKAGE_PULSEAUDIO
|
select BR2_PACKAGE_PULSEAUDIO
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
|
@ -33,6 +33,7 @@ config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_ALSA
|
|||||||
config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
|
config BR2_PACKAGE_ESPEAK_AUDIO_BACKEND_PULSEAUDIO
|
||||||
bool "pulseaudio"
|
bool "pulseaudio"
|
||||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
|
||||||
select BR2_PACKAGE_PULSEAUDIO
|
select BR2_PACKAGE_PULSEAUDIO
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
@ -18,6 +18,7 @@ config BR2_PACKAGE_FASTD_STATUS_SOCKET
|
|||||||
bool "status socket support"
|
bool "status socket support"
|
||||||
default y
|
default y
|
||||||
select BR2_PACKAGE_JSON_C
|
select BR2_PACKAGE_JSON_C
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
|
||||||
help
|
help
|
||||||
Enable support for a socket to get fastd's status.
|
Enable support for a socket to get fastd's status.
|
||||||
|
|
||||||
|
@ -206,12 +206,14 @@ config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_PULSE
|
|||||||
depends on BR2_USE_MMU # pulseaudio
|
depends on BR2_USE_MMU # pulseaudio
|
||||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||||
depends on !BR2_STATIC_LIBS # pulseaudio
|
depends on !BR2_STATIC_LIBS # pulseaudio
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
|
||||||
select BR2_PACKAGE_PULSEAUDIO
|
select BR2_PACKAGE_PULSEAUDIO
|
||||||
bool "pulseaudio"
|
bool "pulseaudio"
|
||||||
|
|
||||||
comment "pulseaudio support needs a toolchain w/ threads, dynamic library"
|
comment "pulseaudio support needs a toolchain w/ threads, dynamic library"
|
||||||
depends on BR2_USE_MMU
|
depends on BR2_USE_MMU
|
||||||
depends on BR2_ARCH_HAS_ATOMICS
|
depends on BR2_ARCH_HAS_ATOMICS
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||||
|
|
||||||
config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
|
config BR2_PACKAGE_GST_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
|
||||||
|
@ -313,6 +313,7 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
|
|||||||
depends on BR2_USE_MMU # pulseaudio
|
depends on BR2_USE_MMU # pulseaudio
|
||||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||||
depends on !BR2_STATIC_LIBS # pulseaudio
|
depends on !BR2_STATIC_LIBS # pulseaudio
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
|
||||||
select BR2_PACKAGE_PULSEAUDIO
|
select BR2_PACKAGE_PULSEAUDIO
|
||||||
bool "pulseaudio"
|
bool "pulseaudio"
|
||||||
help
|
help
|
||||||
@ -321,6 +322,7 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_PULSE
|
|||||||
comment "pulseaudio support needs a toolchain w/ threads, dynamic library"
|
comment "pulseaudio support needs a toolchain w/ threads, dynamic library"
|
||||||
depends on BR2_USE_MMU
|
depends on BR2_USE_MMU
|
||||||
depends on BR2_ARCH_HAS_ATOMICS
|
depends on BR2_ARCH_HAS_ATOMICS
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||||
|
|
||||||
config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
|
config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_SOUPHTTPSRC
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
config BR2_PACKAGE_JSON_C
|
config BR2_PACKAGE_JSON_C
|
||||||
bool "json-c"
|
bool "json-c"
|
||||||
|
# uses __sync_val_compare_and_swap_4
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
help
|
help
|
||||||
JSON-C - A JSON implementation in C
|
JSON-C - A JSON implementation in C
|
||||||
|
|
||||||
|
@ -252,11 +252,13 @@ config BR2_PACKAGE_MPD_PULSEAUDIO
|
|||||||
bool "pulseaudio"
|
bool "pulseaudio"
|
||||||
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
depends on BR2_ARCH_HAS_ATOMICS # pulseaudio
|
||||||
depends on !BR2_STATIC_LIBS # pulseaudio
|
depends on !BR2_STATIC_LIBS # pulseaudio
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pulseaudio -> json-c
|
||||||
select BR2_PACKAGE_PULSEAUDIO
|
select BR2_PACKAGE_PULSEAUDIO
|
||||||
help
|
help
|
||||||
Enable pulseaudio output support.
|
Enable pulseaudio output support.
|
||||||
|
|
||||||
comment "pulseaudio support needs a toolchain w/ dynamic library"
|
comment "pulseaudio support needs a toolchain w/ dynamic library"
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
depends on BR2_STATIC_LIBS
|
depends on BR2_STATIC_LIBS
|
||||||
|
|
||||||
comment "Miscellaneous plugins"
|
comment "Miscellaneous plugins"
|
||||||
|
@ -3,6 +3,7 @@ config BR2_PACKAGE_PULSEAUDIO
|
|||||||
depends on BR2_USE_WCHAR
|
depends on BR2_USE_WCHAR
|
||||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||||
depends on !BR2_STATIC_LIBS
|
depends on !BR2_STATIC_LIBS
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
|
||||||
select BR2_PACKAGE_LIBTOOL
|
select BR2_PACKAGE_LIBTOOL
|
||||||
select BR2_PACKAGE_JSON_C
|
select BR2_PACKAGE_JSON_C
|
||||||
select BR2_PACKAGE_LIBSNDFILE
|
select BR2_PACKAGE_LIBSNDFILE
|
||||||
@ -34,4 +35,5 @@ endif
|
|||||||
comment "pulseaudio needs a toolchain w/ wchar, threads, dynamic library"
|
comment "pulseaudio needs a toolchain w/ wchar, threads, dynamic library"
|
||||||
depends on BR2_USE_MMU
|
depends on BR2_USE_MMU
|
||||||
depends on BR2_ARCH_HAS_ATOMICS
|
depends on BR2_ARCH_HAS_ATOMICS
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||||
|
@ -7,6 +7,7 @@ config BR2_PACKAGE_RSYSLOG
|
|||||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||||
depends on BR2_USE_MMU # fork()
|
depends on BR2_USE_MMU # fork()
|
||||||
depends on !BR2_STATIC_LIBS # modules
|
depends on !BR2_STATIC_LIBS # modules
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
|
||||||
help
|
help
|
||||||
Rsyslog is a powerful and flexible syslog implementation
|
Rsyslog is a powerful and flexible syslog implementation
|
||||||
|
|
||||||
@ -14,4 +15,5 @@ config BR2_PACKAGE_RSYSLOG
|
|||||||
|
|
||||||
comment "rsyslog needs a toolchain w/ threads, dynamic library"
|
comment "rsyslog needs a toolchain w/ threads, dynamic library"
|
||||||
depends on BR2_USE_MMU
|
depends on BR2_USE_MMU
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
comment "ubus needs a toolchain w/ dynamic library"
|
comment "ubus needs a toolchain w/ dynamic library"
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4
|
||||||
depends on BR2_STATIC_LIBS
|
depends on BR2_STATIC_LIBS
|
||||||
|
|
||||||
config BR2_PACKAGE_UBUS
|
config BR2_PACKAGE_UBUS
|
||||||
bool "ubus"
|
bool "ubus"
|
||||||
select BR2_PACKAGE_LIBUBOX
|
select BR2_PACKAGE_LIBUBOX
|
||||||
select BR2_PACKAGE_JSON_C
|
select BR2_PACKAGE_JSON_C
|
||||||
|
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
|
||||||
depends on !BR2_STATIC_LIBS # libubox
|
depends on !BR2_STATIC_LIBS # libubox
|
||||||
help
|
help
|
||||||
IPC/RPC bus that allows communication between processes.
|
IPC/RPC bus that allows communication between processes.
|
||||||
|
Loading…
Reference in New Issue
Block a user