__aeabi_ldiv0 is called when a division by zero error occurs. According to the ARM ABI ('Run-time ABI for the ARM® Architecture 2.08'), the implementation may:
* Return the value passed to them as a parameter.
* Or, return a fixed value defined by the execution environment (such as 0).
* Or, raise a signal (often SIGFPE) or throw an exception, and do not return.
The Bionic implementation is at:
bionic/libc/unistd/raise.c
Note that this is unrelated to C++ exceptions. It seems that your C library isn't getting linked in. If you can't use the C library, implement your own version of raise() or __aeabi_ldiv0. The version in libgcc is a weak symbol and will be overriden by your version.
__aeabi_ldiv0 is called when a division by zero error occurs. According to the ARM ABI ('Run-time ABI for the ARM® Architecture 2.08'), the implementation may:
* Return the value passed to them as a parameter.
* Or, return a fixed value defined by the execution environment (such as 0).
* Or, raise a signal (often SIGFPE) or throw an exception, and do not return.
The version that comes with libgcc calls the standard C function 'raise' to kill the current process. See: pubs.opengroup. org/onlinepubs/ 000095399/ functions/ raise.html
http://
The Bionic implementation is at: libc/unistd/ raise.c
bionic/
Note that this is unrelated to C++ exceptions. It seems that your C library isn't getting linked in. If you can't use the C library, implement your own version of raise() or __aeabi_ldiv0. The version in libgcc is a weak symbol and will be overriden by your version.