Remove GLOBAL_THINLTO build option

GLOBAL_THINLTO is now default, since it improves build speed, produces
more performant code and smaller binary. Remove the option to turn it
off since we no longer maintain that variation, and that simplifies the
logic (esp. for moving CFI builds to ThinLTO).

Also fixed a bug where ThinLTO is not propagated to its static deps on
non-default targets (32-bit or host).

Test: presubmit
Bug: 169004486
Change-Id: I31f41ba27c2b94a384d2ba5027049c307d6f4334
This commit is contained in:
Yi Kong 2023-10-09 19:49:45 +09:00
parent 0b6c4b7c08
commit 950c17435d

View file

@ -68,7 +68,7 @@ func (lto *lto) props() []interface{} {
func (lto *lto) begin(ctx BaseModuleContext) {
// First, determine the module independent default LTO mode.
ltoDefault := GlobalThinLTO(ctx)
ltoDefault := true
if ctx.Config().IsEnvTrue("DISABLE_LTO") {
ltoDefault = false
} else if lto.Never() {
@ -163,10 +163,6 @@ func (lto *lto) Never() bool {
return lto != nil && proptools.Bool(lto.Properties.Lto.Never)
}
func GlobalThinLTO(ctx android.BaseModuleContext) bool {
return !ctx.Config().IsEnvFalse("GLOBAL_THINLTO")
}
// Propagate lto requirements down from binaries
func ltoDepsMutator(mctx android.TopDownMutatorContext) {
if m, ok := mctx.Module().(*Module); ok {
@ -205,8 +201,6 @@ func ltoDepsMutator(mctx android.TopDownMutatorContext) {
// Create lto variants for modules that need them
func ltoMutator(mctx android.BottomUpMutatorContext) {
globalThinLTO := GlobalThinLTO(mctx)
if m, ok := mctx.Module().(*Module); ok && m.lto != nil {
// Create variations for LTO types required as static
// dependencies
@ -218,10 +212,10 @@ func ltoMutator(mctx android.BottomUpMutatorContext) {
variationNames = append(variationNames, "lto-none")
}
if globalThinLTO && !m.lto.Properties.LtoEnabled {
if !m.lto.Properties.LtoEnabled {
mctx.SetDependencyVariation("lto-none")
}
if !globalThinLTO && m.lto.Properties.LtoEnabled {
if m.lto.Properties.LtoEnabled {
mctx.SetDependencyVariation("lto-thin")
}