>>  This patch works correctly. It passes the ruby tests correctly. Could
you
>> put this to CVS.
>
>Done.
>

      I verified that CVS sources behaves correctly as well.

>> Thanks for very intersting
>>  gdb session and analysis. Maybe there is bug in somewhere in solaris
>> setjmp function family? In linux this works just fine.
>
>The problem is caused by a combination of gcc, getcontext/setcontext
>and SPARC (or IA64).  So I think it can be caused on Linux/SPARC and
>Linux/IA64.
>
>It is reasonable that gcc expects registers in register window/stack
>is not changed across a function call.  It is because register
>window/stack is a mechanism to save/restore registers automatically.
>
>It is reasonable that getcontext/setcontext doesn't preserve all
>registers.  It makes the functions slower, especially on processors
>which have many registers.
>
>It is reasonable that processors have a special mechanism to make
>function call faster.
>
>So I'm not sure what is wrong.  However I think gcc is the most
>proper target to have a workaround for the problem because gcc already
>knows setjmp may return twice.

      It would require a sample.c test program, to get gcc people
interested and possibly they
      wouldn't still fix this one. In the mean time your fix works very
nicely. Thanks for fast response.