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
diff --git a/Android.mk b/Android.mk
index 6117e3e..6e4ee31 100644
--- a/Android.mk
+++ b/Android.mk
@@ -297,6 +297,10 @@
 	coregrind/m_gdbserver/valgrind-low-x86.c \
 	coregrind/m_gdbserver/version.c
 
+ifeq (arm64, $(TARGET_ARCH))
+  vg_local_src_files += android/aarch64/setjmp.S
+endif
+
 vg_local_ldflags := $(vex_ldflags)
 vg_local_cflags := $(common_cflags)