HPUXMASTER = GLOBALCFLAGS="$(HPUXCFLAGS)" GLOBALLFLAGS="$(HPUXLFLAGS)" RANLIB="$(HPUXRANLIB)" CLIENTLIBS=-ltermcap
IRIX5RANLIB = echo
-IRIX5CFLAGS = -DSVR4 -DRel4 -DUCONTEXT -O3 -fullwarn -woff 835,709
+IRIX5CFLAGS = -DSVR4 -DRel4 -DUCONTEXT -DMAKECONTEXT_SP_HIGH -O3 -fullwarn -woff 835,709
IRIX5LFLAGS = -lnsl
IRIX5MASTER = GLOBALCFLAGS="$(IRIX5CFLAGS)" GLOBALLFLAGS="$(IRIX5LFLAGS)" RANLIB="$(IRIX5RANLIB)"
RTPCLFLAGS =
RTPCMASTER = GLOBALCFLAGS="$(RTPCCFLAGS)" GLOBALLFLAGS="$(RTPCLFLAGS)"
-SOLCFLAGS = -g -DSVR4 -DRel4 -DUCONTEXT -Dsolaris
+# FIXME -DMAKECONTEXT_SP_HIGH is wrong for Solaris 10.
+SOLCFLAGS = -g -DSVR4 -DRel4 -DUCONTEXT -DMAKECONTEXT_SP_HIGH -Dsolaris
SOLLFLAGS = -lnsl -lsocket -lthread
SOLMASTER = GLOBALCFLAGS="$(SOLCFLAGS)" GLOBALLFLAGS="$(SOLLFLAGS)"
}
newp->context.uc_stack.ss_sp = newp->ustack;
newp->context.uc_stack.ss_size = newp->usize;
+#ifdef MAKECONTEXT_SP_HIGH
+ /*
+ * Known systems that are broken that way: Solaris prior to 10,
+ * IRIX.
+ */
+ newp->context.uc_stack.ss_sp += stacksz - 8;
+#endif
newp->context.uc_stack.ss_flags = 0;
newp->context.uc_link = NULL;
makecontext(&newp->context, lwpEntryPoint, 0);