If the toolchain file or cache does not set this, enable it
automatically based on the Android API version. Versions 16
and above expect position independent code.
Use the main `CMAKE_POSITION_INDEPENDENT_CODE` setting in favor of
hard-coding `-fpic` or `-fPIC` in the compiler flags for each ABI.
This allows CMake to use `-fpie` or `-fPIE` as needed when sources
are meant for executables, and `-fpic` or `-fPIC` for other sources.
See `${ndk}/build/core/default-build-commands.mk` for link flags the NDK
uses for executables. Add them to our default executable link flags.
Suppress `nocopyreloc` on `arm64-v8a` because it does not work with
some STL types.
Closes: #16380
The Android NDK source repository at
https://android.googlesource.com/platform/ndk.git
has `<ndk>/build/core/toolchains/*/setup.mk` files that store tables of
information for their build system. Add an equivalent file for each
compiler/abi combination.