]> Savannah Git Hosting - gnulib.git/commitdiff
asyncsafe-spin, simple-atomic: Don't use -mcpu-v9 on NetBSD/sparc.
authorBruno Haible <bruno@clisp.org>
Wed, 24 May 2023 08:17:30 +0000 (10:17 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 4 Jun 2023 19:14:22 +0000 (21:14 +0200)
Reported by Brandon Applegate in
<https://lists.gnu.org/archive/html/bug-gettext/2023-05/msg00042.html>.

* lib/asyncsafe-spin.c: Limit the SPARC workaround to Solaris.
* lib/simple-atomic.c: Likewise.
* m4/sparcv8+.m4 (gl_SPARC_V8PLUS): Likewise.

ChangeLog
lib/asyncsafe-spin.c
lib/simple-atomic.c
m4/sparcv8+.m4

index b322e5c6d252719a25778a109d7ed4bf2c39f282..89fa22edf181b164543f618ba1ad136c5fe43149 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2023-05-24  Bruno Haible  <bruno@clisp.org>
+
+       asyncsafe-spin, simple-atomic: Don't use -mcpu-v9 on NetBSD/sparc.
+       Reported by Brandon Applegate in
+       <https://lists.gnu.org/archive/html/bug-gettext/2023-05/msg00042.html>.
+       * lib/asyncsafe-spin.c: Limit the SPARC workaround to Solaris.
+       * lib/simple-atomic.c: Likewise.
+       * m4/sparcv8+.m4 (gl_SPARC_V8PLUS): Likewise.
+
 2023-05-21  Bruno Haible  <bruno@clisp.org>
 
        ssize_t: Fix replacement on 64-bit Windows.
index 9964473828862720c3f97ee9c452a13a26cb582e..c4e7d711a1f182440d11bfba16dac934f04719e6 100644 (file)
@@ -134,11 +134,11 @@ do_unlock (asyncsafe_spinlock_t *lock)
 #   endif
 
 #  elif (((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) \
-          && !defined __sparc__ && !defined __ANDROID__) \
+          && !(defined __sun && defined __sparc__) && !defined __ANDROID__) \
          || __clang_major__ >= 3) \
         && !defined __ibmxl__
-/* Use GCC built-ins (available in GCC >= 4.1, except on SPARC, and
-   clang >= 3.0).
+/* Use GCC built-ins (available in GCC >= 4.1, except on Solaris/SPARC and
+   Android, and clang >= 3.0).
    Documentation:
    <https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html>  */
 
index eab87a3ec2fe8bac1e1a4dc98db593ab93bc8010..1f43bd771cbcae90b2a447ce17cd0ae81e104c18 100644 (file)
@@ -67,11 +67,11 @@ atomic_compare_and_swap_ptr (uintptr_t volatile *vp,
    require to link with -latomic.  */
 
 # if (((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) \
-       && !defined __sparc__ && !defined __ANDROID__) \
+       && !(defined __sun && defined __sparc__) && !defined __ANDROID__) \
       || __clang_major__ >= 3) \
      && !defined __ibmxl__
-/* Use GCC built-ins (available in GCC >= 4.1, except on SPARC, and
-   clang >= 3.0).
+/* Use GCC built-ins (available in GCC >= 4.1, except on Solaris/SPARC and
+   Android, and clang >= 3.0).
    Documentation:
    <https://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html>  */
 
index 584c39d3ba18be862f2567c1a5e9d8ca42c62fcd..efe5bcdf86a8bf052c1ba8a414ffddd2baea358e 100644 (file)
@@ -1,4 +1,4 @@
-# sparcv8+.m4 serial 1
+# sparcv8+.m4 serial 2
 dnl Copyright (C) 2020-2023 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -18,8 +18,8 @@ AC_DEFUN([gl_SPARC_V8PLUS],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
 
-  case "$host_cpu" in
-    sparc*)
+  case "$host" in
+    sparc*-*-solaris*)
       if test -n "$GCC"; then
         AC_CACHE_CHECK([whether SPARC v8+ instructions are supported],
           [gl_cv_sparc_v8plus],