diff --git a/cc/cc.go b/cc/cc.go index f368a1335..dd7350452 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -950,9 +950,10 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps { if tag == reuseObjTag { if l, ok := cc.compiler.(libraryInterface); ok { - objs, flags := l.reuseObjs() + objs, flags, deps := l.reuseObjs() depPaths.Objs = depPaths.Objs.Append(objs) depPaths.ReexportedFlags = append(depPaths.ReexportedFlags, flags...) + depPaths.ReexportedFlagsDeps = append(depPaths.ReexportedFlagsDeps, deps...) return } } diff --git a/cc/library.go b/cc/library.go index 1a5de619d..12a866bb7 100644 --- a/cc/library.go +++ b/cc/library.go @@ -202,6 +202,7 @@ type libraryDecorator struct { // For reusing static library objects for shared library reuseObjects Objects reuseExportedFlags []string + reuseExportedDeps android.Paths // table-of-contents file to optimize out relinking when possible tocFile android.OptionalPath @@ -364,7 +365,7 @@ type libraryInterface interface { getWholeStaticMissingDeps() []string static() bool objs() Objects - reuseObjs() (Objects, []string) + reuseObjs() (Objects, []string, android.Paths) toc() android.OptionalPath // Returns true if the build options for the module have selected a static or shared build @@ -623,6 +624,7 @@ func (library *libraryDecorator) link(ctx ModuleContext, library.reexportFlags(flags) library.reuseExportedFlags = append(library.reuseExportedFlags, flags...) library.reexportDeps(library.baseCompiler.deps) // TODO: restrict to aidl deps + library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.deps...) } } @@ -635,6 +637,7 @@ func (library *libraryDecorator) link(ctx ModuleContext, library.reexportFlags(flags) library.reuseExportedFlags = append(library.reuseExportedFlags, flags...) library.reexportDeps(library.baseCompiler.deps) // TODO: restrict to proto deps + library.reuseExportedDeps = append(library.reuseExportedDeps, library.baseCompiler.deps...) } } @@ -659,8 +662,8 @@ func (library *libraryDecorator) objs() Objects { return library.objects } -func (library *libraryDecorator) reuseObjs() (Objects, []string) { - return library.reuseObjects, library.reuseExportedFlags +func (library *libraryDecorator) reuseObjs() (Objects, []string, android.Paths) { + return library.reuseObjects, library.reuseExportedFlags, library.reuseExportedDeps } func (library *libraryDecorator) toc() android.OptionalPath {