From: rofl0r Date: Wed, 6 Feb 2013 01:15:51 +0000 (+0100) Subject: arm: add __aeabi_atexit() X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=commitdiff_plain;h=526900484ca5673630a5838e081db685c6856fe2 arm: add __aeabi_atexit() arm eabi requires this symbol for static C++ dtors. usually it is provided by libstdc++, but when a C++ program doesn't use the std lib (free-standing), the libc has to provide it. this was encountered while building transmission, which depends on such a C++ library (libutp). this function is nearly identical to __cxa_atexit, but it has the order of argumens swapped for "performance reasons". see page 25 of http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043d/IHI0043D_rtabi.pdf there are other aeabi specific C++ support functions missing, but it is not clear yet that GCC makes use of them so we omit them for the moment. --- diff --git a/arch/arm/src/__aeabi_atexit.c b/arch/arm/src/__aeabi_atexit.c new file mode 100644 index 00000000..ce16101d --- /dev/null +++ b/arch/arm/src/__aeabi_atexit.c @@ -0,0 +1,6 @@ +int __cxa_atexit(void (*func)(void *), void *arg, void *dso); + +int __aeabi_atexit (void *obj, void (*func) (void *), void *d) +{ + return __cxa_atexit (func, obj, d); +}