(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:
parent
588329ab35
commit
72f4cef34f
2 changed files with 10 additions and 2 deletions
|
@ -79,7 +79,7 @@ HPUXLFLAGS =
|
||||||
HPUXMASTER = GLOBALCFLAGS="$(HPUXCFLAGS)" GLOBALLFLAGS="$(HPUXLFLAGS)" RANLIB="$(HPUXRANLIB)" CLIENTLIBS=-ltermcap
|
HPUXMASTER = GLOBALCFLAGS="$(HPUXCFLAGS)" GLOBALLFLAGS="$(HPUXLFLAGS)" RANLIB="$(HPUXRANLIB)" CLIENTLIBS=-ltermcap
|
||||||
|
|
||||||
IRIX5RANLIB = echo
|
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
|
IRIX5LFLAGS = -lnsl
|
||||||
IRIX5MASTER = GLOBALCFLAGS="$(IRIX5CFLAGS)" GLOBALLFLAGS="$(IRIX5LFLAGS)" RANLIB="$(IRIX5RANLIB)"
|
IRIX5MASTER = GLOBALCFLAGS="$(IRIX5CFLAGS)" GLOBALLFLAGS="$(IRIX5LFLAGS)" RANLIB="$(IRIX5RANLIB)"
|
||||||
|
|
||||||
|
@ -96,7 +96,8 @@ RTPCCFLAGS = -DBSD_INCLUDES -Daix -Dsys5 $(LOCALCFLAGS) -a
|
||||||
RTPCLFLAGS =
|
RTPCLFLAGS =
|
||||||
RTPCMASTER = GLOBALCFLAGS="$(RTPCCFLAGS)" GLOBALLFLAGS="$(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
|
SOLLFLAGS = -lnsl -lsocket -lthread
|
||||||
SOLMASTER = GLOBALCFLAGS="$(SOLCFLAGS)" GLOBALLFLAGS="$(SOLLFLAGS)"
|
SOLMASTER = GLOBALCFLAGS="$(SOLCFLAGS)" GLOBALLFLAGS="$(SOLLFLAGS)"
|
||||||
|
|
||||||
|
|
|
@ -79,6 +79,13 @@ lwpNewContext(struct lwpProc *newp, int stacksz)
|
||||||
}
|
}
|
||||||
newp->context.uc_stack.ss_sp = newp->ustack;
|
newp->context.uc_stack.ss_sp = newp->ustack;
|
||||||
newp->context.uc_stack.ss_size = newp->usize;
|
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_stack.ss_flags = 0;
|
||||||
newp->context.uc_link = NULL;
|
newp->context.uc_link = NULL;
|
||||||
makecontext(&newp->context, lwpEntryPoint, 0);
|
makecontext(&newp->context, lwpEntryPoint, 0);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue