lib1asmfuncs.asm calls raise unconditionally
Bug #822478 reported by
Bernhard Rosenkraenzer
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GCC |
Invalid
|
Undecided
|
Unassigned |
Bug Description
gcc/configs/
/mnt/user/
/mnt/user/
collect2: ld returned 1 exit status
e.g. when linking Android init.
To post a comment you must log in.
__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.