[PATCH] [RTEMS] Always use atomic builtins for libstdc++
Jonathan Wakely
jwakely@redhat.com
Thu Sep 22 10:55:00 GMT 2016
On 22/09/16 11:28 +0100, Jonathan Wakely wrote:
>On 22/09/16 10:49 +0200, Sebastian Huber wrote:
>>
>>
>>On 22/09/16 10:47, Jonathan Wakely wrote:
>>>On 22/09/16 09:41 +0200, Sebastian Huber wrote:
>>>>libstdc++-v3/
>>>> * config/cpu/m68k/atomicity.h: Adjust comment.
>>>> * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Honor
>>>> explicit atomicity_dir setup via configure.host.
>>>> * configure.host (rtems-*): Set atomicity_dir.
>>>> * configure: Regenerate.
>>>>---
>>>>libstdc++-v3/acinclude.m4 | 5 +++--
>>>>libstdc++-v3/config/cpu/m68k/atomicity.h | 3 +++
>>>>libstdc++-v3/configure | 11 ++++++-----
>>>>libstdc++-v3/configure.host | 4 ++++
>>>>4 files changed, 16 insertions(+), 7 deletions(-)
>>>>
>>>>diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
>>>>index 6d897be..3256ce4 100644
>>>>--- a/libstdc++-v3/acinclude.m4
>>>>+++ b/libstdc++-v3/acinclude.m4
>>>>@@ -3490,9 +3490,10 @@ EOF
>>>> AC_LANG_RESTORE
>>>>
>>>> # Set atomicity_dir to builtins if all but the long long test
>>>>above passes.
>>>>- if test "$glibcxx_cv_atomic_bool" = yes \
>>>>+ if ( test "$glibcxx_cv_atomic_bool" = yes \
>>>> && test "$glibcxx_cv_atomic_short" = yes \
>>>>- && test "$glibcxx_cv_atomic_int" = yes; then
>>>>+ && test "$glibcxx_cv_atomic_int" = yes ) \
>>>>+ || test "$atomicity_dir" = "cpu/generic/atomicity_builtins"; then
>>>
>>>Could you adjust the comment too please? Maybe something like:
>>>
>>> # Set atomicity_dir to builtins if all but the long long test
>>>above passes,
>>> # or if the builtins were already chosen (e.g. by configure.host).
>>>
>>>OK with an adjusted comment, thanks.
>>>
>>>
>>
>>Thanks for the quick review. I would like to back port this to GCC 6.
>
>No objection from me, as the common part won't affect other targets.
>So if you're confident doing so as RTEMS maintainer then go ahead.
N.B. if you're going to require libatomic for RTEMS then you should
check if the preprocessor conditions in libsupc++/exception_ptr.h
and libsupc++/eh_ptr.cc are appropriate. If exception_ptr is not
currently enabled for RTEMS then you could enable it, since libatomic
will ensure the required atomics are available.
More information about the Libstdc++
mailing list