Go to file
Evgeniy Stepanov cd15bacf33 Fix segv when unwinding stack past __libc_init.
This change fixes a segmentation fault in the libc unwinder when it goes
past __libc_init.

Unwind instructions for __libc_init direct it to grab the return address from
the stack frame. Without this change, the unwinder gets a wild address and
looks up further unwind instructions for the routine at that address. If it's
unlucky enough to hit an existing function, it will try to unwind it. Bad
things happen then.

With this change, the return address always points to the _start function,
which does not have unwind instructions associated with it. This stop the
unwind process.

__libc_init never returns, so this does not affect program execution, other
than adding 4 bytes on the main thread stack.

Change-Id: Id58612172e8825c8729cccd081541a13bff96bd0
2012-04-10 16:45:54 +04:00
libc Fix segv when unwinding stack past __libc_init. 2012-04-10 16:45:54 +04:00
libdl fix prototype of dladdr 2011-09-28 12:17:34 -07:00
libm libm: cherry-pick one patch from freebsd to fix logb() denormals issue 2012-02-28 12:28:05 +08:00
libstdc++ bionic: Do not use <sys/atomics.h> for platform code. 2011-11-16 16:28:10 +01:00
libthread_db bionic, libthread_db x86 fixes 2011-04-27 09:12:58 -07:00
linker linker: surround "debug_verbosity" by "#if LINKER_DEBUG" 2012-04-04 12:43:32 -07:00
.gitignore Merge memory checking functionality from sandbox 2010-02-16 11:43:18 -08:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:11:41 -07:00
CleanSpec.mk Add an empty CleanSpec.mk 2010-03-08 18:04:02 -08:00
MAINTAINERS added and modified libm to support SuperH architecture 2009-08-31 16:25:42 +09:00
ThirdPartyProject.prop add meta-files about 3rd party projects 2010-07-16 11:41:33 -07:00