aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-13 20:10:42 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-07-14 11:12:53 +0000
commit303b687622bd16e5dec72ad4f503047ae91f45ba (patch)
treef84d87d57afcbcc70f19756b27240565e50b6556 /src/main/java/com/google/devtools/build/lib/rules
parente9fa15d59aac9f72daea1af12ef4a6be420a3f8a (diff)
Add host/target feature support for ThinLTO
ThinLTO isn't fully supported for host builds, in order to handle this add support for enabling either a 'host' or 'target' feature in the configuration. The thin_lto feature will require the new 'target' configuration. Companion crosstool change: unknown commit. -- MOS_MIGRATED_REVID=127350506
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CcCommon.java17
1 files changed, 14 insertions, 3 deletions
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 a4cecb798e..684ac7a062 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
@@ -501,6 +501,14 @@ public final class CcCommon {
withBaselineCoverage);
}
+ private static String getHostOrNonHostFeature(RuleContext ruleContext) {
+ if (ruleContext.getConfiguration().isHostConfiguration()) {
+ return "host";
+ } else {
+ return "nonhost";
+ }
+ }
+
/**
* Creates the feature configuration for a given rule.
*
@@ -530,9 +538,12 @@ public final class CcCommon {
}
Set<String> unsupportedFeatures = unsupportedFeaturesBuilder.build();
ImmutableSet.Builder<String> requestedFeatures = ImmutableSet.builder();
- for (String feature : Iterables.concat(
- ImmutableSet.of(toolchain.getCompilationMode().toString()), DEFAULT_FEATURES,
- ruleContext.getFeatures())) {
+ for (String feature :
+ Iterables.concat(
+ ImmutableSet.of(toolchain.getCompilationMode().toString()),
+ ImmutableSet.of(getHostOrNonHostFeature(ruleContext)),
+ DEFAULT_FEATURES,
+ ruleContext.getFeatures())) {
if (!unsupportedFeatures.contains(feature)) {
requestedFeatures.add(feature);
}