Build arm target valgrind with clang/llvm.

* llvm always call __aeabi_memcpy* and __aeabi_memclr* functions,
  which pull in other modules in libc.a. When statically linked,
  those modules in libc.a cannot find atexit and pthread_atfork.
  This problem is worked around here by redefining __aeabi_memcpy*
  and __aeabi_memclr* to call VG_(memset) and VG_(memset).
* x86 and x86_64 targets were already built with clang/llvm.
* Valgrind still has runtime errors on the arm64 target,
  with either gcc or clang/llvm.
* Valgrind is still not built for mips and mips64 targets.

upstream bug files as https://bugs.kde.org/show_bug.cgi?id=368529
Bug: 28454823
Test: run valgrind-test-art-target32 on bullhead and arm emulator.
Change-Id: I2f561adee8637fe3499dd7edc0eb38b81a94e84d
2 files changed