crazy_linker: Add support for arm64.

- Add support for aarch64 relocation types, including DT_RELA.
- Refactor relocation application to make handling rel and rela easier.
- Fix a handful types incorrectly sized for 64bit.
- Define ELF_R_TYPE and ELF_R_SYM if not in system headers.
- Strdup() strings passed to putenv() in one unit test.

Change-Id: I295847e6ed8da046a3f785b4a564fc0a1dcd21bf
update libc++ to upstream r210061

The following are updated as well
  sources/cxx-stl/llvm-libc++/patches.android/*
  tests/device/test-libc++-static-full
  tests/device/test-libc++-shared-full

Change-Id: If2a2035c15526edaf8c550d38e10d9fdd2bc3227
Split known ABIs into 32-bit and 64-bit

Change-Id: I84791950348ae9ee9629f2a7b378b8a00ba85c34
Fix build-cxx-stl.sh to build subset of android/support for 64-bit ABIs

Change-Id: I9702fa15735b2006bb64810583fc9e2d4fc17d6c
Don't follow symlinks when generating shared library

If a shared library exists in one platform version, and gets
additional symbols in a later platform version, the gen-platforms.sh
script would incorrectly generate put a stub library with the new
symbols in the old platform. This happens because each platform is
initially populated with symlinks to files in earlier platforms.

When a new stub library is written, it should clobber the symlink, rather
than following the symlink and overwrite the stub library in the
earlier platform.

Change-Id: I0b6a7121ccbc2672311abf63931b329ee4e457ff
Merge "Split known ABIs into 32-bit and 64-bit"
Merge "Fix build-cxx-stl.sh to build subset of android/support for 64-bit ABIs"
Merge "Don't follow symlinks when generating shared library"
Set gcc4.9 as the default compilers for 64-bit

Support for 64-bit aarch64 and mips64 are not great in gcc4.8, and x86_64
follows suite (to use gcc4.9 as the default) for the sake of consistency.

gcc-4.8 is removed from 64-bit.  As a result, clang with 64-bit target
now sets -gcc-toolchain to gcc-4.9

Change-Id: I47babe9bc34d041ea2a99b8839c8ca1688edb055
Support build of gcc 'l' variant: 4.8l and 4.9l

eg. attach linaro source at /tmp/ndk-$USER/src/gcc/gcc-4.8l or
/tmp/ndk-$USER/src/gcc/gcc-4.9l following regular
download-toolchain-sources.sh, linaro toolchain can be built with

./build/tools/build-gcc.sh /tmp/ndk-$USER/src/ $NDK arm-linux-androideabi-4.8l \
   --with-python=prebuilt --try-64

./build/tools/build-gcc.sh /tmp/ndk-$USER/src $NDK aarch64-linux-android-4.9l \
   --with-python=prebuilt --try-64

Change-Id: I38f8c0f71ed4975267daa0de8e9c1d8b8bcf6674
Replace 20 with MIN_API64_LEVEL

Easier to change ...

Change-Id: I7b72aee79b58203f6d0dcc420c73a5a6dd848787
Build gdb-7.6 with gcc4.8 and gcc4.9

gdb-7.3.x is still with gcc4.6 arm/mips (but will be updated
to gdb-7.6 soon).  Because we only have one gdbserver per arch,
always build gdbserver-7.6 (which is compatible with both gdb-7.3.x
and gdb-7.6) too

Change-Id: I72c5e2db6dc42ffc3d927d76e4a762de3cdb3957
Allow libc to contain C++ symbols

Recent bionic absort libstdc++ into libc

Change-Id: I16f92e9f6cbc29986105c2072fd8430a98ad5136
ARM NEON intrinsics support was added for x86

Updated NDK documentation and build-binary.mk.

This change in toolchain is required:
https://android-review.googlesource.com/#/c/95080/

Change-Id: I4b5f14593b8ce224109ad89a05a741e90f9bcac2
Signed-off-by: Anton Konovalov <anton.konovalov@intel.com>
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
Support mips64el multilib sysroot

mils64el-* toolchain has multib options, and their os-directory
  -mabi=64  : lib64 (defualt)
  -mabi=32  : lib (the original mips ABI)
  -mabi=n32 : lib32 (the new 32-bit ABI, compatible with 64

We need this to build libatomic and libgomp, etc.  Both are also
enabled in this CL

Change-Id: Ib11716493bd34aa3cb40ac51657b6efa6dfc941c
Merge "Support mips64el multilib sysroot"
Merge "Set gcc4.9 as the default compilers for 64-bit"
Merge "Support build of gcc 'l' variant: 4.8l and 4.9l"
Merge "Build gdb-7.6 with gcc4.8 and gcc4.9"
Merge "Replace 20 with MIN_API64_LEVEL"