* [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.