diff options
author | hlopko <hlopko@google.com> | 2018-03-21 10:32:43 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-21 10:34:42 -0700 |
commit | 961748593f9447ec4f8ff46f14ee4306a5a9574b (patch) | |
tree | 2d069a6e631d77a5454801bbb9cf196780d2bf4b | |
parent | a3ba00e61f81163f90b1edee4a076c7e7d877e4c (diff) |
Automated rollback of commit 3dab964407a2f1e12feb439d8507079bc06cb769.
*** Reason for rollback ***
Break bazel ci.
*** Original change description ***
Assume toolchain supportsDynamicLinker from presence of "dynamic_linking_mode" feature
Toolchains no longer have to provide linking_mode_flags { mode: DYNAMIC } to
state that they support dynamic linking mode. It is enough to provide a feature.
This is part of ongoing work to get rid of linking_mode_flags from the
CROSSTOOL.
RELNOTES: None.
PiperOrigin-RevId: 189928991
4 files changed, 1 insertions, 36 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java index 03a9f9d674..52bbd59450 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppToolchainInfo.java @@ -320,11 +320,7 @@ public final class CppToolchainInfo { this.supportsFission = supportsFission; this.supportsStartEndLib = supportsStartEndLib; this.supportsEmbeddedRuntimes = supportsEmbeddedRuntimes; - this.supportsDynamicLinker = - supportsDynamicLinker - || toolchainFeatures - .getActivatableNames() - .contains(CppRuleClasses.DYNAMIC_LINKING_MODE); + this.supportsDynamicLinker = supportsDynamicLinker; this.supportsInterfaceSharedObjects = supportsInterfaceSharedObjects; this.supportsGoldLinker = supportsGoldLinker; this.toolchainNeedsPic = toolchainNeedsPic; diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java index eb613ba2df..5010faf11d 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/BazelMockCcSupport.java @@ -85,7 +85,6 @@ public final class BazelMockCcSupport extends MockCcSupport { " toolchains = {", " 'local|compiler': ':cc-compiler-local',", " 'k8|compiler': ':cc-compiler-k8',", - " 'k8|compiler_no_dyn_linker': ':cc-no-dyn-compiler-k8',", " 'piii|compiler': ':cc-compiler-piii',", " 'darwin|compiler': ':cc-compiler-darwin',", " 'ios_x86_64|compiler': ':cc-compiler-ios_x86_64',", @@ -100,13 +99,6 @@ public final class BazelMockCcSupport extends MockCcSupport { " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", ")", - "cc_toolchain(name = 'cc-no-dyn-compiler-k8', all_files = ':empty', ", - " compiler_files = ':empty', cpu = 'k8', compiler = 'compiler_no_dyn_linker', ", - " libc = 'local', dwp_files = ':empty', dynamic_runtime_libs = [':empty'], ", - " ar_files = ':empty', as_files = ':empty', linker_files = ':empty',", - " module_map = 'crosstool.cppmap', supports_header_parsing = 1,", - " objcopy_files = ':empty', static_runtime_libs = [':empty'], strip_files = ':empty',", - ")", "cc_toolchain(name = 'cc-compiler-ppc', all_files = ':empty', compiler_files = ':empty',", " cpu = 'ppc', compiler = 'compiler', libc = 'local', dwp_files = ':empty',", " dynamic_runtime_libs = [':empty'], ", diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java index 81c86f9d9a..d55d3b53a6 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockCcSupport.java @@ -24,7 +24,6 @@ import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.cmdline.RepositoryName; import com.google.devtools.build.lib.rules.cpp.CppCompileAction; -import com.google.devtools.build.lib.rules.cpp.CppRuleClasses; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.vfs.PathFragment; @@ -129,9 +128,6 @@ public abstract class MockCcSupport { /** This feature will prevent bazel from patching the crosstool. */ public static final String NO_LEGACY_FEATURES_FEATURE = "feature { name: 'no_legacy_features' }"; - public static final String DYNAMIC_LINKING_MODE_FEATURE = - "feature { name: '" + CppRuleClasses.DYNAMIC_LINKING_MODE + "'}"; - /** Feature expected by the C++ rules when pic build is requested */ public static final String PIC_FEATURE = "" diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java index cfc288ab48..c4afac299f 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java @@ -912,23 +912,4 @@ public class CcToolchainTest extends BuildViewTestCase { (CcToolchainProvider) target.get(ToolchainInfo.PROVIDER); assertThat(toolchainProvider.getAbi()).isEqualTo("banana"); } - - @Test - public void testSupportsDynamicLinkerCheckFeatures() throws Exception { - writeDummyCcToolchain(); - - getAnalysisMock() - .ccSupport() - .setupCrosstool(mockToolsConfig, MockCcSupport.DYNAMIC_LINKING_MODE_FEATURE); - - // To make sure the toolchain doesn't define linking_mode_flags { mode: DYNAMIC } as that would - // also result in supportsDynamicLinker returning true - useConfiguration("--compiler=compiler_no_dyn_linker", "--cpu=k8"); - - ConfiguredTarget target = getConfiguredTarget("//a:b"); - CcToolchainProvider toolchainProvider = - (CcToolchainProvider) target.get(ToolchainInfo.PROVIDER); - - assertThat(toolchainProvider.supportsDynamicLinker()).isTrue(); - } } |