aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar hlopko <hlopko@google.com>2018-05-22 02:59:35 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-22 03:00:28 -0700
commitc2a86a6c06569e67a4b3271e9db4ee24da66b2f0 (patch)
treeeb9ee5461881bf0db1621c4bc88d3c0190d274dd
parent2f11add4ab1a4eab986876c0059b4b0c08affa61 (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
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcBinary.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibrary.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingHelper.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java50
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;
}