Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!brutus.cs.uiuc.edu!rpi!batcomputer!cornell!ken From: ken@gvax.cs.cornell.edu (Ken Birman) Newsgroups: comp.sys.isis Subject: Problem with "isis_dofork()" Message-ID: <36751@cornell.UUCP> Date: 1 Feb 90 15:17:39 GMT Sender: nobody@cornell.UUCP Reply-To: ken@cs.cornell.edu (Ken Birman) Distribution: comp Organization: Cornell Univ. CS Dept, Ithaca NY Lines: 34 >From sechrest@dip.eecs.umich.edu Wed Jan 31 22:02:04 1990 >Date: Wed, 31 Jan 90 21:59:42 EST >From: sechrest@dip.eecs.umich.edu (Stuart Sechrest) >Message-Id: <9002010259.AA17387@dip.eecs.umich.edu> >Ken, > The definition of isis_dofork() for the MIPS machine doesn't >seem to work. I have the following definition in clibs/cl_isis.c: > isis_dofork() > { > #if (HPUX|SUN|VAX) > return(fork()); > #else > return(vfork()); > #endif > } >Returning from a subroutine that calls vfork() seems to screw up the stack >pointer. This is something that is warned against in the man page for >VFORK(2).... Yes, this is clearly a bug and might affect any non HPUX/SUN/VAX systems running under ISIS. I suggest that users with software running on a MIPS machine or some other architecture not in this list eliminate isis_dofork and add the following macro definition in isis.h: #if (HPUX|SUN|VAX) # define isis_dofork() fork() #else # define isis_dofork() vfork() #endif I'll make this change in ISIS V2.0 too. Thanks!