diff options
author | Googler <noreply@google.com> | 2016-07-13 20:10:42 +0000 |
---|---|---|
committer | Kristina Chodorow <kchodorow@google.com> | 2016-07-14 11:12:53 +0000 |
commit | 303b687622bd16e5dec72ad4f503047ae91f45ba (patch) | |
tree | f84d87d57afcbcc70f19756b27240565e50b6556 /src/main/java/com/google/devtools/build/lib/rules | |
parent | e9fa15d59aac9f72daea1af12ef4a6be420a3f8a (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.java | 17 |
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); } |