platform_bionic/libc
Elliott Hughes 36f451a6d9 Fix signal trampolines.
* LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86
  kernels will apparently stop supporting the case where SA_RESTORER isn't
  set.

* gdb and libunwind care about the exact instruction sequences, so we need to
  modify the code slightly in a few cases to match what they're looking for.

* gdb also cares about the exact function names (for some architectures),
  so we need to use __restore and __restore_rt rather than __sigreturn and
  __rt_sigreturn.

* It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume
  that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer.

This fixes unwinding through a signal handler in gdb for all architectures.
It doesn't fix libunwind for arm and arm64. I'll keep investigating that...

Bug: 17436734
Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb
2014-09-15 15:04:14 -07:00
..
arch-arm Fix signal trampolines. 2014-09-15 15:04:14 -07:00
arch-arm64 Fix signal trampolines. 2014-09-15 15:04:14 -07:00
arch-common/bionic Revert "Register __libc_fini as early as possible." 2014-09-04 21:54:34 +00:00
arch-mips Fix mips __fadvise64.S build failure. 2014-09-11 10:10:08 -07:00
arch-mips64 Add posix_fadvise(3). 2014-09-11 08:45:46 -07:00
arch-x86 Fix signal trampolines. 2014-09-15 15:04:14 -07:00
arch-x86_64 Fix signal trampolines. 2014-09-15 15:04:14 -07:00
bionic Fix signal trampolines. 2014-09-15 15:04:14 -07:00
dns Merge "When comparing DNS server configs, also compare number of servers" 2014-09-09 10:22:18 +00:00
include POSIX says <signal.h> gets you ucontext_t. 2014-09-12 20:47:35 -07:00
kernel Clean up some of our python scripts. 2014-08-20 11:16:11 -07:00
private Remove "private/bionic_pthread.h". 2014-09-12 11:35:05 -07:00
stdio Expose __swsetup for LP32 binary compatibility. 2014-09-11 18:23:46 -07:00
tools Remove an unused file. 2014-09-13 09:24:28 -07:00
tzcode Fix the tzdata update tools. 2014-08-06 17:31:48 -07:00
upstream-dlmalloc Put all allocation functions into dispatch table. 2014-06-12 15:08:18 -07:00
upstream-freebsd Fix _BSD_SOURCE/__USE_BSD. 2014-08-19 09:18:03 -07:00
upstream-netbsd Ignore all __weak_alias in OpenBSD libC. 2014-08-28 15:10:01 -07:00
upstream-openbsd Ignore all __weak_alias in OpenBSD libC. 2014-08-28 15:10:01 -07:00
zoneinfo Upgrade bionic to tzdata2014g. 2014-09-02 09:51:04 -07:00
Android.mk Merge "Refactoring: C++11 style DISABLE_ bionic marcos" 2014-09-12 16:50:05 +00:00
crt.mk Reconfig libc's Android.mk to build for multilib 2014-02-12 13:58:34 -08:00
MODULE_LICENSE_BSD
NOTICE Update NOTICE files. 2014-09-13 09:42:41 -07:00
SYSCALLS.TXT Fix mips __fadvise64.S build failure. 2014-09-11 10:10:08 -07:00