When Android is using toolchain resolution, CC rules should also.

PiperOrigin-RevId: 361579888
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
index 567e12b..af522a5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -985,6 +985,7 @@
       host.androidCrosstoolTop = androidCrosstoolTop;
       host.sdk = sdk;
       host.fatApkCpus = ImmutableList.of(); // Fat APK archs don't apply to the host.
+      host.incompatibleUseToolchainResolution = incompatibleUseToolchainResolution;
 
       host.desugarJava8 = desugarJava8;
       host.desugarJava8Libs = desugarJava8Libs;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
index 6c9d1c2..ce62bcb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java
@@ -57,6 +57,7 @@
 import com.google.devtools.build.lib.rules.config.ConfigFeatureFlagProvider;
 import com.google.devtools.build.lib.rules.cpp.CcInfo;
 import com.google.devtools.build.lib.rules.cpp.CppConfiguration;
+import com.google.devtools.build.lib.rules.cpp.CppOptions;
 import com.google.devtools.build.lib.rules.java.JavaConfiguration;
 import com.google.devtools.build.lib.rules.java.JavaInfo;
 import com.google.devtools.build.lib.rules.java.JavaRuleClasses;
@@ -482,7 +483,8 @@
 
     @Override
     public ImmutableSet<Class<? extends FragmentOptions>> requiresOptionFragments() {
-      return ImmutableSet.of(AndroidConfiguration.Options.class, PlatformOptions.class);
+      return ImmutableSet.of(
+          AndroidConfiguration.Options.class, PlatformOptions.class, CppOptions.class);
     }
 
     @Override
@@ -496,6 +498,14 @@
       BuildOptionsView newOptions = options.clone();
       PlatformOptions newPlatformOptions = newOptions.get(PlatformOptions.class);
       newPlatformOptions.platforms = ImmutableList.of(androidOptions.androidPlatforms.get(0));
+
+      // If we are using toolchain resolution for Android, also use it for CPP.
+      // This needs to be before the AndroidBinary is analyzed so that all native dependencies
+      // use the same configuration.
+      if (androidOptions.incompatibleUseToolchainResolution) {
+        newOptions.get(CppOptions.class).enableCcToolchainResolution = true;
+      }
+
       return newOptions.underlying();
     }