aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/cpp
diff options
context:
space:
mode:
authorGravatar lberki <lberki@google.com>2018-05-23 05:18:00 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-23 05:19:21 -0700
commit7f51f112cb13495154babd1f645c394002396596 (patch)
treedcf750744239b8390505389789954f26b9f659bf /src/main/java/com/google/devtools/build/lib/rules/cpp
parentc1bada0b14b5bb8def73b23d29c9139a72224a14 (diff)
Add a flag to disallow LIPO to aid in the rollout of the removal of LIPO support.
RELNOTES: None. PiperOrigin-RevId: 197708692
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/cpp')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java9
2 files changed, 15 insertions, 0 deletions
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 568f418ad5..9b1417f003 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
@@ -240,6 +240,12 @@ public final class CppConfiguration extends BuildConfiguration.Fragment {
linkoptsBuilder.add("-Wl,--eh-frame-hdr");
}
+ if (cppOptions.getLipoMode() != LipoMode.OFF
+ && !cppOptions.convertLipoToThinLto
+ && !cppOptions.allowLipo) {
+ throw new InvalidConfigurationException("LIPO is disallowed");
+ }
+
return new CppConfiguration(
params.crosstoolTop,
params.crosstoolFile,
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 713dd2b242..0daf3c03d8 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
@@ -127,6 +127,15 @@ public class CppOptions extends FragmentOptions {
}
@Option(
+ name = "experimental_allow_lipo",
+ defaultValue = "true",
+ documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
+ effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
+ help = "Flag to roll out the removal of LIPO.")
+ public boolean allowLipo;
+
+ @Option(
name = "crosstool_top",
defaultValue = "@bazel_tools//tools/cpp:toolchain",
converter = LabelConverter.class,