Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 18/18] erlang: make libatomic_ops optional
Date: Sat, 23 Jan 2016 09:25:49 +0100	[thread overview]
Message-ID: <20160123092549.2c47f3b5@free-electrons.com> (raw)
In-Reply-To: <1453511471-28519-19-git-send-email-fhunleth@troodon-software.com>

Frank,

On Fri, 22 Jan 2016 20:11:11 -0500, Frank Hunleth wrote:
> The Erlang developers prefer the use of Erlang's native atomics in
> Erlang 18. In the previous Erlang release, the native atomics
> implementation was not complete and so libatomic_ops was necessary. Now
> libatomic_ops is used as a fallback, but based on tests of every
> qemu_*_defconfig and several other configs it appears to not be
> necessary. In fact, it causes build failures on aarch64. Since it is

If using libatomic_ops on aarch64 with erlang causes build failures,
then your BR2_PACKAGE_ERLANG_USE_LIBATOMIC_OPS option should depend
on !BR2_aarch64.

> conceivable that a platform exists that may still require libatomic_ops,
> this change makes the use of the library optional.
> 
> Fixes:
> http://autobuild.buildroot.net/results/0cd/0cd22eb74fa29e5a85bf897762e16ab3daf33962/
> 
> Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
> ---
>  package/erlang/Config.in | 10 ++++++++--
>  package/erlang/erlang.mk |  2 ++
>  2 files changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/package/erlang/Config.in b/package/erlang/Config.in
> index 0ec01bb..9bd64ac 100644
> --- a/package/erlang/Config.in
> +++ b/package/erlang/Config.in
> @@ -7,8 +7,7 @@ config BR2_PACKAGE_ERLANG
>  	bool "erlang"
>  	depends on BR2_USE_MMU # fork()
>  	depends on !BR2_STATIC_LIBS
> -	depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS
> -	select BR2_PACKAGE_LIBATOMIC_OPS
> +	depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS # erlang native atomics and libatomic_ops

This shouldn't be here, since you no longer select libatomic_ops.

>  	help
>  	  Erlang is a programming language used to build massively scalable
>  	  soft real-time systems with requirements on high availability.
> @@ -20,6 +19,13 @@ config BR2_PACKAGE_ERLANG
>  
>  if BR2_PACKAGE_ERLANG
>  
> +config BR2_PACKAGE_ERLANG_USE_LIBATOMIC_OPS

We rarely use _USE_ in Config.in options for such cases. Just
BR2_PACKAGE_ERLANG_LIBATOMIC_OPS is enough.

> +	bool "use libatomic_ops"
> +	select BR2_PACKAGE_LIBATOMIC_OPS

This is where you should have the
"depends on BR2_PACKAGE_LIBATOMIC_ARCH_SUPPORTS".

> +	help
> +	  Erlang's native atomic ops implementation is preferred. If this is
> +	  insufficient, enabling this option forces Erlang to use libatomic_ops.

Lines too long I believe.

> +
>  config BR2_PACKAGE_ERLANG_SMP
>  	bool "enable SMP support"
>  	help
> diff --git a/package/erlang/erlang.mk b/package/erlang/erlang.mk
> index dfab30d..a2f75e7 100644
> --- a/package/erlang/erlang.mk
> +++ b/package/erlang/erlang.mk
> @@ -30,8 +30,10 @@ ERLANG_CONF_ENV += erl_xcomp_sysroot=$(STAGING_DIR)
>  
>  ERLANG_CONF_OPTS = --without-javac
>  
> +ifeq ($(BR2_PACKAGE_ERLANG_USE_LIBATOMIC_OPS),y)
>  ERLANG_DEPENDENCIES += libatomic_ops
>  ERLANG_CONF_OPTS += --with-libatomic_ops=$(STAGING_DIR)/usr LIBS=-latomic_ops
> +endif

Can you add a "else" clause to explicitly disable libatomic_ops
support? Otherwise, libatomic_ops may be enabled in the Buildroot
configuration, built before erlang, and detected automatically by
erlang configure script.

Thanks,

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

  reply	other threads:[~2016-01-23  8:25 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-23  1:10 [Buildroot] [PATCH 00/18] Erlang 18 and native atomic ops Frank Hunleth
2016-01-23  1:10 ` [Buildroot] [PATCH 01/18] erlang: bump to version 18.2.1 Frank Hunleth
2016-02-01 20:47   ` Romain Naour
2016-01-23  1:10 ` [Buildroot] [PATCH 02/18] pkg-rebar.mk: pass C++ compiler path and options Frank Hunleth
2016-01-23  1:10 ` [Buildroot] [PATCH 03/18] erlang-goldrush: bump to version 0.1.8 Frank Hunleth
2016-01-23  1:10 ` [Buildroot] [PATCH 04/18] erlang-lager: bump to version 2.2.0 Frank Hunleth
2016-01-23  1:10 ` [Buildroot] [PATCH 05/18] erlang-rebar: bump to version 2.6.1 Frank Hunleth
2016-01-23  1:10 ` [Buildroot] [PATCH 06/18] erlang-fast_tls: new package Frank Hunleth
2016-01-23  8:20   ` Thomas Petazzoni
2016-02-01 20:38     ` Romain Naour
2016-01-23  1:11 ` [Buildroot] [PATCH 07/18] erlang-p1-cache-tab: bump to version 1.0.1 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 08/18] erlang-p1-iconv: bump to version 0.9.0 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 09/18] erlang-p1-stringprep: bump to version 1.0.0 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 10/18] erlang-p1_stun: bump to version 0.9.0 Frank Hunleth
2016-01-23  8:21   ` Thomas Petazzoni
2016-01-23  1:11 ` [Buildroot] [PATCH 11/18] erlang-p1-sip: bump to version 1.0.0 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 12/18] erlang-p1-tls: " Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 13/18] erlang-p1-utils: bump to version 1.0.3 Frank Hunleth
2016-02-01 21:04   ` Romain Naour
2016-01-23  1:11 ` [Buildroot] [PATCH 14/18] erlang-p1-xml: bump to version 1.1.1 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 15/18] erlang-p1-yaml: bump to version 1.0.0 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 16/18] erlang-p1-zlib: " Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 17/18] ejabberd: bump to version 16.01 Frank Hunleth
2016-01-23  1:11 ` [Buildroot] [PATCH 18/18] erlang: make libatomic_ops optional Frank Hunleth
2016-01-23  8:25   ` Thomas Petazzoni [this message]
2016-01-26  0:43     ` Frank Hunleth
2016-02-01 21:55       ` Thomas Petazzoni
2016-02-02 19:57   ` [Buildroot] [PATCH v2 00/18] Erlang 18 and native atomic ops Frank Hunleth
2016-02-02 19:57     ` [Buildroot] [PATCH v2 01/18] erlang: bump to version 18.2.1 Frank Hunleth
2016-02-06 22:28       ` Romain Naour
2016-02-20 18:22       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 02/18] pkg-rebar.mk: pass C++ compiler path and options Frank Hunleth
2016-02-06 22:34       ` Romain Naour
2016-02-09  1:45         ` Frank Hunleth
2016-02-20 18:23       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 03/18] erlang-goldrush: bump to version 0.1.8 Frank Hunleth
2016-02-06 22:35       ` Romain Naour
2016-02-20 18:23       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 04/18] erlang-lager: bump to version 2.2.0 Frank Hunleth
2016-02-06 22:36       ` Romain Naour
2016-02-20 18:24       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 05/18] erlang-rebar: bump to version 2.6.1 Frank Hunleth
2016-02-06 22:39       ` Romain Naour
2016-02-09  1:58         ` Frank Hunleth
2016-02-20 17:37         ` Thomas Petazzoni
2016-02-20 18:08           ` Yann E. MORIN
2016-02-20 23:05             ` Arnout Vandecappelle
2016-02-20 23:19               ` Yann E. MORIN
2016-02-21  0:02                 ` Arnout Vandecappelle
2016-02-21  8:37                   ` Peter Korsgaard
2016-02-20 18:24       ` Thomas Petazzoni
2016-02-20 18:31         ` Frank Hunleth
2016-02-20 22:54           ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 06/18] erlang-fast_tls: new package Frank Hunleth
2016-02-06 22:42       ` Romain Naour
2016-02-20 18:25       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 07/18] erlang-p1-cache-tab: bump to version 1.0.1 Frank Hunleth
2016-02-06 22:43       ` Romain Naour
2016-02-20 18:26       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 08/18] erlang-p1-iconv: bump to version 0.9.0 Frank Hunleth
2016-02-06 22:45       ` Romain Naour
2016-02-20 18:26       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 09/18] erlang-p1-stringprep: bump to version 1.0.0 Frank Hunleth
2016-02-06 22:47       ` Romain Naour
2016-02-20 22:28       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 10/18] erlang-p1_stun: bump to version 0.9.0 Frank Hunleth
2016-02-06 22:52       ` Romain Naour
2016-02-09  2:23         ` Frank Hunleth
2016-02-20 22:30       ` Thomas Petazzoni
2016-02-20 23:09         ` Frank Hunleth
2016-02-20 23:12           ` Thomas Petazzoni
2016-02-21 22:16             ` Frank Hunleth
2016-02-02 19:57     ` [Buildroot] [PATCH v2 11/18] erlang-p1-sip: bump to version 1.0.0 Frank Hunleth
2016-02-06 22:58       ` Romain Naour
2016-02-20 22:31       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 12/18] erlang-p1-tls: " Frank Hunleth
2016-02-06 23:01       ` Romain Naour
2016-02-20 22:31       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 13/18] erlang-p1-utils: bump to version 1.0.3 Frank Hunleth
2016-02-06 23:02       ` Romain Naour
2016-02-20 22:34       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 14/18] erlang-p1-xml: bump to version 1.1.1 Frank Hunleth
2016-02-06 23:07       ` Romain Naour
2016-02-20 22:35       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 15/18] erlang-p1-yaml: bump to version 1.0.0 Frank Hunleth
2016-02-06 23:10       ` Romain Naour
2016-02-20 22:35       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 16/18] erlang-p1-zlib: " Frank Hunleth
2016-02-06 23:13       ` Romain Naour
2016-02-20 22:52       ` Thomas Petazzoni
2016-02-02 19:57     ` [Buildroot] [PATCH v2 17/18] ejabberd: bump to version 16.01 Frank Hunleth
2016-02-06 23:24       ` Romain Naour
2016-02-02 19:57     ` [Buildroot] [PATCH v2 18/18] erlang: support choosing atomic ops Frank Hunleth
2016-02-07 12:49       ` Romain Naour
2016-02-07 13:15         ` 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=20160123092549.2c47f3b5@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --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