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 1/9] arc: Support option of atomic extension
Date: Wed, 30 Jul 2014 08:45:48 +0200	[thread overview]
Message-ID: <20140730084548.05bd6dec@free-electrons.com> (raw)
In-Reply-To: <1406570528-31516-1-git-send-email-Anton.Kolesov@synopsys.com>

Dear Anton Kolesov,

On Mon, 28 Jul 2014 22:02:00 +0400, Anton Kolesov wrote:

> GCC has several builtin functions that implement atomic operations. In GCC
> for ARC those functions rely on LLOCK/SCOND instructions which are optional
> in ARC CPU's. If software uses those functions and as a result those
> instructions, it will be abort with Illegal instruction exception. To avoid
> confusion user should first specify that their CPU supports atomic
> extension, which will allow selection of packages that use builtin atomic
> functions.
> 
> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  arch/Config.in.arc  | 4 ++++
>  package/Makefile.in | 4 ++++
>  2 files changed, 8 insertions(+)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc
> index 60b59f0..9edcbd4 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -1,3 +1,7 @@
> +# Choise of atomic instructions presence
> +config BR2_ARC_ATOMIC_EXT
> +	bool "Atomic extension (LLOCK/SCOND instructions)"
> +
>  config BR2_ARCH
>  	default "arc"	if BR2_arcle
>  	default "arceb"	if BR2_arceb
> diff --git a/package/Makefile.in b/package/Makefile.in
> index fc55850..3d25d2a 100644
> --- a/package/Makefile.in
> +++ b/package/Makefile.in
> @@ -102,6 +102,10 @@ ifeq ($(BR2_xtensa),y)
>  TARGET_ABI += -mlongcalls -mtext-section-literals
>  endif
>  
> +ifeq ($(BR2_arc)$(BR2_ARC_ATOMIC_EXT),yy)
> +TARGET_ABI += -matomic
> +endif
> +
>  STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot
>  STAGING_DIR    = $(HOST_DIR)/$(STAGING_SUBDIR)

I think this is looking generally good, but after discussing with Yann,
I think we'd prefer to have a slightly more generic solution. First, a
hidden kconfig boolean that tells whether the compiler has the atomic
intrinsics:

config BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
	bool

and then architectures would "select" this hidden boolean whenever they
have the atomic intrinsics, and packages would use this hidden boolean
to create the dependencies.

What do you think about this? It's not a big change compared to what
you have done, it only pushes things to be a little bit more generic.

Thanks!

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

  parent reply	other threads:[~2014-07-30  6:45 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-28 18:02 [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 2/9] cairo: arc: Disable if ARC atomics are disabled Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 3/9] jack2: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 4/9] pulseaudio: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 5/9] libftdi: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 6/9] msgpack: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 7/9] icu: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 8/9] libtorrent: " Anton Kolesov
2014-07-28 18:02 ` [Buildroot] [PATCH 9/9] thrift: " Anton Kolesov
2014-07-30  6:45 ` Thomas Petazzoni [this message]
2014-07-31 13:24   ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for atomic intrinsics Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 2/9] cairo: Add dependency on " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 3/9] jack2: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 4/9] pulseaudio: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 5/9] libftdi: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 6/9] msgpack: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 7/9] icu: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 8/9] libtorrent: " Anton Kolesov
2014-07-31 13:24     ` [Buildroot] [PATCH v2 9/9] thrift: " Anton Kolesov
2014-07-31 17:25     ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for " Yann E. MORIN
2014-07-31 18:05       ` Thomas Petazzoni
2014-08-03  9:32     ` Thomas Petazzoni
2014-08-04 12:16       ` [Buildroot] [PATCH v3 1/4] cairo: Add dependency on " Anton Kolesov
2014-08-04 12:16         ` [Buildroot] [PATCH v3 2/4] pulseaudio: " Anton Kolesov
2014-08-04 12:16         ` [Buildroot] [PATCH v3 3/4] libftdi: " Anton Kolesov
2014-08-04 12:16         ` [Buildroot] [PATCH v3 4/4] msgpack: " Anton Kolesov
2014-08-07 15:42         ` [Buildroot] [PATCH v3 1/4] cairo: " Thomas De Schampheleire
2014-08-04 12:17       ` [Buildroot] [PATCH] manual: Add atomic intrinsics to the dependencies section Anton Kolesov
2014-08-15 20:40         ` Yann E. MORIN
2014-08-15 22:17         ` Thomas Petazzoni
2014-08-15 22:23           ` Yann E. MORIN
2014-08-16  7:40             ` Thomas Petazzoni
2014-08-16 15:26               ` Yann E. MORIN
     [not found] <In-Reply-To: <CAAXf6LURyGxEfQR+3g6xriwqUeE1E91Oav2X=r_C3YD66JzpEA@mail.gmail.com>
2014-08-08 15:09 ` [Buildroot] [PATCH v4 1/4] cairo: Add dependency on atomic intrinsics Anton Kolesov
2014-08-08 15:09   ` [Buildroot] [PATCH v4 2/4] pulseaudio: " Anton Kolesov
2014-08-15 20:54     ` Yann E. MORIN
2014-08-08 15:09   ` [Buildroot] [PATCH v4 3/4] libftdi: " Anton Kolesov
2014-08-15 20:58     ` Yann E. MORIN
2014-08-08 15:09   ` [Buildroot] [PATCH v4 4/4] msgpack: " Anton Kolesov
2014-08-15 21:04     ` Yann E. MORIN
2014-08-15 12:49   ` [Buildroot] [PATCH v4 1/4] cairo: " Anton Kolesov
2014-08-15 20:46   ` Yann E. MORIN

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=20140730084548.05bd6dec@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