]> Savannah Git Hosting - gnulib.git/commitdiff
sigsegv: Fix compilation error on Mac OS X 10.4/powerpc.
authorBruno Haible <bruno@clisp.org>
Mon, 28 Apr 2025 15:47:37 +0000 (17:47 +0200)
committerBruno Haible <bruno@clisp.org>
Mon, 28 Apr 2025 15:47:37 +0000 (17:47 +0200)
Patch by Evan Miller <emmiller@gmail.com> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-08/msg00153.html>.

* lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER) [macOS/powerpc: On Mac OS X
<= 10.4, assume struct field names without underscores.

ChangeLog
lib/sigsegv.c

index 04a7c7e0235c8376cffa606e60689116c4996118..bd50776c9f84632ecc8919442433d6e3e2892eb9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2025-04-28  Bruno Haible  <bruno@clisp.org>
+
+       sigsegv: Fix compilation error on Mac OS X 10.4/powerpc.
+       Patch by Evan Miller <emmiller@gmail.com> in
+       <https://lists.gnu.org/archive/html/bug-gnulib/2021-08/msg00153.html>.
+       * lib/sigsegv.c (SIGSEGV_FAULT_STACKPOINTER) [macOS/powerpc: On Mac OS X
+       <= 10.4, assume struct field names without underscores.
+
 2025-04-28  Bruno Haible  <bruno@clisp.org>
 
        threadlib: Avoid multi-dimensional pattern matching.
index d0519814ebf228b0cc1f306b45e8c7c8f3469d7c..6d089990753b381e90e8506e95e8c1dba2ddcf08 100644 (file)
@@ -684,7 +684,12 @@ int libsigsegv_version = LIBSIGSEGV_VERSION;
      - 'ucontext_t' and 'struct __darwin_ucontext' in <sys/_structs.h>,
      - 'struct __darwin_mcontext' in <ppc/_structs.h>, and
      - 'struct __darwin_ppc_thread_state' in <mach/ppc/_structs.h>.  */
-#  define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext->__ss.__r1
+#  if !(defined _STRUCT_MCONTEXT || defined _STRUCT_MCONTEXT32 || defined _STRUCT_MCONTEXT64)
+/* Mac OS X 10.4 and earlier omitted the underscores.  */
+#   define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext->ss.r1
+#  else
+#   define SIGSEGV_FAULT_STACKPOINTER  ((ucontext_t *) ucp)->uc_mcontext->__ss.__r1
+#  endif
 
 # endif