diff options
author | 2018-05-22 02:59:35 -0700 | |
---|---|---|
committer | 2018-05-22 03:00:28 -0700 | |
commit | c2a86a6c06569e67a4b3271e9db4ee24da66b2f0 (patch) | |
tree | eb9ee5461881bf0db1621c4bc88d3c0190d274dd | |
parent | 2f11add4ab1a4eab986876c0059b4b0c08affa61 (diff) |
Rename CcLinkingOutputs.dynamicLibraries and executionDynamicLibraries
New names are dynamicLibrariesForLinking and
dynamicLibrariesForRuntime respectively. This is just a cleanup to make the
code more understandable.
RELNOTES: None.
PiperOrigin-RevId: 197535811
4 files changed, 46 insertions, 28 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 647fa911eb..a9ccb7a46a 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 @@ -122,7 +122,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { } if (linkCompileOutputSeparately) { builder.addArtifacts( - LinkerInputs.toLibraryArtifacts(ccLibraryLinkingOutputs.getExecutionDynamicLibraries())); + LinkerInputs.toLibraryArtifacts(ccLibraryLinkingOutputs.getDynamicLibrariesForRuntime())); } // For cc_binary and cc_test rules, there is an implicit dependency on // the malloc library package, which is specified by the "malloc" attribute. @@ -585,7 +585,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { // Either link in the .o files generated for the sources of this target or link in the // generated dynamic library they are compiled into. if (linkCompileOutputSeparately) { - for (LibraryToLink library : linkingOutputs.getDynamicLibraries()) { + for (LibraryToLink library : linkingOutputs.getDynamicLibrariesForLinking()) { builder.addLibrary(library); } } else { @@ -904,7 +904,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { ccLinkingInfoBuilder.setCcExecutionDynamicLibraries( new CcExecutionDynamicLibraries( collectExecutionDynamicLibraryArtifacts( - ruleContext, linkingOutputs.getExecutionDynamicLibraries()))); + ruleContext, linkingOutputs.getDynamicLibrariesForRuntime()))); builder .setFilesToBuild(filesToBuild) @@ -915,7 +915,7 @@ public abstract class CcBinary implements RuleConfiguredTargetFactory { CcNativeLibraryProvider.class, new CcNativeLibraryProvider( collectTransitiveCcNativeLibraries( - ruleContext, linkingOutputs.getDynamicLibraries()))) + ruleContext, linkingOutputs.getDynamicLibrariesForLinking()))) .addProvider(InstrumentedFilesProvider.class, instrumentedFilesProvider) .addProvider( CppDebugFileProvider.class, diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java index e8df81b7bb..f429affa17 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java @@ -308,9 +308,10 @@ public abstract class CcLibrary implements RuleConfiguredTargetFactory { filesBuilder.addAll(LinkerInputs.toLibraryArtifacts(linkedLibraries.getPicStaticLibraries())); if (!featureConfiguration.isEnabled(CppRuleClasses.TARGETS_WINDOWS)) { - filesBuilder.addAll(LinkerInputs.toNonSolibArtifacts(linkedLibraries.getDynamicLibraries())); filesBuilder.addAll( - LinkerInputs.toNonSolibArtifacts(linkedLibraries.getExecutionDynamicLibraries())); + LinkerInputs.toNonSolibArtifacts(linkedLibraries.getDynamicLibrariesForLinking())); + filesBuilder.addAll( + LinkerInputs.toNonSolibArtifacts(linkedLibraries.getDynamicLibrariesForRuntime())); } CcLinkingOutputs linkingOutputs = linkingInfo.getCcLinkingOutputs(); 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 8deebe314f..2ef3fecd4b 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 @@ -140,9 +140,10 @@ public final class CcLinkingHelper { .addAll(LinkerInputs.toLibraryArtifacts(linkingOutputs.getPicStaticLibraries())); if (addDynamicLibraries) { filesBuilder - .addAll(LinkerInputs.toNonSolibArtifacts(linkingOutputs.getDynamicLibraries())) .addAll( - LinkerInputs.toNonSolibArtifacts(linkingOutputs.getExecutionDynamicLibraries())); + LinkerInputs.toNonSolibArtifacts(linkingOutputs.getDynamicLibrariesForLinking())) + .addAll( + LinkerInputs.toNonSolibArtifacts(linkingOutputs.getDynamicLibrariesForRuntime())); } } @@ -542,7 +543,7 @@ public final class CcLinkingHelper { CcLinkingInfo.Builder ccLinkingInfoBuilder = CcLinkingInfo.Builder.create(); ccLinkingInfoBuilder.setCcRunfiles(new CcRunfiles(cppStaticRunfiles, cppSharedRunfiles)); ccLinkingInfoBuilder.setCcExecutionDynamicLibraries( - collectExecutionDynamicLibraryArtifacts(ccLinkingOutputs.getExecutionDynamicLibraries())); + collectExecutionDynamicLibraryArtifacts(ccLinkingOutputs.getDynamicLibrariesForRuntime())); CppConfiguration cppConfiguration = ruleContext.getFragment(CppConfiguration.class); boolean forcePic = cppConfiguration.forcePic(); @@ -652,7 +653,7 @@ public final class CcLinkingHelper { || (ccLinkingOutputs.getStaticLibraries().isEmpty() && ccLinkingOutputs.getPicStaticLibraries().isEmpty())) { builder.addExecutionDynamicLibraries( - LinkerInputs.toLibraryArtifacts(ccLinkingOutputs.getExecutionDynamicLibraries())); + LinkerInputs.toLibraryArtifacts(ccLinkingOutputs.getDynamicLibrariesForRuntime())); } builder.addLinkOpts(linkopts); builder.addNonCodeInputs(nonCodeLinkerInputs); @@ -663,7 +664,7 @@ public final class CcLinkingHelper { private NestedSet<LinkerInput> collectNativeCcLibraries(CcLinkingOutputs ccLinkingOutputs) { NestedSetBuilder<LinkerInput> result = NestedSetBuilder.linkOrder(); - result.addAll(ccLinkingOutputs.getDynamicLibraries()); + result.addAll(ccLinkingOutputs.getDynamicLibrariesForLinking()); for (CcNativeLibraryProvider dep : AnalysisUtils.getProviders(deps, CcNativeLibraryProvider.class)) { result.addTransitive(dep.getTransitiveCcNativeLibraries()); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java index 39e651bbdb..753c40e960 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java @@ -39,18 +39,31 @@ public class CcLinkingOutputs { private final ImmutableList<LibraryToLink> picStaticLibraries; - private final ImmutableList<LibraryToLink> dynamicLibraries; + /** + * Holds interface dynamic libraries if the toolchain supports them, full dynamic libraries + * otherwise. + * + * <p>These are what dependants want to link against. We put these as inputs to the C++ link + * action. + */ + private final ImmutableList<LibraryToLink> dynamicLibrariesForLinking; - private final ImmutableList<LibraryToLink> executionDynamicLibraries; + /** + * Holds dynamic libraries even when the toolchain supports interface libraries. + * + * <p>These are what binaries load at runtime. We put these into runfiles. + */ + private final ImmutableList<LibraryToLink> dynamicLibrariesForRuntime; - private CcLinkingOutputs(ImmutableList<LibraryToLink> staticLibraries, + private CcLinkingOutputs( + ImmutableList<LibraryToLink> staticLibraries, ImmutableList<LibraryToLink> picStaticLibraries, - ImmutableList<LibraryToLink> dynamicLibraries, - ImmutableList<LibraryToLink> executionDynamicLibraries) { + ImmutableList<LibraryToLink> dynamicLibrariesForLinking, + ImmutableList<LibraryToLink> dynamicLibrariesForRuntime) { this.staticLibraries = staticLibraries; this.picStaticLibraries = picStaticLibraries; - this.dynamicLibraries = dynamicLibraries; - this.executionDynamicLibraries = executionDynamicLibraries; + this.dynamicLibrariesForLinking = dynamicLibrariesForLinking; + this.dynamicLibrariesForRuntime = dynamicLibrariesForRuntime; } public ImmutableList<LibraryToLink> getStaticLibraries() { @@ -61,12 +74,12 @@ public class CcLinkingOutputs { return picStaticLibraries; } - public ImmutableList<LibraryToLink> getDynamicLibraries() { - return dynamicLibraries; + public ImmutableList<LibraryToLink> getDynamicLibrariesForLinking() { + return dynamicLibrariesForLinking; } - public ImmutableList<LibraryToLink> getExecutionDynamicLibraries() { - return executionDynamicLibraries; + public ImmutableList<LibraryToLink> getDynamicLibrariesForRuntime() { + return dynamicLibrariesForRuntime; } /** @@ -76,7 +89,10 @@ public class CcLinkingOutputs { public ImmutableSetMultimap<String, LibraryToLink> getLibrariesByIdentifier() { return getLibrariesByIdentifier( Iterables.concat( - staticLibraries, picStaticLibraries, dynamicLibraries, executionDynamicLibraries)); + staticLibraries, + picStaticLibraries, + dynamicLibrariesForLinking, + dynamicLibrariesForRuntime)); } /** @@ -149,10 +165,10 @@ public class CcLinkingOutputs { candidates.addAll(staticLibraries); candidates.addAll(picStaticLibraries); } - candidates.addAll(forRunfiles ? executionDynamicLibraries : dynamicLibraries); + candidates.addAll(forRunfiles ? dynamicLibrariesForRuntime : dynamicLibrariesForLinking); } else { - // First choice is the dynamicLibraries. - candidates.addAll(forRunfiles ? executionDynamicLibraries : dynamicLibraries); + // First choice is the dynamic libraries. + candidates.addAll(forRunfiles ? dynamicLibrariesForRuntime : dynamicLibrariesForLinking); if (preferPic) { // Second choice is the staticPicLibraries (at least they're PIC, so we won't get a // link error). @@ -221,8 +237,8 @@ public class CcLinkingOutputs { public Builder merge(CcLinkingOutputs outputs) { staticLibraries.addAll(outputs.getStaticLibraries()); picStaticLibraries.addAll(outputs.getPicStaticLibraries()); - dynamicLibraries.addAll(outputs.getDynamicLibraries()); - executionDynamicLibraries.addAll(outputs.getExecutionDynamicLibraries()); + dynamicLibraries.addAll(outputs.getDynamicLibrariesForLinking()); + executionDynamicLibraries.addAll(outputs.getDynamicLibrariesForRuntime()); return this; } |