From: "Joseph S. Myers"<joseph@codesourcery.com>
Date: Mon, 7 Nov 2011 17:24:04 +0100
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.