Build arm64 target valgrind with simplified bionic setjmp.S
* Android clang/llvm has no __builtin_{setjmp,longjmp} for aarch64.
So we define VG_MINIMAL_SETJMP and VG_MINIMAL_LONGJMP to
setjmp/longjmp for VGP_arm64_linux.
* This setjmp.S is copied and simplified from
bionic/libc/arch-arm64/bionic/setjmp.S.
Unlike the bionic version, this version do not save/restore signal mask,
do not calculate checksum, and do not mangle registers.
These changes not only simplify the code, but also remove other
dependencies on other bionic functions, so we can link valgrind statically
with libc.a.
Upstream bug filed as https://bugs.kde.org/show_bug.cgi?id=369723
Bug: 28454823
Test: run valgrind-test-art-target64 on bullhead.
Change-Id: I54c25fb8a2ab7a0ecfc6cd68166adc91f4ae3617
4 files changed