From 395f2cfa8940fccd426d9bc830e4300e0076f407 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 24 Oct 2018 16:10:32 -0700 Subject: [PATCH] Move Ndk_abis from soong.config to soong.variables soong.config is not cleared between builds, which can cause problems when switching between an ndk build and a platform build. Bug: 118398924 Test: OUT_DIR=out_ndk DIST_DIR=dist build/soong/scripts/build-ndk-prebuilts.sh Change-Id: Ifc03a0c25f46625375cdda5723e4a09d7d8050d5 --- android/config.go | 7 +++++-- android/variable.go | 2 ++ cc/ndk_headers.go | 2 +- scripts/build-ndk-prebuilts.sh | 9 +++------ 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/android/config.go b/android/config.go index 0aee0e306..3b7b47782 100644 --- a/android/config.go +++ b/android/config.go @@ -41,7 +41,6 @@ const productVariablesFileName = "soong.variables" // config file. These will be included in the config struct. type FileConfigurableOptions struct { Mega_device *bool `json:",omitempty"` - Ndk_abis *bool `json:",omitempty"` Host_bionic *bool `json:",omitempty"` } @@ -299,7 +298,7 @@ func NewConfig(srcDir, buildDir string) (Config, error) { var archConfig []archConfig if Bool(config.Mega_device) { archConfig = getMegaDeviceConfig() - } else if Bool(config.Ndk_abis) { + } else if config.NdkAbis() { archConfig = getNdkAbisConfig() } @@ -862,6 +861,10 @@ func (c vendorConfig) IsSet(name string) bool { return ok } +func (c *config) NdkAbis() bool { + return Bool(c.productVariables.Ndk_abis) +} + func stringSlice(s *[]string) []string { if s != nil { return *s diff --git a/android/variable.go b/android/variable.go index 476171bfb..2eb990083 100644 --- a/android/variable.go +++ b/android/variable.go @@ -239,6 +239,8 @@ type productVariables struct { BoardPlatPrivateSepolicyDirs []string `json:",omitempty"` VendorVars map[string]map[string]string `json:",omitempty"` + + Ndk_abis *bool `json:",omitempty"` } func boolPtr(v bool) *bool { diff --git a/cc/ndk_headers.go b/cc/ndk_headers.go index cdf63d84c..a7d6e0481 100644 --- a/cc/ndk_headers.go +++ b/cc/ndk_headers.go @@ -134,7 +134,7 @@ func (m *headerModule) GenerateAndroidBuildActions(ctx android.ModuleContext) { // but keep them when doing regular platform build. // Ndk_abis property is only set to true with build/soong/scripts/build-ndk-prebuilts.sh // TODO: Revert this once MIPS is supported in NDK again. - if Bool(ctx.AConfig().Ndk_abis) && strings.Contains(ctx.ModuleName(), "mips") { + if ctx.Config().NdkAbis() && strings.Contains(ctx.ModuleName(), "mips") { return } diff --git a/scripts/build-ndk-prebuilts.sh b/scripts/build-ndk-prebuilts.sh index 7f6e2c9db..0143d1e8c 100755 --- a/scripts/build-ndk-prebuilts.sh +++ b/scripts/build-ndk-prebuilts.sh @@ -34,11 +34,6 @@ SOONG_OUT=${OUT_DIR}/soong SOONG_NDK_OUT=${OUT_DIR}/soong/ndk rm -rf ${SOONG_OUT} mkdir -p ${SOONG_OUT} -cat > ${SOONG_OUT}/soong.config << EOF -{ - "Ndk_abis": true -} -EOF # We only really need to set some of these variables, but soong won't merge this # with the defaults, so we need to write out all the defaults with our values @@ -63,7 +58,9 @@ cat > ${SOONG_OUT}/soong.variables << EOF ], "HostArch": "x86_64", "Malloc_not_svelte": false, - "Safestack": false + "Safestack": false, + + "Ndk_abis": true } EOF m --skip-make ${SOONG_OUT}/ndk.timestamp