All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] toolchain: Enable Glibc for all little-endian ARCs with atomic ops
@ 2018-11-09 14:00 Alexey Brodkin
  2018-11-09 16:32 ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Alexey Brodkin @ 2018-11-09 14:00 UTC (permalink / raw)
  To: buildroot

Initially we had a port only for ARCv2 cores but
then with a simple change ARCompact cores got supported as well.

So we generalize from BR2_archs to BR2_arcle as we haven't tried
to get glibc working on big-endian ARCs yet.

Also we never bothered to check avaialbility of atomic
instructions in the core but in case of Glibc for ARC this is
really a must, so we add this check here.

Note in case of uClibc we may have system w/o HW atomics but:
 1. Only single-core systems are allowed
 2. Atomic instructions are emulated via arc_usr_cmpxchg syscall

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Cc: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
---
 toolchain/toolchain-buildroot/Config.in | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
index 7d9428c70ed0..8d6997e7790b 100644
--- a/toolchain/toolchain-buildroot/Config.in
+++ b/toolchain/toolchain-buildroot/Config.in
@@ -48,7 +48,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
 		   BR2_riscv       || BR2_sh         || BR2_sparc64     || \
 		   BR2_x86_64      || BR2_microblaze || BR2_nios2       || \
-		   BR2_archs38
+		   BR2_arcle
 	depends on BR2_USE_MMU
 	depends on !BR2_STATIC_LIBS
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
@@ -56,6 +56,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
 	depends on !BR2_powerpc_SPE
 	depends on BR2_RISCV_ISA_RVA || !BR2_riscv
+	depends on BR2_ARC_ATOMIC_EXT || !BR2_arc
 	select BR2_TOOLCHAIN_USES_GLIBC
 	# our glibc.mk enables RPC support
 	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-- 
2.19.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] toolchain: Enable Glibc for all little-endian ARCs with atomic ops
  2018-11-09 14:00 [Buildroot] [PATCH] toolchain: Enable Glibc for all little-endian ARCs with atomic ops Alexey Brodkin
@ 2018-11-09 16:32 ` Thomas Petazzoni
  2018-11-09 16:34   ` Alexey Brodkin
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2018-11-09 16:32 UTC (permalink / raw)
  To: buildroot

Hello,

On Fri,  9 Nov 2018 17:00:23 +0300, Alexey Brodkin wrote:

> diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
> index 7d9428c70ed0..8d6997e7790b 100644
> --- a/toolchain/toolchain-buildroot/Config.in
> +++ b/toolchain/toolchain-buildroot/Config.in
> @@ -48,7 +48,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
>  		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
>  		   BR2_riscv       || BR2_sh         || BR2_sparc64     || \
>  		   BR2_x86_64      || BR2_microblaze || BR2_nios2       || \
> -		   BR2_archs38
> +		   BR2_arcle

What about:

		   (BR2_arcle && BR2_ARC_ATOMIC_EXT)

instead ?

>  	depends on BR2_USE_MMU
>  	depends on !BR2_STATIC_LIBS
>  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_2
> @@ -56,6 +56,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
>  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_5 || !BR2_MIPS_NAN_2008
>  	depends on !BR2_powerpc_SPE
>  	depends on BR2_RISCV_ISA_RVA || !BR2_riscv
> +	depends on BR2_ARC_ATOMIC_EXT || !BR2_arc

and drop this dependency ?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] toolchain: Enable Glibc for all little-endian ARCs with atomic ops
  2018-11-09 16:32 ` Thomas Petazzoni
@ 2018-11-09 16:34   ` Alexey Brodkin
  2018-11-09 16:40     ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Alexey Brodkin @ 2018-11-09 16:34 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Fri, 2018-11-09 at 17:32 +0100, Thomas Petazzoni wrote:
> Hello,
> 
> On Fri,  9 Nov 2018 17:00:23 +0300, Alexey Brodkin wrote:
> 
> > diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
> > index 7d9428c70ed0..8d6997e7790b 100644
> > --- a/toolchain/toolchain-buildroot/Config.in
> > +++ b/toolchain/toolchain-buildroot/Config.in
> > @@ -48,7 +48,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
> >  		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
> >  		   BR2_riscv       || BR2_sh         || BR2_sparc64     || \
> >  		   BR2_x86_64      || BR2_microblaze || BR2_nios2       || \
> > -		   BR2_archs38
> > +		   BR2_arcle
> 
> What about:
> 
> 		   (BR2_arcle && BR2_ARC_ATOMIC_EXT)
> 
> instead ?

Sure, but I didn't want to ruin the beauty of above construction
thus split in 2 parts.

If you're OK with (x & y) among other pure arch mentions
I may send a respin.

-Alexey

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH] toolchain: Enable Glibc for all little-endian ARCs with atomic ops
  2018-11-09 16:34   ` Alexey Brodkin
@ 2018-11-09 16:40     ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-11-09 16:40 UTC (permalink / raw)
  To: buildroot

Hello,

On Fri, 9 Nov 2018 16:34:50 +0000, Alexey Brodkin wrote:

> On Fri, 2018-11-09 at 17:32 +0100, Thomas Petazzoni wrote:
> > Hello,
> > 
> > On Fri,  9 Nov 2018 17:00:23 +0300, Alexey Brodkin wrote:
> >   
> > > diff --git a/toolchain/toolchain-buildroot/Config.in b/toolchain/toolchain-buildroot/Config.in
> > > index 7d9428c70ed0..8d6997e7790b 100644
> > > --- a/toolchain/toolchain-buildroot/Config.in
> > > +++ b/toolchain/toolchain-buildroot/Config.in
> > > @@ -48,7 +48,7 @@ config BR2_TOOLCHAIN_BUILDROOT_GLIBC
> > >  		   BR2_powerpc     || BR2_powerpc64  || BR2_powerpc64le || \
> > >  		   BR2_riscv       || BR2_sh         || BR2_sparc64     || \
> > >  		   BR2_x86_64      || BR2_microblaze || BR2_nios2       || \
> > > -		   BR2_archs38
> > > +		   BR2_arcle  
> > 
> > What about:
> > 
> > 		   (BR2_arcle && BR2_ARC_ATOMIC_EXT)
> > 
> > instead ?  
> 
> Sure, but I didn't want to ruin the beauty of above construction
> thus split in 2 parts.
> 
> If you're OK with (x & y) among other pure arch mentions
> I may send a respin.

If you truly want beauty (which is good!) then I think it would be best
to have in package/glibc/Config.in:

config BR2_PACKAGE_GLIBC_ARCH_SUPPORTS
	bool
	default y if ...
	default y if ...

and then use that in toolchain/toolchain-buildroot/Config.in. But that
requires doing the same for uclibc and musl to keep consistency :)

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-11-09 16:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-09 14:00 [Buildroot] [PATCH] toolchain: Enable Glibc for all little-endian ARCs with atomic ops Alexey Brodkin
2018-11-09 16:32 ` Thomas Petazzoni
2018-11-09 16:34   ` Alexey Brodkin
2018-11-09 16:40     ` Thomas Petazzoni

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.