diff --git a/runtime/executor/targets.bzl b/runtime/executor/targets.bzl index 81d0a58667f..902dcc7ddc3 100644 --- a/runtime/executor/targets.bzl +++ b/runtime/executor/targets.bzl @@ -28,6 +28,14 @@ def _program_preprocessor_flags(): fail("executorch.enable_program_verification must be one of 'true' or 'false'; saw '" + enable_verification + "'") +def _program_lto_flags(aten_mode): + if runtime.is_oss or aten_mode: + return [] + return select({ + "DEFAULT": [], + "fbsource//xplat/executorch/tools/buck/constraints:executorch-lto-enabled": ["-flto=thin"], + }) + def define_common_targets(): """Defines targets that should be shared between fbcode and xplat. @@ -107,7 +115,8 @@ def define_common_targets(): compiler_flags = select({ "ovr_config//os:windows": [], "DEFAULT" :["-Wno-error=deprecated-declarations"] - }), + }) + _program_lto_flags(aten_mode), + exported_linker_flags = _program_lto_flags(aten_mode), preprocessor_flags = _program_preprocessor_flags(), exported_deps = [ ":memory_manager", diff --git a/tools/buck/constraints/BUCK b/tools/buck/constraints/BUCK index c4fe2e1c9cc..975f89dde6e 100644 --- a/tools/buck/constraints/BUCK +++ b/tools/buck/constraints/BUCK @@ -75,6 +75,14 @@ fb_native.constraint_value( visibility = ["PUBLIC"], ) +fb_native.config_setting( + name = "executorch-lto-enabled", + values = { + "executorch.enable_lto": "true", + }, + visibility = ["PUBLIC"], +) + fb_native.config_setting( name = "executorch-program-verification-disabled", constraint_values = [