diff options
author | 2016-07-19 08:55:25 +0000 | |
---|---|---|
committer | 2016-07-19 18:11:27 +0000 | |
commit | 25e5995fc418a6430c822f71ac0e0418dfc1f34a (patch) | |
tree | 240918b5d6bbaaa825fc2b31e0ab07778a1ca6de /src/main/java/com/google | |
parent | 792a9d62bd71db530cb207eb6a71e1489a1cac4c (diff) |
Rollback of commit a2770334ea3f3111026eb3e1368586921468710c.
--
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.java | 51 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CcLinkingOutputs.java | 18 |
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. * |