Matt Thomas | 1 Sep 2009 09:54

RFC: setjmp/longjmp (and friends) for a new port


In adding support for MIPS64 environments to NetBSD, a lot of the work  
is just adapting the existing to nuances of new MIPS ABIs.  Trying to  
make minimal changes when possible is usually the best way to go.  But  
sometimes, a radical may be in order.

MIPS under NetBSD has always a jmp_buf that was a struct sigcontext.   
Changing that for the existing code is almost impossible since you  
have to live with the size limits of a jmp_buf.  But a new port  
doesn't have to worry about that, since there is no existing code to  
be compatible with.

So I'm thinking that in MIPS64, setjmp/longjmp can just be versions of  
getcontext/setcontext.
longjmp need to be able to set the return value, but that's a minor  
variation.

Can anyone think of valid reasons not do that?


Gmane