Skip resetting the stack protector on eng builds
This CL will cause the Zygote to skip re-initialization of the stack
protector cookie on Eng builds. This will prevent interpreter functions
that would not normally appear on the critical call path from causing
stack check failures.
Bug: 265760793
Test: m libandroid_runtime (to ensure correct branch of pre-processor
conditional is taken)
Change-Id: I7ec7ac5a2230d1078c818013ae90f3d2597734a3
diff --git a/core/jni/Android.bp b/core/jni/Android.bp
index f7d1014..b5b7c0f 100644
--- a/core/jni/Android.bp
+++ b/core/jni/Android.bp
@@ -40,6 +40,12 @@
cppflags: ["-Wno-conversion-null"],
+ product_variables: {
+ eng: {
+ cflags: ["-DNO_RESET_STACK_PROTECTOR"],
+ },
+ },
+
cpp_std: "gnu++20",
srcs: [
diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp
index 19bcd7f..963a83e 100644
--- a/core/jni/com_android_internal_os_Zygote.cpp
+++ b/core/jni/com_android_internal_os_Zygote.cpp
@@ -2296,7 +2296,7 @@
setpriority(PRIO_PROCESS, 0, PROCESS_PRIORITY_MIN);
}
-#if defined(__BIONIC__)
+#if defined(__BIONIC__) && !defined(NO_RESET_STACK_PROTECTOR)
// Reset the stack guard for the new process.
android_reset_stack_guards();
#endif