From dd0e2c338f3b65458e130178a0f6ba270ce40fb4 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Tue, 20 Oct 2015 14:29:35 -0700 Subject: [PATCH] Add DeviceUsesClang to change clang default This is equivalent to USE_CLANG_PLATFORM_BUILD in the current build system. Change-Id: Ifaca0f2639871dac834ef603cfade695191cff11 --- cc/cc.go | 12 +++++++++--- common/config.go | 7 +++++++ common/variable.go | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/cc/cc.go b/cc/cc.go index a8b605117..147559ed0 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -495,8 +495,14 @@ func (c *CCBase) collectFlags(ctx common.AndroidModuleContext, toolchain Toolcha // TODO: debug flags.CFlags = append(flags.CFlags, c.Properties.Release.Cflags...) - if ctx.Host() && !ctx.ContainsProperty("clang") { - flags.Clang = true + if !ctx.ContainsProperty("clang") { + if ctx.Host() { + flags.Clang = true + } + + if ctx.Device() && ctx.AConfig().DeviceUsesClang() { + flags.Clang = true + } } if flags.Clang { @@ -1128,7 +1134,7 @@ func (c *CCLibrary) flags(ctx common.AndroidModuleContext, flags CCFlags) CCFlag libName := ctx.ModuleName() // GCC for Android assumes that -shared means -Bsymbolic, use -Wl,-shared instead sharedFlag := "-Wl,-shared" - if c.Properties.Clang || ctx.Host() { + if flags.Clang || ctx.Host() { sharedFlag = "-shared" } if ctx.Device() { diff --git a/common/config.go b/common/config.go index 1340db85e..fbd2be9e3 100644 --- a/common/config.go +++ b/common/config.go @@ -214,6 +214,13 @@ func (c *config) DeviceName() string { return *c.ProductVariables.DeviceName } +func (c *config) DeviceUsesClang() bool { + if c.ProductVariables.DeviceUsesClang != nil { + return *c.ProductVariables.DeviceUsesClang + } + return false +} + // DeviceOut returns the path to out directory for device targets func (c *config) DeviceOut() string { return filepath.Join(c.BuildDir(), "target/product", c.DeviceName()) diff --git a/common/variable.go b/common/variable.go index 61060e947..23a97a6d9 100644 --- a/common/variable.go +++ b/common/variable.go @@ -63,6 +63,7 @@ type productVariables struct { DeviceArchVariant *string `json:",omitempty"` DeviceCpuVariant *string `json:",omitempty"` DeviceAbi *[]string `json:",omitempty"` + DeviceUsesClang *bool `json:",omitempty"` DeviceSecondaryArch *string `json:",omitempty"` DeviceSecondaryArchVariant *string `json:",omitempty"` @@ -95,6 +96,7 @@ func (v *productVariables) SetDefaultConfig() { DeviceArch: stringPtr("arm64"), DeviceCpuVariant: stringPtr("denver64"), DeviceAbi: &[]string{"arm64-v8a"}, + DeviceUsesClang: boolPtr(true), DeviceSecondaryArch: stringPtr("arm"), DeviceSecondaryArchVariant: stringPtr("armv7-a-neon"), DeviceSecondaryCpuVariant: stringPtr("denver"),