Specify the API level via the triple instead of __ANDROID_API__.

Clang derives the value of __ANDROID_API__ from the triple these days. In a
future version of clang I plan to start making the behaviour of the HWASAN pass
dependent on the API level in the triple, so it's going to need to be accurate.

Test: walleye-userdebug boots
Change-Id: Ie5e36b5c8f6dcda084cc12b1160abbdf94765174
This commit is contained in:
Peter Collingbourne 2019-07-22 16:36:06 -07:00
parent 6edff69513
commit b0e6143b9b
2 changed files with 13 additions and 20 deletions

View File

@ -17,6 +17,7 @@ package cc
import (
"fmt"
"path/filepath"
"strconv"
"strings"
"github.com/google/blueprint/proptools"
@ -308,27 +309,10 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
flags.SystemIncludeFlags = append(flags.SystemIncludeFlags,
"-isystem "+getCurrentIncludePath(ctx).String(),
"-isystem "+getCurrentIncludePath(ctx).Join(ctx, config.NDKTriple(tc)).String())
// TODO: Migrate to API suffixed triple?
// Traditionally this has come from android/api-level.h, but with the
// libc headers unified it must be set by the build system since we
// don't have per-API level copies of that header now.
version := ctx.sdkVersion()
if version == "current" {
version = "__ANDROID_API_FUTURE__"
}
flags.GlobalFlags = append(flags.GlobalFlags,
"-D__ANDROID_API__="+version)
}
if ctx.useVndk() {
// sdkVersion() returns VNDK version for vendor modules.
version := ctx.sdkVersion()
if version == "current" {
version = "__ANDROID_API_FUTURE__"
}
flags.GlobalFlags = append(flags.GlobalFlags,
"-D__ANDROID_API__="+version, "-D__ANDROID_VNDK__")
flags.GlobalFlags = append(flags.GlobalFlags, "-D__ANDROID_VNDK__")
}
if ctx.inRecovery() {
@ -364,6 +348,15 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
flags.LdFlags = config.ClangFilterUnknownCflags(flags.LdFlags)
target := "-target " + tc.ClangTriple()
if ctx.Os().Class == android.Device {
version := ctx.sdkVersion()
if version == "" || version == "current" {
target += strconv.Itoa(android.FutureApiLevel)
} else {
target += version
}
}
gccPrefix := "-B" + config.ToolPath(tc)
flags.CFlags = append(flags.CFlags, target, gccPrefix)

View File

@ -249,9 +249,9 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
}
clangPrefix := secondPrefix + "CLANG_" + typePrefix
clangExtras := "-target " + toolchain.ClangTriple()
clangExtras += " -B" + config.ToolPath(toolchain)
clangExtras := "-B" + config.ToolPath(toolchain)
ctx.Strict(clangPrefix+"TRIPLE", toolchain.ClangTriple())
ctx.Strict(clangPrefix+"GLOBAL_CFLAGS", strings.Join([]string{
toolchain.ClangCflags(),
"${config.CommonClangGlobalCflags}",