Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Apr 1997 00:32:55 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        ache@nagual.pp.ru, bde@zeta.org.au
Cc:        cvs-all@freebsd.org, CVS-committers@freebsd.org, cvs-usrbin@freebsd.org
Subject:   Re: cvs commit:  src/usr.bin/vacation vacation.c
Message-ID:  <199704251432.AAA00549@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>It has more support than just a warnings, vfork calling function
>marked and processed in the same way as setjmp calling function now
>(returns twice). It looks like noop right now because we not turn
>NON_SAVING_SETJMP define on. Perhaps we should turn it off for setjmp()
>and on for vfork() separately.

Yes, there should be a NON_SAVING_VFORK, and if nonzero values of it
are supported, then the saving may need to be more complicated than
for setjmp.

NON_SAVING_SETJMP is for systems whose setjmp() doesn't save all the
registers, perhaps because the native compiler uses a caller-saved
convention so the native setjmp() doesn't need to.  The native system
would have to use special handling for vfork(), one of the following:

1. save registers in vfork() and don't save before call (simplest).
2. save registers before call and don't write to or free the save
   area until the child exits (difficult in cases that may have
   iterated vforks - if the stack is used then it can only be shrunk
   if the compiler understands the flow of control well enough to
   decide when the child returns!).

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704251432.AAA00549>