[uclibc-ng-devel] [PATCH] arm: simplify handling of Thumb related options

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Sun Mar 20 20:32:44 UTC 2016


Hello,

On Sun, 20 Mar 2016 14:36:05 -0400, Rich Felker wrote:

> > If you mean (1), then before my patch, the ldrex/strex code was only
> > enabled when USE_LDREXSTREX was enabled, and this option had a "depends
> > on COMPILE_IN_THUMB". Hence my patch doesn't change the fact that
> > the ldrex/strex logic is only used on Thumb. Whether it can/should be
> > enabled in non-Thumb configurations is a separate matter from what my
> > patch is doing.
> 
> OK, then the logic was wrong before, too. :-)

Right, but my patch is not making it worse than it was.

> > If you mean (2), then there is indeed a problem. Though, according to
> > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/14979.html,
> > "On a v6 or later core (ARM11 onwards) you should use the LDREX/STREX
> > instructions instead", which would suggest that such instructions are
> > available.
> 
> Indeed, and it's further complicated by the fact that none of these
> instructions are proper memory barriers so they're basically useless
> without a separate barrier instruction, which does not exist on
> pre-v6, and on v6, only as a coprocessor operation that's not
> available in thumb1 or on uc models. Not until v7 did arm have proper
> working atomics. :(

Sure. But here as well, my patch is not making things worse I believe.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


More information about the uClibc mailing list