diff options
Diffstat (limited to 'src/main/java/com')
4 files changed, 27 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java index 47bc2b0ed3..36aca5f7df 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java @@ -886,10 +886,12 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { ccCompilationInfoBuilder.setCcCompilationContext(ccCompilationContext); CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); - ccLinkingInfoBuilder.setCcDynamicLibrariesForRuntime( - new CcDynamicLibrariesForRuntime( - collectDynamicLibrariesForRuntimeArtifacts( - ruleContext, linkingOutputs.getDynamicLibrariesForRuntime()))); + if (cppConfiguration.enableCcDynamicLibrariesForRuntime()) { + ccLinkingInfoBuilder.setCcDynamicLibrariesForRuntime( + new CcDynamicLibrariesForRuntime( + collectDynamicLibrariesForRuntimeArtifacts( + ruleContext, linkingOutputs.getDynamicLibrariesForRuntime()))); + } builder .setFilesToBuild(filesToBuild) diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java index e2448cd425..2c0e64e638 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java @@ -531,10 +531,11 @@ public final class CcLinkingHelper { } CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); - ccLinkingInfoBuilder.setCcDynamicLibrariesForRuntime( - collectDynamicLibrariesForRuntimeArtifacts( - ccLinkingOutputs.getDynamicLibrariesForRuntime())); - + if (cppConfiguration.enableCcDynamicLibrariesForRuntime()) { + ccLinkingInfoBuilder.setCcDynamicLibrariesForRuntime( + collectDynamicLibrariesForRuntimeArtifacts( + ccLinkingOutputs.getDynamicLibrariesForRuntime())); + } CppConfiguration cppConfiguration = ruleContext.getFragment(CppConfiguration.class); boolean forcePic = cppConfiguration.forcePic(); ccLinkingInfoBuilder.setCcLinkParamsStore( 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 bfb6528ad2..375f735c72 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 @@ -1161,6 +1161,11 @@ public final class CppConfiguration extends BuildConfiguration.Fragment return cppOptions.useLLVMCoverageMapFormat; } + /** Returns true if the deprecated CcDynamicLibrariesForRuntime class should be used */ + public boolean enableCcDynamicLibrariesForRuntime() { + return cppOptions.enableCcDynamicLibrariesForRuntime; + } + private void checkForToolchainSkylarkApiAvailability() throws EvalException { if (!cppOptions.enableLegacyToolchainSkylarkApi) { throw new EvalException(null, "Information about the C++ toolchain API is not accessible " 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 0744f005d8..2ecb33e6d6 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 @@ -803,6 +803,17 @@ public class CppOptions extends FragmentOptions { + "breaking changes.") public boolean enableCcSkylarkApi; + @Option( + name = "experimental_enable_cc_dynlibs_for_runtime", + defaultValue = "true", + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS, OptionEffectTag.EAGERNESS_TO_EXIT}, + metadataTags = {OptionMetadataTag.EXPERIMENTAL}, + help = + "If false, Blaze will not propagate runtime libs through CcDynamicLibrariesForRuntime " + + "field of CcLinkingInfo. See b/111289526.") + public boolean enableCcDynamicLibrariesForRuntime; + @Override public FragmentOptions getHost() { CppOptions host = (CppOptions) getDefault(); |