We've been using a bare-metal 'arm-elf' cross-compiler toolchain over the years 
since GCC 2.95.x/GCC3/GCC4, and it has worked fine.
Now it seems though like the 'arm-elf' target seems obsolete, and we are trying 
to switch to 'arm-none-eabi'.

Though we use no standard-libs at all, we are really hard bare-metal with our 
own memcpy() implementation etc.

Now when we try to build GCC 4.7.0 we get errors that libgcc has dependencies 
on UnWind stuff we cannot get rid of.
The dependencies are caused by some division library functions like _divdi3 
that can throw exceptions like division-by-zero.
These exceptions I guess mainly targeting C++/Java exceptions, and we want to 
avoid dependencies to libunwind when building libgcc for our bare-metal pure 
C-toolchain.

I attach a patch that adds an option to configure to avoid building libgcc with 
libunwind dependencies.
The new option is called '--disable-libunwind-exceptions'.

Over the years several people have experienced the same problem, here is some 
background from the gcc mailinglists:
http://gcc.gnu.org/ml/gcc-help/2012-03/msg00352.html
http://gcc.gnu.org/ml/gcc-help/2009-10/msg00302.html

Please review and comment!
Best Regards,

Fredrik Hederstierna
Securitas Direct AB
Malmoe Sweden

Attachment: disable_libunwind_exceptions.patch
Description: Binary data

Reply via email to