From 0150e7fa5963fa569d9795c02fd3afe3c52ff30c Mon Sep 17 00:00:00 2001 From: Yun Peng Date: Fri, 10 Jun 2016 11:34:23 +0000 Subject: Rollback of commit 828a9e2f167db8c4debca6e00ee37dd030849c2f. *** Reason for rollback *** -- MOS_MIGRATED_REVID=124549894 --- .../devtools/build/lib/rules/cpp/CcCommon.java | 1 - .../build/lib/rules/cpp/CppCompileAction.java | 16 +++++++++++ .../lib/rules/cpp/CppCompileActionBuilder.java | 4 --- .../build/lib/rules/cpp/CppConfiguration.java | 32 ---------------------- .../devtools/build/lib/rules/cpp/CppModel.java | 11 +------- .../build/lib/rules/cpp/CppRuleClasses.java | 5 ---- .../lib/rules/objc/ExperimentalObjcLibrary.java | 1 - 7 files changed, 17 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java index 8ccd6e1dea..a83f9b85ec 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java @@ -83,7 +83,6 @@ public final class CcCommon { * Features we request to enable unless a rule explicitly doesn't support them. */ private static final ImmutableSet DEFAULT_FEATURES = ImmutableSet.of( - CppRuleClasses.DEPENDENCY_FILE, CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET, CppRuleClasses.RANDOM_SEED, CppRuleClasses.MODULE_MAPS, diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java index b2ca7a23b7..86ab21f09a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java @@ -1340,6 +1340,22 @@ public class CppCompileAction extends AbstractAction } } + // Enable .d file generation. + if (dotdFile != null) { + // Gcc options: + // -MD turns on .d file output as a side-effect (doesn't imply -E) + // -MM[D] enables user includes only, not system includes + // -MF specifies the dotd file name + // Issues: + // -M[M] alone subverts actual .o output (implies -E) + // -M[M]D alone breaks some of the .d naming assumptions + // This combination gets user and system includes with specified name: + // -MD -MF + options.add("-MD"); + options.add("-MF"); + options.add(dotdFile.getSafeExecPath().getPathString()); + } + if (!featureConfiguration.isEnabled("compile_action_flags_in_flag_set")) { if (FileType.contains(outputFile, CppFileTypes.ASSEMBLER, CppFileTypes.PIC_ASSEMBLER)) { options.add("-S"); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java index 015d76d6a9..1997dc84a2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileActionBuilder.java @@ -426,10 +426,6 @@ public class CppCompileActionBuilder { return this; } - public DotdFile getDotdFile() { - return this.dotdFile; - } - public CppCompileActionBuilder setGcnoFile(Artifact gcnoFile) { this.gcnoFile = gcnoFile; return this; diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index 3c4ac5f3c0..07e87246ee 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java @@ -692,38 +692,6 @@ public class CppConfiguration extends BuildConfiguration.Fragment { return toolchain; } try { - if (!features.contains("dependency_file")) { - // Gcc options: - // -MD turns on .d file output as a side-effect (doesn't imply -E) - // -MM[D] enables user includes only, not system includes - // -MF specifies the dotd file name - // Issues: - // -M[M] alone subverts actual .o output (implies -E) - // -M[M]D alone breaks some of the .d naming assumptions - // This combination gets user and system includes with specified name: - // -MD -MF - TextFormat.merge("" - + "feature {" - + " name: 'dependency_file'" - + " flag_set {" - + " action: 'assemble'" - + " action: 'preprocess-assemble'" - + " action: 'c-compile'" - + " action: 'c++-compile'" - + " action: 'c++-module-compile'" - + " action: 'objc-compile'" - + " action: 'objc++-compile'" - + " expand_if_all_available: 'dependency_file'" - + " flag_group {" - + " flag: '-MD'" - + " flag: '-MF'" - + " flag: '%{dependency_file}'" - + " }" - + " }" - + "}", - toolchainBuilder); - } - if (!features.contains("random_seed")) { // GCC and Clang give randomized names to symbols which are defined in // an anonymous namespace but have external linkage. To make diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java index 2569b4d9ea..1f2d45f6a2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModel.java @@ -29,7 +29,6 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.rules.cpp.CcCompilationOutputs.Builder; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.FeatureConfiguration; import com.google.devtools.build.lib.rules.cpp.CcToolchainFeatures.Variables.VariablesExtension; -import com.google.devtools.build.lib.rules.cpp.CppCompileAction.DotdFile; import com.google.devtools.build.lib.rules.cpp.Link.LinkStaticness; import com.google.devtools.build.lib.rules.cpp.Link.LinkTargetType; import com.google.devtools.build.lib.rules.cpp.LinkerInputs.LibraryToLink; @@ -370,11 +369,10 @@ public final class CppModel { CppCompilationContext builderContext = builder.getContext(); CppModuleMap cppModuleMap = builderContext.getCppModuleMap(); - Artifact sourceFile = builder.getSourceFile(); Artifact outputFile = builder.getOutputFile(); String realOutputFilePath; - buildVariables.addVariable("source_file", sourceFile.getExecPathString()); + buildVariables.addVariable("source_file", builder.getSourceFile().getExecPathString()); buildVariables.addVariable("output_file", outputFile.getExecPathString()); if (fake) { @@ -393,13 +391,6 @@ public final class CppModel { buildVariables.addVariable("output_object_file", realOutputFilePath); } - DotdFile dotdFile = CppFileTypes.mustProduceDotdFile(sourceFile.getPath().toString()) - ? Preconditions.checkNotNull(builder.getDotdFile()) : null; - // Set dependency_file to enable .d file generation. - if (dotdFile != null) { - buildVariables.addVariable("dependency_file", dotdFile.getSafeExecPath().getPathString()); - } - if (featureConfiguration.isEnabled(CppRuleClasses.MODULE_MAPS) && cppModuleMap != null) { // If the feature is enabled and cppModuleMap is null, we are about to fail during analysis // in any case, but don't crash. diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java index d8987bb8ec..3a2add3f32 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppRuleClasses.java @@ -108,11 +108,6 @@ public class CppRuleClasses { */ public static final String COMPILE_ACTION_FLAGS_IN_FLAG_SET = "compile_action_flags_in_flag_set"; - /** - * A string constant for the dependency_file feature. This feature generates the .d file. - */ - public static final String DEPENDENCY_FILE = "dependency_file"; - /** * A string constant for the module_map_home_cwd feature. */ diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java index e6a720b619..deee358f1f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ExperimentalObjcLibrary.java @@ -169,7 +169,6 @@ public class ExperimentalObjcLibrary implements RuleConfiguredTargetFactory { // We create a module map by default to allow for swift interop. activatedCrosstoolSelectables.add(CppRuleClasses.MODULE_MAPS); activatedCrosstoolSelectables.add(CppRuleClasses.COMPILE_ACTION_FLAGS_IN_FLAG_SET); - activatedCrosstoolSelectables.add(CppRuleClasses.DEPENDENCY_FILE); return toolchain.getFeatures().getFeatureConfiguration(activatedCrosstoolSelectables.build()); } -- cgit v1.2.3