OSDN Git Service

[x86,x86_64] Fix libgcc unwinding through signal
authorPavel Chupin <pavel.v.chupin@intel.com>
Fri, 26 Sep 2014 12:02:09 +0000 (16:02 +0400)
committerElliott Hughes <enh@google.com>
Mon, 27 Oct 2014 23:42:49 +0000 (16:42 -0700)
commit8eb8c3929974060e0d8b5063886d6ed250198d41
tree123461b5b038f82f6b5a0e1dc4dcb4c2bb71299e
parent190dce9e56c750be6b8d113ffdd32a9c20c19e3d
[x86,x86_64] Fix libgcc unwinding through signal

This change provides __restore/__restore_rt on x86 and __restore_rt on
x86_64 with unwinding information to be able to unwind through signal
frame via libgcc provided unwinding interface. See comments inlined for
more details.

Also remove the test that had a dependency on
__attribute__((cleanup(foo_cleanup))). It doesn't provide us with any
better test coverage than we have from the newer tests, and it doesn't
work well across a variety architectures (presumably because no one uses
this attribute in the real world).

Tested this on host via bionic-unit-tests-run-on-host on both x86 and
x86-64.

Bug: 17436734
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
(cherry picked from commit 50321e2e66f19998970e59d666bc9af387345b3a)

Change-Id: Iba90e36958b00c7cc7db5eeebf888dc89ce4d619
libc/arch-x86/bionic/__restore.S
libc/arch-x86/bionic/__restore_rt.S [deleted file]
libc/arch-x86/x86.mk
libc/arch-x86_64/bionic/__restore_rt.S
tests/Android.mk
tests/ScopedSignalHandler.h
tests/stack_unwinding_test.cpp
tests/stack_unwinding_test_impl.c [deleted file]