diff options
Diffstat (limited to 'cc')
-rw-r--r-- | cc/cc.go | 13 | ||||
-rw-r--r-- | cc/compiler.go | 7 | ||||
-rw-r--r-- | cc/llndk_library.go | 12 |
3 files changed, 27 insertions, 5 deletions
@@ -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 } |