aboutsummaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc')
-rw-r--r--cc/cc.go13
-rw-r--r--cc/compiler.go7
-rw-r--r--cc/llndk_library.go12
3 files changed, 27 insertions, 5 deletions
diff --git a/cc/cc.go b/cc/cc.go
index 71309301..b9c589a1 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -502,10 +502,17 @@ func (ctx *moduleContextImpl) useSdk() bool {
func (ctx *moduleContextImpl) sdkVersion() string {
if ctx.ctx.Device() {
if ctx.useVndk() {
- return "current"
- } else {
- return String(ctx.mod.Properties.Sdk_version)
+ vndk_ver := ctx.ctx.DeviceConfig().VndkVersion()
+ if vndk_ver == "current" {
+ platform_vndk_ver := ctx.ctx.DeviceConfig().PlatformVndkVersion()
+ if inList(platform_vndk_ver, ctx.ctx.Config().PlatformVersionCombinedCodenames()) {
+ return "current"
+ }
+ return platform_vndk_ver
+ }
+ return vndk_ver
}
+ return String(ctx.mod.Properties.Sdk_version)
}
return ""
}
diff --git a/cc/compiler.go b/cc/compiler.go
index b9ba31a7..8f187583 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -308,8 +308,13 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
}
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__=__ANDROID_API_FUTURE__", "-D__ANDROID_VNDK__")
+ "-D__ANDROID_API__="+version, "-D__ANDROID_VNDK__")
}
instructionSet := String(compiler.Properties.Instruction_set)
diff --git a/cc/llndk_library.go b/cc/llndk_library.go
index b573c2e6..6e64acfa 100644
--- a/cc/llndk_library.go
+++ b/cc/llndk_library.go
@@ -76,7 +76,17 @@ func (stub *llndkStubDecorator) compilerFlags(ctx ModuleContext, flags Flags, de
}
func (stub *llndkStubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects {
- objs, versionScript := compileStubLibrary(ctx, flags, String(stub.Properties.Symbol_file), "current", "--vndk")
+ vndk_ver := ctx.DeviceConfig().VndkVersion()
+ if vndk_ver == "current" {
+ platform_vndk_ver := ctx.DeviceConfig().PlatformVndkVersion()
+ if !inList(platform_vndk_ver, ctx.Config().PlatformVersionCombinedCodenames()) {
+ vndk_ver = platform_vndk_ver
+ }
+ } else if vndk_ver == "" {
+ // For non-enforcing devices, use "current"
+ vndk_ver = "current"
+ }
+ objs, versionScript := compileStubLibrary(ctx, flags, String(stub.Properties.Symbol_file), vndk_ver, "--vndk")
stub.versionScriptPath = versionScript
return objs
}