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