aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Tobias Werth <twerth@google.com>2016-07-19 08:55:25 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-07-19 18:11:27 +0000
commit25e5995fc418a6430c822f71ac0e0418dfc1f34a (patch)
tree240918b5d6bbaaa825fc2b31e0ab07778a1ca6de /src/main/java/com/google
parent792a9d62bd71db530cb207eb6a71e1489a1cac4c (diff)
-- MOS_MIGRATED_REVID=127807675
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java51
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java18
2 files changed, 7 insertions, 62 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
index c43404e3b9..d6b6a2b2f1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcLibraryHelper.java
@@ -15,7 +15,6 @@
package com.google.devtools.build.lib.rules.cpp;
import com.google.common.base.Function;
-import com.google.common.base.Joiner;
import com.google.common.base.Predicates;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
@@ -914,50 +913,14 @@ public final class CcLibraryHelper {
CcLinkingOutputs originalLinkingOutputs = ccLinkingOutputs;
if (!(
staticLibraries.isEmpty() && picStaticLibraries.isEmpty() && dynamicLibraries.isEmpty())) {
-
- CcLinkingOutputs.Builder newOutputsBuilder = new CcLinkingOutputs.Builder();
- if (!ccOutputs.isEmpty()) {
- // Add the linked outputs of this rule iff we had anything to put in them, but then
- // make sure we're not colliding with some library added from the inputs.
- newOutputsBuilder.merge(originalLinkingOutputs);
- Iterable<LibraryToLink> allLibraries =
- Iterables.concat(staticLibraries, picStaticLibraries, dynamicLibraries);
- for (LibraryToLink precompiledLibrary : allLibraries) {
- List<LibraryToLink> matchingLibs =
- originalLinkingOutputs.getLibrariesWithSameIdentifierAs(precompiledLibrary);
- if (!matchingLibs.isEmpty()) {
- Iterable<String> matchingLibArtifactNames =
- Iterables.transform(
- matchingLibs,
- new Function<LibraryToLink, String>() {
- @Override
- public String apply(LibraryToLink input) {
- return input.getOriginalLibraryArtifact().getFilename();
- }
- });
- ruleContext.ruleError(
- "Can't put "
- + precompiledLibrary.getArtifact().getFilename()
- + " into the srcs of a "
- + ruleContext.getRuleClassNameForLogging()
- + " with the same name ("
- + ruleContext.getRule().getName()
- + ") which also contains other code or objects to link; it shares a name with "
- + Joiner.on(", ").join(matchingLibArtifactNames)
- + " (output compiled and linked from the non-library sources of this rule), "
- + "which could cause confusion");
- }
- }
- }
-
// Merge the pre-compiled libraries (static & dynamic) into the linker outputs.
- ccLinkingOutputs =
- newOutputsBuilder
- .addStaticLibraries(staticLibraries)
- .addPicStaticLibraries(picStaticLibraries)
- .addDynamicLibraries(dynamicLibraries)
- .addExecutionDynamicLibraries(dynamicLibraries)
- .build();
+ ccLinkingOutputs = new CcLinkingOutputs.Builder()
+ .merge(ccLinkingOutputs)
+ .addStaticLibraries(staticLibraries)
+ .addPicStaticLibraries(picStaticLibraries)
+ .addDynamicLibraries(dynamicLibraries)
+ .addExecutionDynamicLibraries(dynamicLibraries)
+ .build();
}
DwoArtifactsCollector dwoArtifacts =
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 aab459989c..9d2ef270cf 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
@@ -69,24 +69,6 @@ public class CcLinkingOutputs {
}
/**
- * Returns all libraries in this CcLinkingOutputs with the same library identifier - i.e., those
- * which would be considered different forms of the same library by getPreferredLibrary.
- */
- public List<LibraryToLink> getLibrariesWithSameIdentifierAs(LibraryToLink input) {
- Iterable<LibraryToLink> allLibraries =
- Iterables.concat(
- staticLibraries, picStaticLibraries, dynamicLibraries, executionDynamicLibraries);
- ImmutableList.Builder<LibraryToLink> result = new ImmutableList.Builder<>();
- for (LibraryToLink library : allLibraries) {
- if (libraryIdentifierOf(library.getOriginalLibraryArtifact())
- .equals(libraryIdentifierOf(input.getOriginalLibraryArtifact()))) {
- result.add(library);
- }
- }
- return result.build();
- }
-
- /**
* Add the ".a", ".pic.a" and/or ".so" files in appropriate order of preference depending on the
* link preferences.
*