On Mon, 7 Nov 2011, Andrew MacLeod wrote:

> Actually, this target has no lock free support whatsoever?  ie, no
> compare_and_swap instruction, nor an implementation of sync_lock_test_and_set
> and sync_lock_release?
> 
> I think the libstdc++ standard now requires the class atomic_flag to be lock
> free in order to conform (n3242 29.7.2)
> 
> So I guess this is the situation which all the atomic tests are not even
> suppose to be run since they aren't supported.  My guess is that in the
> previous releases the c++ header files probably provided a locked
> implementation of test_and_set, and so the tests would run.

For bare-metal targets there should maybe be an option to presume there is 
just one thread and map all atomic operations to dumb non-atomic versions, 
which is perfectly valid in such a case.  But that's a new feature; we 
didn't have it for __sync_* either.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to