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