Переглянути джерело

HAVE_SA_RESTORER is supposed to be true, not false, on most arches.
-Erik

Eric Andersen 23 роки тому
батько
коміт
f3aece684d
1 змінених файлів з 23 додано та 10 видалено
  1. 23 10
      libc/signal/sigaction.c

+ 23 - 10
libc/signal/sigaction.c

@@ -28,7 +28,22 @@
 #define HAVE_SA_RESTORER
 
 
-#if defined(__hppa__)
+#if defined(__alpha__)
+#undef HAVE_SA_RESTORER
+/* This is the sigaction struction from the Linux 2.1.20 kernel.  */
+struct old_kernel_sigaction {
+    __sighandler_t k_sa_handler;
+    unsigned long sa_mask;
+    unsigned int sa_flags;
+};
+/* This is the sigaction structure from the Linux 2.1.68 kernel.  */
+struct kernel_sigaction {
+    __sighandler_t k_sa_handler;
+    unsigned int sa_flags;
+    sigset_t sa_mask;
+};
+#elif defined(__hppa__)
+/* We do not support SA_RESTORER on hppa. */
 #undef HAVE_SA_RESTORER
 /* This is the sigaction struction from the Linux 2.1.20 kernel.  */
 /* Blah.  This is bogus.  We don't ever use it. */
@@ -37,7 +52,6 @@ struct old_kernel_sigaction {
     unsigned long sa_mask;
     unsigned long sa_flags;
 };
-
 /* This is the sigaction structure from the Linux 2.1.68 kernel.  */
 struct kernel_sigaction {
     __sighandler_t k_sa_handler;
@@ -79,20 +93,19 @@ struct kernel_sigaction {
     int             s_resv[1]; /* reserved */
 };
 #else
-
-#undef HAVE_SA_RESTORER
-/* This is the sigaction struction from the Linux 2.1.20 kernel.  */
+/* This is the sigaction structure from the Linux 2.1.20 kernel.  */
 struct old_kernel_sigaction {
     __sighandler_t k_sa_handler;
     unsigned long sa_mask;
-    unsigned int sa_flags;
-};
-
+    unsigned long sa_flags;
+    void (*sa_restorer) (void);
+};      
+        
 /* This is the sigaction structure from the Linux 2.1.68 kernel.  */
-
 struct kernel_sigaction {
     __sighandler_t k_sa_handler;
-    unsigned int sa_flags;
+    unsigned long sa_flags;
+    void (*sa_restorer) (void);
     sigset_t sa_mask;
 };
 #endif