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"],
}