Flip --incompatible_disable_runtimes_filegroups

Fixes https://github.com/bazelbuild/bazel/issues/6942.

RELNOTES: --incompatible_disable_runtimes_filegroups was flipped (https://github.com/bazelbuild/bazel/issues/6942)
PiperOrigin-RevId: 233388375
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
index 51bf5f4..8eafb0e 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java
@@ -41,6 +41,19 @@
   /** This is where deprecated options go to die. */
   public static class GraveyardOptions extends OptionsBase {
     @Option(
+        name = "incompatible_disable_runtimes_filegroups",
+        defaultValue = "false",
+        documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
+        effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.LOADING_AND_ANALYSIS},
+        metadataTags = {
+          OptionMetadataTag.DEPRECATED,
+          OptionMetadataTag.INCOMPATIBLE_CHANGE,
+          OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
+        },
+        help = "Deprecated no-op.")
+    public boolean disableRuntimesFilegroups;
+
+    @Option(
         name = "incompatible_disable_tools_defaults_package",
         defaultValue = "false",
         documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java
index 08c4d77..35b7b45 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainAttributesProvider.java
@@ -83,8 +83,6 @@
   private final Artifact zipper;
   private final String purposePrefix;
   private final String runtimeSolibDirBase;
-  private final ImmutableList<? extends TransitiveInfoCollection> staticRuntimesLibs;
-  private final ImmutableList<? extends TransitiveInfoCollection> dynamicRuntimesLibs;
   private final LicensesProvider licensesProvider;
   private final Label toolchainType;
   private final CcToolchainVariables additionalBuildVariables;
@@ -174,15 +172,6 @@
     this.runtimeSolibDirBase = "_solib_" + "_" + Actions.escapeLabel(ruleContext.getLabel());
     this.staticRuntimeLib = ruleContext.getPrerequisite("static_runtime_lib", Mode.TARGET);
     this.dynamicRuntimeLib = ruleContext.getPrerequisite("dynamic_runtime_lib", Mode.TARGET);
-    this.staticRuntimesLibs =
-        staticRuntimeLib == null
-            ? ImmutableList.copyOf(ruleContext.getPrerequisites("static_runtime_libs", Mode.TARGET))
-            : null;
-    this.dynamicRuntimesLibs =
-        dynamicRuntimeLib == null
-            ? ImmutableList.copyOf(
-                ruleContext.getPrerequisites("dynamic_runtime_libs", Mode.TARGET))
-            : null;
     this.ccToolchainConfigInfo =
         ruleContext.getPrerequisite(
             CcToolchainRule.TOOLCHAIN_CONFIG_ATTR, Mode.TARGET, CcToolchainConfigInfo.PROVIDER);
@@ -252,18 +241,10 @@
     return fdoOptimizeArtifacts;
   }
 
-  public ImmutableList<? extends TransitiveInfoCollection> getStaticRuntimesLibs() {
-    return staticRuntimesLibs;
-  }
-
   public LicensesProvider getLicensesProvider() {
     return licensesProvider;
   }
 
-  public ImmutableList<? extends TransitiveInfoCollection> getDynamicRuntimesLibs() {
-    return dynamicRuntimesLibs;
-  }
-
   public TransitiveInfoCollection getStaticRuntimeLib() {
     return staticRuntimeLib;
   }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
index 0c54fab..c62e54e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainProviderHelper.java
@@ -512,28 +512,16 @@
         configuration.getBinFragment().getRelative(runtimeSolibDirBase);
 
     // Static runtime inputs.
-    if (cppConfiguration.disableRuntimesFilegroups()
-        && !attributes.getStaticRuntimesLibs().isEmpty()) {
-      ruleContext.ruleError(
-          "cc_toolchain.static_runtime_libs attribute is removed, please use "
-              + "cc_toolchain.static_runtime_lib (singular) instead. See "
-              + "https://github.com/bazelbuild/bazel/issues/6942 for details.");
-    }
-    TransitiveInfoCollection staticRuntimeLibDep =
-        attributes.getStaticRuntimeLib() != null
-            ? attributes.getStaticRuntimeLib()
-            : selectDep(
-                attributes.getStaticRuntimesLibs(), toolchainInfo.getStaticRuntimeLibsLabel());
+    TransitiveInfoCollection staticRuntimeLib = attributes.getStaticRuntimeLib();
     final NestedSet<Artifact> staticRuntimeLinkInputs;
     final Artifact staticRuntimeLinkMiddleman;
 
-    if (staticRuntimeLibDep != null) {
-      staticRuntimeLinkInputs =
-          staticRuntimeLibDep.getProvider(FileProvider.class).getFilesToBuild();
+    if (staticRuntimeLib != null) {
+      staticRuntimeLinkInputs = staticRuntimeLib.getProvider(FileProvider.class).getFilesToBuild();
       if (!staticRuntimeLinkInputs.isEmpty()) {
         NestedSet<Artifact> staticRuntimeLinkMiddlemanSet =
             CompilationHelper.getAggregatingMiddleman(
-                ruleContext, purposePrefix + "static_runtime_link", staticRuntimeLibDep);
+                ruleContext, purposePrefix + "static_runtime_link", staticRuntimeLib);
         staticRuntimeLinkMiddleman =
             staticRuntimeLinkMiddlemanSet.isEmpty()
                 ? null
@@ -549,25 +537,14 @@
     }
 
     // Dynamic runtime inputs.
-    if (cppConfiguration.disableRuntimesFilegroups()
-        && !attributes.getDynamicRuntimesLibs().isEmpty()) {
-      ruleContext.ruleError(
-          "cc_toolchain.dynamic_runtime_libs attribute is removed, please use "
-              + "cc_toolchain.dynamic_runtime_lib (singular) instead. See "
-              + "https://github.com/bazelbuild/bazel/issues/6942 for details.");
-    }
-    TransitiveInfoCollection dynamicRuntimeLibDep =
-        attributes.getDynamicRuntimeLib() != null
-            ? attributes.getDynamicRuntimeLib()
-            : selectDep(
-                attributes.getDynamicRuntimesLibs(), toolchainInfo.getDynamicRuntimeLibsLabel());
+    TransitiveInfoCollection dynamicRuntimeLib = attributes.getDynamicRuntimeLib();
     NestedSet<Artifact> dynamicRuntimeLinkSymlinks;
     List<Artifact> dynamicRuntimeLinkInputs = new ArrayList<>();
     Artifact dynamicRuntimeLinkMiddleman;
-    if (dynamicRuntimeLibDep != null) {
+    if (dynamicRuntimeLib != null) {
       NestedSetBuilder<Artifact> dynamicRuntimeLinkSymlinksBuilder = NestedSetBuilder.stableOrder();
       for (Artifact artifact :
-          dynamicRuntimeLibDep.getProvider(FileProvider.class).getFilesToBuild()) {
+          dynamicRuntimeLib.getProvider(FileProvider.class).getFilesToBuild()) {
         if (CppHelper.SHARED_LIBRARY_FILETYPES.matches(artifact.getFilename())) {
           dynamicRuntimeLinkInputs.add(artifact);
           dynamicRuntimeLinkSymlinksBuilder.add(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
index bf33635..bac5f3a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcToolchainRule.java
@@ -15,7 +15,6 @@
 
 import static com.google.devtools.build.lib.packages.Attribute.attr;
 import static com.google.devtools.build.lib.packages.BuildType.LABEL;
-import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST;
 import static com.google.devtools.build.lib.packages.BuildType.LICENSE;
 import static com.google.devtools.build.lib.packages.BuildType.NODEP_LABEL;
 import static com.google.devtools.build.lib.syntax.Type.BOOLEAN;
@@ -225,8 +224,6 @@
         /* <!-- #BLAZE_RULE(cc_toolchain).ATTRIBUTE(static_runtime_lib) -->
         Static library artifact for the C++ runtime library (e.g. libstdc++.a).
 
-        <p>When specified, this will take precedence over 'static_runtime_libs'.</p>
-
         <p>This will be used when 'static_link_cpp_runtimes' feature is enabled, and we're linking
         dependencies statically.</p>
         <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
@@ -234,38 +231,10 @@
         /* <!-- #BLAZE_RULE(cc_toolchain).ATTRIBUTE(dynamic_runtime_lib) -->
         Dynamic library artifact for the C++ runtime library (e.g. libstdc++.so).
 
-        <p>When specified, this will take precedence over 'dynamic_runtime_libs'.</p>
-
         <p>This will be used when 'static_link_cpp_runtimes' feature is enabled, and we're linking
         dependencies dynamically.</p>
         <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
         .add(attr("dynamic_runtime_lib", LABEL).legacyAllowAnyFileType())
-        /* <!-- #BLAZE_RULE(cc_toolchain).ATTRIBUTE(static_runtime_libs) -->
-        Deprecated, use <code>static_runtime_lib</code>
-        (see <a href="https://github.com/bazelbuild/bazel/issues/6942">#6942</a>).
-        A collection of artifacts for static libraries for the C++ runtime library
-        (e.g. libstdc++.a).
-
-        <p>cc_toolchain will select one of these libraries based on the label from
-        crosstool_proto.static_runtimes_filegroup field.</p>
-
-        <p>This will be used when 'static_link_cpp_runtimes' feature is enabled, and we're linking
-        dependencies statically.</p>
-        <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
-        .add(attr("static_runtime_libs", LABEL_LIST).legacyAllowAnyFileType())
-        /* <!-- #BLAZE_RULE(cc_toolchain).ATTRIBUTE(dynamic_runtime_libs) -->
-        Deprecated, use <code>dynamic_runtime_lib</code>
-        (see <a href="https://github.com/bazelbuild/bazel/issues/6942">#6942</a>).
-        A collection of artifacts for dynamic libraries for the C++ runtime library
-        (e.g. libstdc++.so).
-
-        <p>cc_toolchain will select one of these libraries based on the label from
-        crosstool_proto.dynamic_runtimes_filegroup field.</p>
-
-        <p>This will be used when 'static_link_cpp_runtimes' feature is enabled, and we're linking
-        dependencies dynamically.</p>
-        <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
-        .add(attr("dynamic_runtime_libs", LABEL_LIST).legacyAllowAnyFileType())
         /* <!-- #BLAZE_RULE(cc_toolchain).ATTRIBUTE(module_map) -->
         Module map artifact to be used for modular builds.
         <!-- #END_BLAZE_RULE.ATTRIBUTE -->*/
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
index 77aebcb..a029c4d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -583,10 +583,6 @@
     return PathFragment.create(builtInSysroot);
   }
 
-  boolean disableRuntimesFilegroups() {
-    return cppOptions.disableRuntimesFilegroups;
-  }
-
   /**
    * Returns the value of the libc top-level directory (--grte_top) as specified on the command line
    */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index d965679..1127ecf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -758,21 +758,6 @@
   public boolean disableEmittingStaticLibgcc;
 
   @Option(
-      name = "incompatible_disable_runtimes_filegroups",
-      defaultValue = "false",
-      documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
-      effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.LOADING_AND_ANALYSIS},
-      metadataTags = {
-        OptionMetadataTag.INCOMPATIBLE_CHANGE,
-        OptionMetadataTag.TRIGGERED_BY_ALL_INCOMPATIBLE_CHANGES
-      },
-      help =
-          "If true, cc_toolchain.static_runtime_libs and cc_toolchain.dynamic_runtime_libs are "
-              + "replaced by cc_toolchain.static_runtime_lib and cc_toolchain.dynamic_runtime_lib "
-              + "(see https://github.com/bazelbuild/bazel/issues/6942)")
-  public boolean disableRuntimesFilegroups;
-
-  @Option(
       name = "incompatible_disable_crosstool_file",
       defaultValue = "false",
       documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
@@ -909,7 +894,6 @@
     host.disableGenruleCcToolchainDependency = disableGenruleCcToolchainDependency;
     host.disableEmittingStaticLibgcc = disableEmittingStaticLibgcc;
     host.disableDepsetInUserFlags = disableDepsetInUserFlags;
-    host.disableRuntimesFilegroups = disableRuntimesFilegroups;
     host.disableExpandIfAllAvailableInFlagSet = disableExpandIfAllAvailableInFlagSet;
     host.disableLegacyCcProvider = disableLegacyCcProvider;
     host.removeCpuCompilerCcToolchainAttributes = removeCpuCompilerCcToolchainAttributes;
diff --git a/src/test/shell/bazel/cc_flags_supplier_test.sh b/src/test/shell/bazel/cc_flags_supplier_test.sh
index 32ea4ed..905d8a5 100755
--- a/src/test/shell/bazel/cc_flags_supplier_test.sh
+++ b/src/test/shell/bazel/cc_flags_supplier_test.sh
@@ -77,10 +77,8 @@
     compiler_files = ":empty",
     cpu = "local",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
 )
 
diff --git a/tools/cpp/BUILD b/tools/cpp/BUILD
index 8644c36..f7048cd 100644
--- a/tools/cpp/BUILD
+++ b/tools/cpp/BUILD
@@ -116,10 +116,8 @@
     compiler_files = ":empty",
     cpu = "local",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 1,
     toolchain_config = ":local_linux",
@@ -150,10 +148,8 @@
     compiler_files = ":empty",
     cpu = "ppc",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 1,
     toolchain_config = ":local_linux",
@@ -180,10 +176,8 @@
     compiler_files = ":empty",
     cpu = "local",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 1,
     toolchain_config = ":local_linux",
@@ -210,10 +204,8 @@
     compiler_files = ":empty",
     cpu = "local",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 1,
     toolchain_config = ":local_linux",
@@ -242,10 +234,8 @@
     compiler_files = ":osx_wrapper",
     cpu = "darwin",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":osx_wrapper",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 0,
     toolchain_config = ":local_darwin",
@@ -280,10 +270,8 @@
     compiler_files = ":empty",
     cpu = "local",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 0,
     toolchain_config = ":local_freebsd",
@@ -318,10 +306,8 @@
     compiler_files = ":empty",
     cpu = "local",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 0,
     toolchain_config = ":local_windows_msys64",
@@ -356,10 +342,8 @@
     compiler_files = ":compile-x64_windows",
     cpu = "x64_windows",
     dwp_files = ":empty",
-    dynamic_runtime_libs = [":empty"],
     linker_files = ":empty",
     objcopy_files = ":empty",
-    static_runtime_libs = [":empty"],
     strip_files = ":empty",
     supports_param_files = 1,
     toolchain_config = ":vc_14_0_x64",