redhat-81-support-again-20030319
authorDerrick Brashear <shadow@dementia.org>
Wed, 19 Mar 2003 22:20:56 +0000 (22:20 +0000)
committerDerrick Brashear <shadow@dementia.org>
Wed, 19 Mar 2003 22:20:56 +0000 (22:20 +0000)
once more. maybe this time they'll release something that looks like this

acconfig.h
acinclude.m4
src/afs/LINUX/osi_machdep.h
src/cf/linux-test4.m4

index d08eb22..d333c28 100644 (file)
@@ -47,6 +47,7 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
 #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM
 #undef STRUCT_TASK_STRUCT_HAS_PARENT
 #undef STRUCT_TASK_STRUCT_HAS_REAL_PARENT
+#undef STRUCT_TASK_STRUCT_HAS_SIGHAND
 #undef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
 #undef ssize_t
 
index c13b551..7688ce6 100644 (file)
@@ -169,6 +169,7 @@ case $system in
                 LINUX_RECALC_SIGPENDING_ARG_TYPE
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_PARENT
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_REAL_PARENT
+                LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND
                 LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
                 LINUX_WHICH_MODULES
                  if test "x$ac_cv_linux_config_modversions" = "xno"; then
@@ -254,6 +255,9 @@ case $system in
                 if test "x$ac_cv_linux_sched_struct_task_struct_has_sigmask_lock" = "xyes"; then 
                  AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK, 1, [define if your struct task_struct has sigmask_lock])
                 fi
+                if test "x$ac_cv_linux_sched_struct_task_struct_has_sighand" = "xyes"; then 
+                 AC_DEFINE(STRUCT_TASK_STRUCT_HAS_SIGHAND, 1, [define if your struct task_struct has sighand])
+                fi
                 :
                fi
                 ;;
index 031f4db..f26db09 100644 (file)
@@ -62,7 +62,11 @@ static inline int _has_pending_signals(sigset_t *signal, sigset_t *blocked)
 static inline void _recalc_sigpending_tsk(struct task_struct *t)
 {
     t->sigpending = PENDING(&t->pending, &t->blocked) ||
-        PENDING(&t->sig->shared_pending, &t->blocked);
+#ifdef STRUCT_TASK_STRUCT_HAS_SIG
+       PENDING(&t->sig->shared_pending, &t->blocked);
+#else
+        PENDING(&t->signal->shared_pending, &t->blocked);
+#endif
 }
 
 #define RECALC_SIGPENDING(X) _recalc_sigpending_tsk(X)
@@ -70,9 +74,12 @@ static inline void _recalc_sigpending_tsk(struct task_struct *t)
 #define RECALC_SIGPENDING(X) recalc_sigpending(X)
 #endif
  
-#ifdef STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK
+#if defined (STRUCT_TASK_STRUCT_HAS_SIGMASK_LOCK)
 #define SIG_LOCK(X) spin_lock_irq(&X->sigmask_lock)
 #define SIG_UNLOCK(X) spin_unlock_irq(&X->sigmask_lock)
+#elif defined (STRUCT_TASK_STRUCT_HAS_SIGHAND)
+#define SIG_LOCK(X) spin_lock_irq(&X->sighand->siglock)
+#define SIG_UNLOCK(X) spin_unlock_irq(&X->sighand->siglock)
 #else
 #define SIG_LOCK(X) spin_lock_irq(&X->sig->siglock)
 #define SIG_UNLOCK(X) spin_unlock_irq(&X->sig->siglock)
index ca3942d..b5df711 100644 (file)
@@ -312,3 +312,18 @@ ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=yes,
 ac_cv_linux_sched_struct_task_struct_has_sigmask_lock=no)])
 AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_sigmask_lock)
 CPPFLAGS="$save_CPPFLAGS"])
+
+AC_DEFUN(LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGHAND, [
+AC_MSG_CHECKING(for sighand in struct task_struct)
+save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="-I${LINUX_KERNEL_PATH}/include -D__KERNEL__ $CPPFLAGS"
+AC_CACHE_VAL(ac_cv_linux_sched_struct_task_struct_has_sighand,
+[
+AC_TRY_COMPILE(
+[#include <linux/sched.h>],
+[struct task_struct _tsk;
+printf("%d\n", _tsk.sighand);],
+ac_cv_linux_sched_struct_task_struct_has_sighand=yes,
+ac_cv_linux_sched_struct_task_struct_has_sighand=no)])
+AC_MSG_RESULT($ac_cv_linux_sched_struct_task_struct_has_sighand)
+CPPFLAGS="$save_CPPFLAGS"])