(lwpNewContext) [MAKECONTEXT_SP_HIGH]: Work around makecontext()

lossage.
(IRIX5CFLAGS, SOLCFLAGS): Define MAKECONTEXT_SP_HIGH.  This is wrong
for Solaris 10.
This commit is contained in:
Markus Armbruster 2005-12-11 08:18:15 +00:00
parent 588329ab35
commit 72f4cef34f
2 changed files with 10 additions and 2 deletions

View 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)"

View 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);