<div dir="ltr">/The target pattern in the commit message doesn't look right.<div>It should be *-*-rtems* I think.</div><div><br></div><div>Do all BSPs for m68k build with C++ enabled?</div><div><br></div><div>What code is used for atomic operations on say a 68000 or</div><div>68020?</div><div><br></div><div>Thanks.</div><div><br></div><div>--joel</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 22, 2016 at 3:47 AM, Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">v2: Fix shell script part since shell grouping is expressed by { }.<br>
<span class=""><br>
libstdc++-v3/<br>
        * config/cpu/m68k/atomicity.h: Adjust comment.<br>
        * acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_<wbr>BUILTINS): Honor<br>
        explicit atomicity_dir setup via configure.host.<br>
        * configure.host (rtems-*): Set atomicity_dir.<br>
        * configure: Regenerate.<br>
---<br>
 libstdc++-v3/acinclude.m4                |  5 +++--<br>
 libstdc++-v3/config/cpu/m68k/<wbr>atomicity.h |  3 +++<br>
 libstdc++-v3/configure                   | 11 ++++++-----<br>
 libstdc++-v3/configure.host              |  4 ++++<br>
 4 files changed, 16 insertions(+), 7 deletions(-)<br>
<br>
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4<br>
</span>index 6d897be..d7db435 100644<br>
<span class="">--- a/libstdc++-v3/acinclude.m4<br>
+++ b/libstdc++-v3/acinclude.m4<br>
@@ -3490,9 +3490,10 @@ EOF<br>
   AC_LANG_RESTORE<br>
<br>
   # Set atomicity_dir to builtins if all but the long long test above passes.<br>
-  if test "$glibcxx_cv_atomic_bool" = yes \<br>
</span>+  if { test "$glibcxx_cv_atomic_bool" = yes \<br>
<span class="">      && test "$glibcxx_cv_atomic_short" = yes \<br>
-     && test "$glibcxx_cv_atomic_int" = yes; then<br>
</span>+     && test "$glibcxx_cv_atomic_int" = yes } \<br>
<span class="">+     || test "$atomicity_dir" = "cpu/generic/atomicity_<wbr>builtins"; then<br>
     AC_DEFINE(_GLIBCXX_ATOMIC_<wbr>BUILTINS, 1,<br>
     [Define if the compiler supports C++11 atomics.])<br>
     atomicity_dir=cpu/generic/<wbr>atomicity_builtins<br>
diff --git a/libstdc++-v3/config/cpu/<wbr>m68k/atomicity.h b/libstdc++-v3/config/cpu/<wbr>m68k/atomicity.h<br>
index f421330..a9ddc6b 100644<br>
--- a/libstdc++-v3/config/cpu/<wbr>m68k/atomicity.h<br>
+++ b/libstdc++-v3/config/cpu/<wbr>m68k/atomicity.h<br>
@@ -48,6 +48,9 @@ _GLIBCXX_BEGIN_NAMESPACE_<wbr>VERSION<br>
   }<br>
<br>
 #elif defined(__rtems__)<br>
+  // This code is only provided for reference.  RTEMS uses now the atomic<br>
+  // builtins and libatomic.  See configure.host.<br>
+  //<br>
   // TAS/JBNE is unsafe on systems with strict priority-based scheduling.<br>
   // Disable interrupts, which we can do only from supervisor mode.<br>
   _Atomic_word<br>
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure<br>
</span>index 6332c4d..d09a7e0 100755<br>
<span class="">--- a/libstdc++-v3/configure<br>
+++ b/libstdc++-v3/configure<br>
@@ -15539,9 +15539,10 @@ ac_compiler_gnu=$ac_cv_c_<wbr>compiler_gnu<br>
<br>
<br>
   # Set atomicity_dir to builtins if all but the long long test above passes.<br>
-  if test "$glibcxx_cv_atomic_bool" = yes \<br>
</span>+  if { test "$glibcxx_cv_atomic_bool" = yes \<br>
<span class="">      && test "$glibcxx_cv_atomic_short" = yes \<br>
-     && test "$glibcxx_cv_atomic_int" = yes; then<br>
</span>+     && test "$glibcxx_cv_atomic_int" = yes } \<br>
<div class="HOEnZb"><div class="h5">+     || test "$atomicity_dir" = "cpu/generic/atomicity_<wbr>builtins"; then<br>
<br>
 $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS 1" >>confdefs.h<br>
<br>
@@ -15573,7 +15574,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu<br>
   # unnecessary for this test.<br>
<br>
     cat > conftest.$ac_ext << EOF<br>
-#line 15576 "configure"<br>
+#line 15577 "configure"<br>
 int main()<br>
 {<br>
   _Decimal32 d1;<br>
@@ -15615,7 +15616,7 @@ ac_compiler_gnu=$ac_cv_cxx_<wbr>compiler_gnu<br>
   # unnecessary for this test.<br>
<br>
     cat > conftest.$ac_ext << EOF<br>
-#line 15618 "configure"<br>
+#line 15619 "configure"<br>
 template<typename T1, typename T2><br>
   struct same<br>
   { typedef T2 type; };<br>
@@ -15649,7 +15650,7 @@ $as_echo "$enable_int128" >&6; }<br>
     rm -f conftest*<br>
<br>
     cat > conftest.$ac_ext << EOF<br>
-#line 15652 "configure"<br>
+#line 15653 "configure"<br>
 template<typename T1, typename T2><br>
   struct same<br>
   { typedef T2 type; };<br>
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host<br>
index c0cc3ee..eb56ab1 100644<br>
--- a/libstdc++-v3/configure.host<br>
+++ b/libstdc++-v3/configure.host<br>
@@ -296,6 +296,10 @@ case "${host_os}" in<br>
     os_include_dir="os/qnx/qnx6.1"<br>
     c_model=c<br>
     ;;<br>
+  rtems*)<br>
+    # Use libatomic if necessary and avoid libstdc++ specific atomicity support<br>
+    atomicity_dir="cpu/generic/<wbr>atomicity_builtins"<br>
+    ;;<br>
   solaris2)<br>
     # This too-vague configuration does not provide enough information<br>
     # to select a ctype include, and thus os_include_dir is a crap shoot.<br>
--<br>
1.8.4.5<br>
<br>
______________________________<wbr>_________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/<wbr>mailman/listinfo/devel</a><br>
</div></div></blockquote></div><br></div>