On Tue, 2011-04-05 at 15:34 +0200, Sebastian Huber wrote: > Hello, > > there were several requests for ARM Cortex-M support on RTEMS recently. The > first step towards this is a suitable ARM tool chain. I want to use this > event > to clean up the multilibs and switch to the EABI version 5. The benefit of > EABI version 5 is that this brings RTEMS more in line with the primary GCC > platform arm-linux-gnueabi. For standards related to this please have a look > at the following documents. > > Base Platform ABI for the ARM Architecture (BPABI): > > http://infocenter.arm.com/help/topic/com.arm.doc.ihi0037b/IHI0037B_bpabi.pdf > > ARM Architecture Procedure Call Standard (AAPCS): > > http://infocenter.arm.com/help/topic/com.arm.doc.ihi0042d/IHI0042D_aapcs.pdf > > ELF for the ARM Architecture: > > http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044d/IHI0044D_aaelf.pdf > > The EABI makes the VFP floating point architecture mandatory and enables us to > use hardware floating point support in the future. RTEMS has currently no > support for hardware floating point units (the context switch part is > missing). > The Thumb interwork support is mandatory with this ABI. The exception > handling > implementation changes from SJLJ to unwind tables (DWARF 2).
The EABI does not make VFP mandatory (it can't since cortex-m0 doesn't have VFP), but it does mandate the format of floating-point values that is compatible with using VFP. Further the C++ exception handling work uses a table-based system, but that is not based on DWARF unwinding tables as they are too bulky for use on small embedded systems. > > I propose to change the ARM multilibs as follows: Patches need to be sent to gcc-patches@, not gcc@. Please can you repost your patch there. R.