All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.