Adding kuser_helper on note to all arm32 binaries.

A kernel change is going in for 64bit arm to disable kuser_helper vector
pages for 32bit processes.  This change adds a special elf note to
all arm32 binaries built with bionic.  This note tells the kernel to
load the kuser_helper vector page for the process.

Bug: 33689037
Test: Manual - Phone boots, 32bit binaries have the notes, 64bit
binaries do not.
Change-Id: Ib8366e2a0810092b71381d57dee4bdaa56369a24
diff --git a/libc/Android.bp b/libc/Android.bp
index 4df94a0..ec00f28 100644
--- a/libc/Android.bp
+++ b/libc/Android.bp
@@ -1869,6 +1869,21 @@
     ],
 }
 
+cc_object {
+    name: "kuser_helper_on",
+    local_include_dirs: ["include"],
+    arch: {
+        arm: {
+            srcs: ["arch-arm/bionic/kuser_helper_on.S"],
+        },
+    },
+
+    defaults: [
+        "crt_defaults",
+        "crt_so_defaults",
+    ],
+}
+
 // Android.mk:ignore
 cc_object {
     name: "crtbegin_so1",
@@ -1893,6 +1908,11 @@
         "crtbegin_so1",
         "crtbrand",
     ],
+    arch: {
+        arm: {
+            objs: ["kuser_helper_on"],
+        },
+    },
 }
 
 // Android.mk:ignore
@@ -1951,6 +1971,11 @@
         "crtbegin_static1",
         "crtbrand",
     ],
+    arch: {
+        arm: {
+            objs: ["kuser_helper_on"],
+        },
+    },
     defaults: ["crt_defaults"],
 }
 
@@ -1997,6 +2022,11 @@
         "crtbegin_dynamic1",
         "crtbrand",
     ],
+    arch: {
+        arm: {
+            objs: ["kuser_helper_on"],
+        },
+    },
     defaults: ["crt_defaults"],
 }