diff options
author | 2025-03-11 16:45:10 -0700 | |
---|---|---|
committer | 2025-03-11 16:45:10 -0700 | |
commit | 77bb6dee6929e915f3abbe7a164e3f50ffbb7e52 (patch) | |
tree | 03b95d264c2e99a94a0dc3afa04454ac175829f3 | |
parent | 7ed094ef25e59df953b422f011eaac8bb1c1eba1 (diff) |
Allow customizing stripping behavior with product variable
aosp/3530072 made the default for host modules be to not strip them,
but that increases the size of our build tools prebuilts. Add a flag
that can be enabled on the build-tools build.
Test: Manually
Change-Id: I48173a52fe1a7068731ce0aca2367a0ebee0d068
-rw-r--r-- | android/config.go | 5 | ||||
-rw-r--r-- | android/variable.go | 2 | ||||
-rw-r--r-- | cc/strip.go | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/android/config.go b/android/config.go index 9ccd09990..2a4b9272b 100644 --- a/android/config.go +++ b/android/config.go @@ -200,6 +200,11 @@ func (c Config) ReleaseAconfigValueSets() []string { return c.config.productVariables.ReleaseAconfigValueSets } +// If native modules should have symbols stripped by default. Default false, enabled for build tools +func (c Config) StripByDefault() bool { + return proptools.Bool(c.config.productVariables.StripByDefault) +} + func (c Config) ReleaseAconfigExtraReleaseConfigs() []string { result := []string{} if val, ok := c.config.productVariables.BuildFlags["RELEASE_ACONFIG_EXTRA_RELEASE_CONFIGS"]; ok { diff --git a/android/variable.go b/android/variable.go index 853d8efb7..9905b77f9 100644 --- a/android/variable.go +++ b/android/variable.go @@ -554,6 +554,8 @@ type ProductVariables struct { OdmManifestFiles []string `json:",omitempty"` UseSoongNoticeXML *bool `json:",omitempty"` + + StripByDefault *bool `json:",omitempty"` } type PartitionQualifiedVariablesType struct { diff --git a/cc/strip.go b/cc/strip.go index 32ea38df1..42c9137b7 100644 --- a/cc/strip.go +++ b/cc/strip.go @@ -52,7 +52,7 @@ type Stripper struct { func (stripper *Stripper) NeedsStrip(actx android.ModuleContext) bool { forceDisable := Bool(stripper.StripProperties.Strip.None) // Strip is enabled by default for device variants. - defaultEnable := actx.Device() + defaultEnable := actx.Device() || actx.Config().StripByDefault() forceEnable := Bool(stripper.StripProperties.Strip.All) || Bool(stripper.StripProperties.Strip.Keep_symbols) || Bool(stripper.StripProperties.Strip.Keep_symbols_and_debug_frame) |