aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
diff options
context:
space:
mode:
authorGravatar Greg Estren <gregce@google.com>2016-12-02 18:18:18 +0000
committerGravatar Kristina Chodorow <kchodorow@google.com>2016-12-02 19:09:13 +0000
commit7be6ec66422e23705a8d8345675ee4c15bad3882 (patch)
tree339746629468cd32102766df79e9165e540f51e0 /src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
parent8b5e2118719058d3784469d2312431dc44106dea (diff)
Add option to disable dynamic configs with LIPO.
New option --experimental_dynamic_configs=notrim_partial automatically switches to --experimental_dynamic_configs=off if any BuildOptions fragment sets useStaticConfigurationsOverride(). CppOptions implements this override for FDO/LIPO. -- PiperOrigin-RevId: 140864317 MOS_MIGRATED_REVID=140864317
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index 0af42a5aee..fbc8fb80fe 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -689,4 +689,14 @@ public class CppOptions extends FragmentOptions {
public LipoMode getLipoMode() {
return lipoMode;
}
+
+ /**
+ * FDO/LIPO is not yet compatible with dynamic configurations.
+ **/
+ @Override
+ public boolean useStaticConfigurationsOverride() {
+ // --lipo=binary is technically possible without FDO, even though it doesn't do anything.
+ return isFdo() || getLipoMode() == LipoMode.BINARY;
+ }
+
}