i386-rtems setjmp.h patch
J. Johnston
jjohnstn@redhat.com
Tue Dec 10 11:54:00 GMT 2002
Joel Sherrill wrote:
>
> "J. Johnston" wrote:
>
>>Joel Sherrill wrote:
>>
>>>I don't claim to fully understand why the i386 has such a complicated
>>>path to figuring out _JBLEN but it didn't work for rtems. Honestly I
>>>am not sure if using setjmp-dj.h gets everything defined for targets
>>>that
>>>use that either.
>>
>>It does. You'll see that the jmp_buf is defined already and so we
>>don't redefine it. The problem is when we fall into the last part
>>which is enabled for CYGWIN and __rtems__ that needs the _JBLEN macro
>>to be set.
>
>
> That sounds like what we were seeing since it actually a sigsetjmpbuf
> problem.
>
>
>>It looks like _JBLEN of 9 is what that structure is
>>
>>>accomplishing. Anyway i386-rtems targets need this one. Please
>>>commit it.
>>>
>>
>>Do you mean 9 ints or do you mean 36 ints? Because _JBTYPE is undefined,
>>it will declare _JBLEN ints.
>
>
> The assembly only saves 9 registers so we mean 9 ints. We are using
> the machine/i386/setjmp.S.
>
Patch checked in with 9 instead of 36. Thanks.
-- Jeff J.
>>
>>>2002-12-06 Joel Sherrill <joel@OARcorp.com>
>>>
>>> * libc/include/machine/setjmp.h: Make sure _JBLEN is defined
>>> for i386-rtems targets.
>>>
>>>diff -uNr
>>>/usr1/rtems/work-tools/original/newlib-1.10.0/newlib/libc/include/machine/setjmp.h
>>>newlib-1.10.0/newlib/libc/include/machine/setjmp.h
>>>---
>>>/usr1/rtems/work-tools/original/newlib-1.10.0/newlib/libc/include/machine/setjmp.h
>>>Fri Feb 1 17:27:10 2002
>>>+++ newlib-1.10.0/newlib/libc/include/machine/setjmp.h Wed Nov 27
>>>07:55:10 2002
>>>@@ -41,8 +41,8 @@
>>> #if defined(__CYGWIN__) && !defined (_JBLEN)
>>> #define _JBLEN (13 * 4)
>>> #elif defined (__i386__)
>>>-#ifdef __unix__
>>>-# define _JBLEN 36
>>>+#if defined(__unix__) || defined(__rtems__)
>>>+# define _JBLEN (9 * 4)
>>> #else
>>> #include "setjmp-dj.h"
>>> #endif
>>>
>>
>
More information about the Newlib
mailing list