[Buildroot] [PATCH v2 00/17] Rework atomic handling
Thomas Petazzoni
thomas.petazzoni at free-electrons.com
Mon Feb 1 15:19:26 UTC 2016
Jan,
On Mon, 1 Feb 2016 14:47:30 +0100, Jan Viktorin wrote:
> recently, I was doing some tests on MicroBlaze and discovered that I
> am missing the atomic operations there. Then I could see this patch
> series. Thanks for that, however, I have still issues with this.
Ah, so you're doing some Microblaze stuff? If so, some help would
definitely be welcome to maintain this platform.
> The libatomic_ops claims to not support MicroBlaze in its Config.in.
Right.
> So it is not possible to use either __sync_* ones nor __atomic_* ones.
This has nothing to do with libatomic_ops or not.
__sync and __atomic built-ins are provided by gcc, the compiler.
They are completely orthogonal to libatomic_ops. Programs/libraries
using __sync* or __atomic* functions do not need libatomic_ops.
> Even if I change this and enable it for BR2_microblaze, I am unable to
> compile the libatomic_ops properly (with the Buildroot toolchain 4.9.x).
There is no support for Microblaze in libatomic_ops, so this is not
surprising. See src/atomic_ops/sysdeps/gcc/ in the libatomic_ops
sources.
Maybe with generic.h / generic-small.h, libatomic_ops can rely on the
__sync or __atomic built-ins, but I haven't tried this possibility.
> Moreover, I've read somewhere that the new GCC connects the __sync_*
> interface to the __atomic_* interface internally. Is it true?
I don't know how things are implemented internally in gcc.
> Is this done by the libatomic_ops library? I am confused by this
> situation... I made some wrappers doing the __sync_* to __atomic_*
> translation but still with no success.
Are you use you are not confusing libatomic_ops and libatomic ?
libatomic_ops is a separate project, which has nothing to do with gcc.
libatomic is a library part of gcc, which exists since gcc 4.7, and
provided as part of the gcc runtime on the target.
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the buildroot
mailing list