Remove the old arm directives.
Change the non-local labels to .L labels.
Add cfi directives to strcpy.S.
Bug: 18157900
(cherry picked from commit c8bd2abab24afe563240297018c4fa79944f193b)
Change-Id: Ifa1c3d16553d142eaa0d744af040f0352538106c
* commit '16b557e1b2e991a5e22b553fbc5e8898877d1913':
Fix mips signed/unsigned signal_test.cpp build breakage.
Remove the unnecessary generic-neon code.
Don't mask out SA_RESTORER from sa_flags.
[x86,x86_64] Fix libgcc unwinding through signal
Stack unwinding unit tests.
Use the kernel's sa_restorer for aarch64.
Fix 32-bit arm unwinding through signal frames.
Fix signal trampolines.
Disable tzdata in $ANDROID_DATA.
Group things appropriately and name each group.
Bug: 18160821
(cherry picked from commit 7c02d9428ca18ac600f7ba7d51bb24ca71e733f6)
Change-Id: I863242515af44058154d03e2d8c34678e682d66a
glibc doesn't do this, and we probably shouldn't either.
Bug: 16703540
Bug: 17436734
(cherry picked from commit afe58ad9892de27a7acb0aaded6312ee0f958314)
Change-Id: Iada5d0ae814f438cb276f056b2b5e3675f0e3666
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
gdb was happy with what we had, but libgcc and libunwind weren't.
libgcc is happy with the kernel's restorer (because of the extra nop),
though libunwind looks like it's going to need code changes regardless.
We could make our restorer more like the kernel's one, but why bother
when we can just let the kernel supply the canonical one?
Bug: 17436734
(cherry picked from commit 1cff9a89645a8f362a9ce19c7f9544e98c1fd9e7)
Change-Id: Ie13d73fd97395e1979a67c2294e036a97c50000d
gdb was already okay; libgcc and libunwind need a little extra help.
Bug: 17436734
(cherry picked from commit 148dff3ec6114a03acc722ae43990f1b342abad9)
Change-Id: I2cc997017acc57c930284af5264f353656b98c7b
* 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...
(cherry picked from commit 36f451a6d93b6807944d99fa23396e039c47e845)
Bug: 17436734
Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb