Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 06/21] json-c: needs __sync_val_compare_and_swap_4
Date: Mon, 25 Jan 2016 19:47:38 +0100	[thread overview]
Message-ID: <20160125184738.GG3386@free.fr> (raw)
In-Reply-To: <1453676887-31236-7-git-send-email-thomas.petazzoni@free-electrons.com>

Thomas, All,

On 2016-01-25 00:07 +0100, Thomas Petazzoni spake thusly:
> 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 with fail due to the missing

    ...linking will fail...

> __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>

Otherwise:

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

Regards,
Yann E. MORIN.

> ---
>  package/efl/Config.in                          | 1 +
>  package/espeak/Config.in                       | 1 +
>  package/fastd/Config.in                        | 1 +
>  package/gstreamer/gst-plugins-good/Config.in   | 1 +
>  package/gstreamer1/gst1-plugins-good/Config.in | 1 +
>  package/json-c/Config.in                       | 2 ++
>  package/mpd/Config.in                          | 1 +
>  package/pulseaudio/Config.in                   | 2 ++
>  package/rsyslog/Config.in                      | 2 ++
>  package/ubus/Config.in                         | 1 +
>  10 files changed, 13 insertions(+)
> 
> diff --git a/package/efl/Config.in b/package/efl/Config.in
> index 85e46b1..21cbf5f 100644
> --- a/package/efl/Config.in
> +++ b/package/efl/Config.in
> @@ -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
> diff --git a/package/espeak/Config.in b/package/espeak/Config.in
> index 94e2816..eebaf6f 100644
> --- a/package/espeak/Config.in
> +++ b/package/espeak/Config.in
> @@ -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
> diff --git a/package/fastd/Config.in b/package/fastd/Config.in
> index f753ce4..55bdbd6 100644
> --- a/package/fastd/Config.in
> +++ b/package/fastd/Config.in
> @@ -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.
>  
> diff --git a/package/gstreamer/gst-plugins-good/Config.in b/package/gstreamer/gst-plugins-good/Config.in
> index 0544b7c..c2ec5b0 100644
> --- a/package/gstreamer/gst-plugins-good/Config.in
> +++ b/package/gstreamer/gst-plugins-good/Config.in
> @@ -206,6 +206,7 @@ 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"
>  
> diff --git a/package/gstreamer1/gst1-plugins-good/Config.in b/package/gstreamer1/gst1-plugins-good/Config.in
> index a8cdde2..6cb9732 100644
> --- a/package/gstreamer1/gst1-plugins-good/Config.in
> +++ b/package/gstreamer1/gst1-plugins-good/Config.in
> @@ -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
> diff --git a/package/json-c/Config.in b/package/json-c/Config.in
> index 67348fb..4df44a9 100644
> --- a/package/json-c/Config.in
> +++ b/package/json-c/Config.in
> @@ -1,5 +1,7 @@
>  config BR2_PACKAGE_JSON_C
>  	bool "json-c"
> +	# uses __sync_val_compare_and_swap_4
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4
>  	help
>  	  JSON-C - A JSON implementation in C
>  
> diff --git a/package/mpd/Config.in b/package/mpd/Config.in
> index be0843f..643e7ba 100644
> --- a/package/mpd/Config.in
> +++ b/package/mpd/Config.in
> @@ -248,6 +248,7 @@ config BR2_PACKAGE_MPD_PULSEAUDIO
>  	bool "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
>  	help
>  	  Enable pulseaudio output support.
> diff --git a/package/pulseaudio/Config.in b/package/pulseaudio/Config.in
> index 63c8ca4..4583d22 100644
> --- a/package/pulseaudio/Config.in
> +++ b/package/pulseaudio/Config.in
> @@ -3,6 +3,7 @@ config BR2_PACKAGE_PULSEAUDIO
>  	depends on BR2_USE_WCHAR
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	depends on !BR2_STATIC_LIBS
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
>  	select BR2_PACKAGE_LIBTOOL
>  	select BR2_PACKAGE_JSON_C
>  	select BR2_PACKAGE_LIBSNDFILE
> @@ -34,4 +35,5 @@ endif
>  comment "pulseaudio needs a toolchain w/ wchar, threads, dynamic library"
>  	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_STATIC_LIBS
> diff --git a/package/rsyslog/Config.in b/package/rsyslog/Config.in
> index d66132f..3599207 100644
> --- a/package/rsyslog/Config.in
> +++ b/package/rsyslog/Config.in
> @@ -7,6 +7,7 @@ config BR2_PACKAGE_RSYSLOG
>  	depends on BR2_TOOLCHAIN_HAS_THREADS
>  	depends on BR2_USE_MMU # fork()
>  	depends on !BR2_STATIC_LIBS # modules
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
>  	help
>  	  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"
>  	depends on BR2_USE_MMU
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4
>  	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
> diff --git a/package/ubus/Config.in b/package/ubus/Config.in
> index 8567321..d63357a 100644
> --- a/package/ubus/Config.in
> +++ b/package/ubus/Config.in
> @@ -5,6 +5,7 @@ config BR2_PACKAGE_UBUS
>  	bool "ubus"
>  	select BR2_PACKAGE_LIBUBOX
>  	select BR2_PACKAGE_JSON_C
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
>  	depends on !BR2_STATIC_LIBS # libubox
>  	help
>  	  IPC/RPC bus that allows communication between processes.
> -- 
> 2.6.4
> 
> _______________________________________________
> 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.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2016-01-25 18:47 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-24 23:07 [Buildroot] [PATCH 00/21] Rework atomic handling Thomas Petazzoni
2016-01-24 23:07 ` [Buildroot] [PATCH 01/21] libftdi: C++ bindings need boost Thomas Petazzoni
2016-01-25 17:04   ` Yann E. MORIN
2016-01-25 20:04     ` Thomas Petazzoni
2016-01-24 23:07 ` [Buildroot] [PATCH 02/21] libftdi: remove BR2_ARCH_HAS_ATOMICS dependency Thomas Petazzoni
2016-01-25 17:15   ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 03/21] toolchain: add BR2_TOOLCHAIN_HAS_SYNC_x hidden booleans Thomas Petazzoni
2016-01-25 18:27   ` Yann E. MORIN
2016-01-27 21:46     ` Thomas Petazzoni
2016-01-27 22:47       ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 04/21] docs/manual: document usage of BR2_TOOLCHAIN_HAS_SYNC_x Thomas Petazzoni
2016-01-25 18:38   ` Yann E. MORIN
2016-01-25 20:07     ` Thomas Petazzoni
2016-01-24 23:07 ` [Buildroot] [PATCH 05/21] icu: remove BR2_ARCH_HAS_ATOMICS dependency Thomas Petazzoni
2016-01-25 18:42   ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 06/21] json-c: needs __sync_val_compare_and_swap_4 Thomas Petazzoni
2016-01-25 18:47   ` Yann E. MORIN [this message]
2016-01-24 23:07 ` [Buildroot] [PATCH 07/21] pulseaudio: remove BR2_ARCH_HAS_ATOMICS dependency Thomas Petazzoni
2016-01-25 18:52   ` Yann E. MORIN
2016-01-27 21:56     ` Thomas Petazzoni
2016-01-27 22:51       ` Yann E. MORIN
2016-01-27 23:01         ` Thomas Petazzoni
2016-01-24 23:07 ` [Buildroot] [PATCH 08/21] apache, apr: fix atomic handling Thomas Petazzoni
2016-01-25 20:59   ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 09/21] jack2: use the proper BR2_TOOLCHAIN_HAS_SYNC_x symbol Thomas Petazzoni
2016-01-25 21:12   ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 10/21] libtorrent: use the proper BR2_TOOLCHAIN_HAS_SYNC_x symbols Thomas Petazzoni
2016-01-25 21:45   ` Yann E. MORIN
2016-01-25 22:07     ` Thomas Petazzoni
2016-01-25 22:14       ` Yann E. MORIN
2016-01-25 22:22         ` Thomas Petazzoni
2016-01-26 22:13   ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 11/21] gauche: disable on SPARC(64), remove atomics dependency Thomas Petazzoni
2016-01-25 21:52   ` Yann E. MORIN
2016-01-24 23:07 ` [Buildroot] [PATCH 12/21] cairo, harfbuzz: rework atomic dependencies Thomas Petazzoni
2016-01-24 23:07 ` [Buildroot] [PATCH 13/21] openocd: remove BR2_ARCH_HAS_ATOMICS dependency Thomas Petazzoni
2016-01-25 23:05   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 14/21] squid: rework atomic handling Thomas Petazzoni
2016-01-25 22:53   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 15/21] thrift: remove BR2_ARCH_HAS_ATOMICS dependency Thomas Petazzoni
2016-01-26 22:31   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 16/21] msgpack: rework " Thomas Petazzoni
2016-01-26 22:17   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 17/21] arch: remove BR2_ARCH_HAS_ATOMICS option Thomas Petazzoni
2016-01-26 22:22   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 18/21] glog: fix atomic built-in problem Thomas Petazzoni
2016-01-26 22:25   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 19/21] openal: add missing BR2_TOOLCHAIN_HAS_SYNC_4 dependency Thomas Petazzoni
2016-01-26 22:32   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 20/21] freerdp: " Thomas Petazzoni
2016-01-26 22:33   ` Yann E. MORIN
2016-01-24 23:08 ` [Buildroot] [PATCH 21/21] neard: " Thomas Petazzoni
2016-01-26 22:35   ` Yann E. MORIN
2016-01-26 20:28 ` [Buildroot] [PATCH 00/21] Rework atomic handling Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160125184738.GG3386@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox