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

Rich Felker dalias at libc.org
Mon Mar 21 00:55:28 UTC 2016


On Sun, Mar 20, 2016 at 09:32:44PM +0100, Thomas Petazzoni wrote:
> 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.

Agreed. My only concern would be whether your patch makes it harder to
fix, but that's not my call to make.

Rich


More information about the uClibc mailing list