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 v2 1/9] toolchain: Add config option for atomic intrinsics
Date: Thu, 31 Jul 2014 19:25:20 +0200	[thread overview]
Message-ID: <20140731172520.GD3960@free.fr> (raw)
In-Reply-To: <1406813090-32472-1-git-send-email-Anton.Kolesov@synopsys.com>

Anton, All,

On 2014-07-31 17:24 +0400, Anton Kolesov spake thusly:
> GCC has several builtin functions that implement atomic operations. Those
> functions are architecture specific and may not be implemented by the
> specific toolchain. In case of GCC for ARC those functions rely on
> LLOCK/SCOND instructions which are optional in ARC CPU's. If ARC CPU doesn't
> support those instructions but software tries to use them, then application
> will be aborted 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.

I think what Thomas and I discussed, was to have a patch series that
does the following changes:

   1- introduce BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS;
   2- have all current architectures, that have atomics, select that new
      symbol (note: i386 does not, i486 and above have, for example);
   3- convert packages (one patch par package) to depend on it;
   4- introduce BR2_ARC_ATOMIC_EXT that selects it, too.

This is more logical: you first add a new option, and then you gradually
start using it, until finally you airrive to what you eventually wanted.

Regards,
Yann E. MORIN.

> Signed-off-by: Anton Kolesov <Anton.Kolesov@synopsys.com>
> ---
>  arch/Config.in.arc            | 5 +++++
>  package/Makefile.in           | 4 ++++
>  toolchain/toolchain-common.in | 4 ++++
>  3 files changed, 13 insertions(+)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc
> index 60b59f0..836cfef 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -1,3 +1,8 @@
> +# Choise of atomic instructions presence
> +config BR2_ARC_ATOMIC_EXT
> +	bool "Atomic extension (LLOCK/SCOND instructions)"
> +	select BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +
>  config BR2_ARCH
>  	default "arc"	if BR2_arcle
>  	default "arceb"	if BR2_arceb
> diff --git a/package/Makefile.in b/package/Makefile.in
> index 02f6e3d..106a04c 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)
>  
> diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
> index 13de9e5..f9cb7cf 100644
> --- a/toolchain/toolchain-common.in
> +++ b/toolchain/toolchain-common.in
> @@ -44,6 +44,10 @@ config BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
>  config BR2_TOOLCHAIN_HAS_SSP
>  	bool
>  
> +config BR2_TOOLCHAIN_HAS_ATOMIC_INTRINSICS
> +	bool
> +	default y if !BR2_arc
> +
>  config BR2_ENABLE_LOCALE_PURGE
>  	bool "Purge unwanted locales"
>  	help
> -- 
> 1.8.4.1
> 
> _______________________________________________
> 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.  |
'------------------------------^-------^------------------^--------------------'

  parent reply	other threads:[~2014-07-31 17:25 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 ` [Buildroot] [PATCH 1/9] arc: Support option of atomic extension Thomas Petazzoni
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     ` Yann E. MORIN [this message]
2014-07-31 18:05       ` [Buildroot] [PATCH v2 1/9] toolchain: Add config option for " 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=20140731172520.GD3960@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