aboutsummaryrefslogtreecommitdiffstats
path: root/cc/ndk_library.go
diff options
context:
space:
mode:
authorDan Albert <danalbert@google.com>2016-07-28 17:40:28 -0700
committerDan Albert <danalbert@google.com>2016-08-02 13:45:40 -0700
commit2bc91ba5493a63561d5cb3c7af3a85db2f62b96b (patch)
treedc6da122049ad1659310b739b16f80b85c6559c8 /cc/ndk_library.go
parentf77e8d7ffc43fade072829e78cd0fd34d1e2a01f (diff)
downloadbuild_soong-2bc91ba5493a63561d5cb3c7af3a85db2f62b96b.tar.gz
build_soong-2bc91ba5493a63561d5cb3c7af3a85db2f62b96b.tar.bz2
build_soong-2bc91ba5493a63561d5cb3c7af3a85db2f62b96b.zip
Use the version script for ndk_library.
We were generating this, but not actually using it yet. Test: `make ndk` with libc/libm migration patches, readelf generated libs. Change-Id: I9aadf58307bc645b33cab5207409552c5046937a
Diffstat (limited to 'cc/ndk_library.go')
-rw-r--r--cc/ndk_library.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index 903a96bf..d681b772 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -93,6 +93,8 @@ type stubCompiler struct {
baseCompiler
properties libraryProperties
+
+ linker *stubLinker
}
// OMG GO
@@ -175,6 +177,7 @@ func (c *stubCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) an
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 @@ func (c *stubCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) an
type stubLinker struct {
libraryLinker
+
+ versionScriptPath android.ModuleGenPath
}
func (linker *stubLinker) linkerDeps(ctx BaseModuleContext, deps Deps) Deps {
@@ -221,6 +226,14 @@ func (linker *stubLinker) linkerFlags(ctx ModuleContext, flags Flags) Flags {
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 @@ func newStubLibrary() *Module {
module.linker = linker
compiler := &stubCompiler{}
+ compiler.linker = linker
module.compiler = compiler
module.installer = &stubInstaller{baseInstaller{
dir: "lib",