Merge "Check NDK API level link compatibility."
diff --git a/android/module.go b/android/module.go
index 41499ca..f1af53a 100644
--- a/android/module.go
+++ b/android/module.go
@@ -56,8 +56,6 @@
Darwin() bool
Debug() bool
AConfig() Config
- Proprietary() bool
- InstallInData() bool
}
type BaseContext interface {
@@ -82,6 +80,9 @@
CheckbuildFile(srcPath Path)
AddMissingDependencies(deps []string)
+
+ Proprietary() bool
+ InstallInData() bool
}
type Module interface {
@@ -387,15 +388,14 @@
func (a *ModuleBase) androidBaseContextFactory(ctx blueprint.BaseModuleContext) androidBaseContextImpl {
return androidBaseContextImpl{
- target: a.commonProperties.CompileTarget,
- proprietary: a.commonProperties.Proprietary,
- config: ctx.Config().(Config),
- installInData: a.module.InstallInData(),
+ target: a.commonProperties.CompileTarget,
+ config: ctx.Config().(Config),
}
}
func (a *ModuleBase) GenerateBuildActions(ctx blueprint.ModuleContext) {
androidCtx := &androidModuleContext{
+ module: a.module,
ModuleContext: ctx,
androidBaseContextImpl: a.androidBaseContextFactory(ctx),
installDeps: a.computeInstallDeps(ctx),
@@ -422,11 +422,9 @@
}
type androidBaseContextImpl struct {
- target Target
- debug bool
- config Config
- proprietary bool
- installInData bool
+ target Target
+ debug bool
+ config Config
}
type androidModuleContext struct {
@@ -436,6 +434,7 @@
installFiles Paths
checkbuildFiles Paths
missingDeps []string
+ module Module
}
func (a *androidModuleContext) ninjaError(outputs []string, err error) {
@@ -533,12 +532,12 @@
return a.config
}
-func (a *androidBaseContextImpl) Proprietary() bool {
- return a.proprietary
+func (a *androidModuleContext) Proprietary() bool {
+ return a.module.base().commonProperties.Proprietary
}
-func (a *androidBaseContextImpl) InstallInData() bool {
- return a.installInData
+func (a *androidModuleContext) InstallInData() bool {
+ return a.module.InstallInData()
}
func (a *androidModuleContext) InstallFileName(installPath OutputPath, name string, srcPath Path,
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index 903a96b..d681b77 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -93,6 +93,8 @@
baseCompiler
properties libraryProperties
+
+ linker *stubLinker
}
// OMG GO
@@ -175,6 +177,7 @@
stubSrcPath := android.PathForModuleGen(ctx, stubSrcName)
versionScriptName := fileBase + ".map"
versionScriptPath := android.PathForModuleGen(ctx, versionScriptName)
+ c.linker.versionScriptPath = versionScriptPath
symbolFilePath := android.PathForModuleSrc(ctx, c.properties.Symbol_file)
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: genStubSrc,
@@ -209,6 +212,8 @@
type stubLinker struct {
libraryLinker
+
+ versionScriptPath android.ModuleGenPath
}
func (linker *stubLinker) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {
@@ -221,6 +226,14 @@
return linker.libraryLinker.linkerFlags(ctx, flags)
}
+func (linker *stubLinker) link(ctx ModuleContext, flags Flags, deps PathDeps,
+ objFiles android.Paths) android.Path {
+
+ linkerScriptFlag := "-Wl,--version-script," + linker.versionScriptPath.String()
+ flags.LdFlags = append(flags.LdFlags, linkerScriptFlag)
+ return linker.libraryLinker.link(ctx, flags, deps, objFiles)
+}
+
type stubInstaller struct {
baseInstaller
@@ -258,6 +271,7 @@
module.linker = linker
compiler := &stubCompiler{}
+ compiler.linker = linker
module.compiler = compiler
module.installer = &stubInstaller{baseInstaller{
dir: "lib",