[Buildroot] [PATCH] openpgm: Blacklist Blackfin ADI 2014R1 toolchain
thomas.petazzoni at free-electrons.com
Fri Mar 13 06:25:24 UTC 2015
Dear Romain Naour,
On Thu, 12 Mar 2015 22:47:54 +0100, Romain Naour wrote:
> Yann said in the commit log:
> "The fact that atomic operations are available is not really a
> specificity of the toolchain, but rather of the architecture."
That is correct, but you could imagine, on an architecture that does
have atomic operations, a compiler version that does not implement the
corresponding compiler intrinsics.
Back then, we decided to not support such situations, because it was
making the handling of this atomic operation support too complicated.
> >> config BR2_ARCH_HAS_ATOMICS
> >> # The following toolchains lack required compiler intrinsics
> >> depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2014R1
> >> depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2013R1
> >> depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2
> >> default y
> > Nope. We first need to find out whether the Blackfin architecture has
> > what's needed to provide atomic intrinsics. Depending on that, we'll
> > now if it's a toolchain limitation or not.
> I'm not sure but blackfin seems to have some (one?) atomic instruction(s):
> "The processor provides a single atomic operation: TESTSET"
> "The Blackfin does not have an atomic 64 bit load/store instruction"
What we need to check is if more recent versions of gcc on Blackfin do
have the atomic intrinsics available. If not, when we can simply decide
to set BR2_ARCH_HAS_ATOMICS to false on Blackfin. If however some more
recent gcc versions for Blackfin do have those instructions, then we
will have to handle a toolchain-level criteria to decide whether atomic
operations are available or not.
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
More information about the buildroot