File pth_sched.patch of Package pth

# From http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=208583
# Fixes (bnc#413646)
diff -Naur pth-2.0.0.orig/pth_sched.c pth-2.0.0/pth_sched.c
--- pth-2.0.0.orig/pth_sched.c	2003-01-01 08:45:06.000000000 -0700
+++ pth-2.0.0/pth_sched.c	2004-01-27 12:51:59.000000000 -0700
@@ -290,8 +290,15 @@
         /*
          * Check for stack overflow
          */
+#ifndef __ia64__
         if (pth_current->stackguard != NULL) {
             if (*pth_current->stackguard != 0xDEAD) {
+#else
+	      /* On ia64 the stack grows down but the bottom part is used for register
+	       * backing store which grows up. So we check for a meet in the middle
+	       */
+		if (pth_current->mctx.uc.uc_mcontext.sc_gr[12] <= pth_current->mctx.uc.uc_mcontext.sc_ar_bsp) {
+#endif
                 pth_debug3("pth_scheduler: stack overflow detected for thread 0x%lx (\"%s\")",
                            (unsigned long)pth_current, pth_current->name);
                 /*
@@ -317,7 +324,9 @@
                 pth_current->state = PTH_STATE_DEAD;
                 kill(getpid(), SIGSEGV);
             }
+#ifndef __ia64__
         }
+#endif
 
         /*
          * If previous thread is now marked as dead, kick it out
openSUSE Build Service is sponsored by