PowerPC Patch for setjmp(), longjmp() (was Re: 4.10 Approaching)

Kate Feng feng1 at bnl.gov
Thu Oct 1 16:17:09 UTC 2009


Hi Ralf,

Thanks for the newly well defined versions of toolchain for 4.10.
I think you meant
http://www.rtems.com/ml/rtems-users/2009/march/msg00003.html
is controversial.

Without the patch, in order to use setjmp() and longjmp(),
1) One would have to find out if the AltiVec vector unit
is available on the particular PowerPC processor, and accordingly
decide if one should add the define of __ALTIVEC__ in the Makefile
somewhere for that particular PPC .  Otherwsie, the code might break.
This makes life complicated if one has to support various kinds of PPCs.

P.S. : In the older version of newlib, it automatically handles this issue.

2) I thought the patch further cuts the overhead of saveing and 
restoring FPU
registers if the FPU is disabled in threads.  It is just  a polished 
step which should
help performance if some threads have the FPU disabled.  I do not think the
RTEMS OS itself would have  set the __NO_FPRS__ flag on or off  
automatically
depending on if the threads have the FPU disabled or enabled.  Perhaps, 
one who
is familiar with the OS can shed some lights on this.

Regardless of the evidence of any impact on performance, I  know at 
least one of
the real-time O.S. (e.g.  vxWorks) offers the options of having the FPU 
disbled in threads.

Did I miss other discussions beyond March 2009 regarding this patch ?
Both 1) and 2) were in the older version of newlib.
I am confused because you mentioned that 4.10 is a leading-edge technology.

Regards,
Kate

Ralf Corsepius wrote:
> On 10/01/2009 04:02 AM, Kate Feng wrote:
>> Ralf Corsepius wrote:
>>> On 09/30/2009 06:54 PM, Kate Feng wrote:
>>>> Ralf Corsepius wrote:
>>>>> On 09/30/2009 05:36 PM, Feng, Kate wrote:
>
>>>> Please advise.
>>> Are using home-grown toolchains based on the contents of
>>> ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10 ?
>>>
>>> Its contents is a bit outdated, I haven't managed to keep it uptodate,
>>> because the rapid development binutils, newlib and gdb currently are
>>> subject of kept me busy otherwise (building binary toolchains). (
>>>
>>> Which OS are you using?
>> I am in the stage of having both RHEL5 and the latest
>> Ubuntu.
> Compare for my other mail.
>
> I would seriously advise you to use the prebuilt CentOS5 rpms on RHEL5.
>
> On Ubuntu, you can try "alien"ized CentOS rpms.
>
>>> May-be the toolchain you need already exists pre-built.
>> However, I always had to build the binary from source code just in
>> case something is missing. See the patches I sent in 2009 for the
>> tools:
>> http://www.rtems.com/ml/rtems-users/2009/february/msg00125.html
>> http://www.rtems.com/ml/rtems-users/2009/march/msg00003.html
>>
>> They might not apply to others' applications, but they are important
>> for my applications, although it could be time consuming to
>> apply patches, rebuild and rebuild.
> Well, you might be aware that these patches of yours are controversal?
>
> Ralf
>




More information about the users mailing list