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
disable_libunwind_exceptions.patch
Description: Binary data