ld.bfd: omit DF_1_PIE when targeting Android

Some versions of the Android dynamic linker (e.g. N) print a warning:

    WARNING: linker: /data/local/tmp/a.out: unsupported flags DT_FLAGS_1=0x8000000

${target} will be something like:

 - arm-unknown-linux-androideabi
 - aarch64-unknown-linux-android
 - i686-pc-linux-android

Bug: https://github.com/android-ndk/ndk/issues/602
Test: manual:
  1. create a standalone ARM64 toolchain with NDK r16b
  2. echo 'int main() {}' > justmain.c
  3. ~/stand-arm64-21-libc++-r16b/bin/clang justmain.c -pie -fPIE \
         -fuse-ld=bfd && \
         readelf -d a.out | grep FLAG
     -- OUTPUT: 0x000000006ffffffb (FLAGS_1)            Flags: 8000000
  4. ~/stand-arm64-21-libc++-r16b/bin/clang justmain.c -pie -fPIE \
         -fuse-ld=bfd \
         -B ~/android/ndk/out/binutils/linux/arm64/install/binutils-arm64-linux/aarch64-linux-android/bin && \
         readelf -d a.out | grep FLAG
     -- OUTPUT: nothing
Change-Id: I040b6edbd8d7943b790db0ef19b76cfdffc1ccdf
diff --git a/binutils-2.27/ld/emultempl/elf32.em b/binutils-2.27/ld/emultempl/elf32.em
index 47fa549..1763c6a 100644
--- a/binutils-2.27/ld/emultempl/elf32.em
+++ b/binutils-2.27/ld/emultempl/elf32.em
@@ -117,8 +117,21 @@
 static void
 gld${EMULATION_NAME}_after_parse (void)
 {
+EOF
+case ${target} in
+  *-*-linux-android*)
+    # Some versions of the Android dynamic linker (e.g. N) warn on binaries
+    # with the DF_1_PIE flag, so don't set it.
+    # https://github.com/android-ndk/ndk/issues/602
+    ;;
+  *)
+    fragment <<EOF
   if (bfd_link_pie (&link_info))
     link_info.flags_1 |= (bfd_vma) DF_1_PIE;
+EOF
+    ;;
+esac
+fragment <<EOF
 
   after_parse_default ();
 }