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