]> git.pond.sub.org Git - empserver/commitdiff
(lwpNewContext) [MAKECONTEXT_SP_HIGH]: Work around makecontext()
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 11 Dec 2005 08:18:15 +0000 (08:18 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 11 Dec 2005 08:18:15 +0000 (08:18 +0000)
lossage.
(IRIX5CFLAGS, SOLCFLAGS): Define MAKECONTEXT_SP_HIGH.  This is wrong
for Solaris 10.

Make.sysdefs
src/lib/lwp/arch.c

index 05c2c6a6c1e033fbd543471d5113b90018e4481b..5499b5871d04c54d5061b424c9abf04be1408fbd 100644 (file)
@@ -79,7 +79,7 @@ HPUXLFLAGS =
 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)"
 
@@ -96,7 +96,8 @@ RTPCCFLAGS = -DBSD_INCLUDES -Daix -Dsys5 $(LOCALCFLAGS) -a
 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)"
 
index 222e7d3416aea11f4d6800891f0dd7664d25e12e..9c70d5eaead6d7461df7523719b4842c2c53dbbd 100644 (file)
@@ -79,6 +79,13 @@ lwpNewContext(struct lwpProc *newp, int stacksz)
     }
     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);