diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java index d866edcdb91985..cfb61b59a34f34 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java @@ -208,7 +208,6 @@ public Object getDefault(AttributeMap rule) { env.getToolsLabel(DEFAULT_COVERAGE_REPORT_GENERATOR_VALUE)))) // The target itself and run_under both run on the same machine. .add(attr(":run_under", LABEL).value(RUN_UNDER).skipPrereqValidatorCheck()) - .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET) .build(); } @@ -389,6 +388,7 @@ public RuleClass build(RuleClass.Builder builder, RuleDefinitionEnvironment env) attr("data", LABEL_LIST) .allowedFileTypes(FileTypeSet.ANY_FILE) .dontCheckConstraints()) + .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java index 0016b936738a10..955830d2444952 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/sh/BazelShRuleClasses.java @@ -26,7 +26,6 @@ import com.google.devtools.build.lib.packages.PredicateWithMessage; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; -import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed; import com.google.devtools.build.lib.util.FileTypeSet; import javax.annotation.Nullable; @@ -72,7 +71,6 @@ All other files required at runtime (whether scripts or data) belong in the .allowedRuleClasses("sh_library") .allowedRuleClassesWithWarning(ALLOWED_RULES_IN_DEPS_WITH_WARNING) .allowedFileTypes()) - .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java index f0be11cb83e203..572f0be31ba75f 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java +++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java @@ -762,6 +762,10 @@ public Builder(String name, RuleClassType type, boolean skylark, RuleClass... pa for (Attribute attribute : parent.getAttributes()) { String attrName = attribute.getName(); + if (attrName.equals(RuleClass.EXEC_COMPATIBLE_WITH_ATTR)) { + // Don't inherit: this will be re-created + continue; + } Preconditions.checkArgument( !attributes.containsKey(attrName) || attributes.get(attrName).equals(attribute), "Attribute %s is inherited multiple times in %s ruleclass", diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java index 9fa5ce2de2f2e6..6d2af27520d2a2 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleBaseRule.java @@ -29,7 +29,6 @@ import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; -import com.google.devtools.build.lib.packages.RuleClass.ExecutionPlatformConstraintsAllowed; import com.google.devtools.build.lib.util.FileTypeSet; /** @@ -226,7 +225,6 @@ public Object getDefault(AttributeMap rule) { .add(attr("heuristic_label_expansion", BOOLEAN).value(false)) .removeAttribute("data") .removeAttribute("deps") - .executionPlatformConstraintsAllowed(ExecutionPlatformConstraintsAllowed.PER_TARGET) .build(); }