Is setjmp patch still need for MVME550 with 4.10.2

Till Straumann strauman at slac.stanford.edu
Wed Jan 18 17:08:44 UTC 2012


OK, got my memory up to speed.
Here's some background:

setjmp/longjmp save/restore the CPU context to/from memory.

powerpc-RTEMS has had the option to use lazy floating-point and
altivec context switching. This means that the ordinary setjmp/longjmp
needed to be patched so that they only save FP and/or altivec registers
for tasks which have the respective engines enabled (otherwise
setjmp would crash, e.g., trying to save FP registers from a task
context which is non-FP and has the FPU disabled).

However, with increasing gcc optimization it has become very
difficult to control exactly when gcc emits FP or altivec instructions
(and it is not trivially possible -- due to subtle ABI changes -- to mix
e.g., -msoft-float with -mhard-float compiled code).

Therefore, IIRC, under rtems-4.10 the FPU (and altivec) engines
are always enabled thus obsoleting the need for a setjmp/longjmp
patch.

HTH
- Till

On 01/18/2012 10:34 AM, Phillip Sorensen wrote:
> Hello,
>
> I am in the process of upgrading from RTEMS 4.10.0 to RTEMS 4.10.2, and
> I noticed that one of the patches for the update was for the MVME5500
> BSP.  In the past I have had to patch newlib setjmp for this BSP.  Is
> this newlib patch still needed for the lastest version or RTEMS?
>
> Thanks,
>
> Phil Sorensen
> CHESS
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users




More information about the users mailing list