diff options
Diffstat (limited to 'filesystem/system_image.go')
-rw-r--r-- | filesystem/system_image.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/filesystem/system_image.go b/filesystem/system_image.go index a7c914395..1d24d6d41 100644 --- a/filesystem/system_image.go +++ b/filesystem/system_image.go @@ -50,17 +50,19 @@ func (s *systemImage) buildExtraFiles(ctx android.ModuleContext, root android.Ou func (s *systemImage) buildLinkerConfigFile(ctx android.ModuleContext, root android.OutputPath) android.OutputPath { input := android.PathForModuleSrc(ctx, android.String(s.properties.Linker_config_src)) output := root.Join(ctx, "system", "etc", "linker.config.pb") + + // we need "Module"s for packaging items var otherModules []android.Module + deps := s.GatherPackagingSpecs(ctx) ctx.WalkDeps(func(child, parent android.Module) bool { - // Don't track direct dependencies that aren't not packaged - if parent == s { - if pi, ok := ctx.OtherModuleDependencyTag(child).(android.PackagingItem); !ok || !pi.IsPackagingItem() { - return false + for _, ps := range child.PackagingSpecs() { + if _, ok := deps[ps.RelPathInPackage()]; ok { + otherModules = append(otherModules, child) } } - otherModules = append(otherModules, child) return true }) + builder := android.NewRuleBuilder(pctx, ctx) linkerconfig.BuildLinkerConfig(ctx, builder, input, otherModules, output) builder.Build("conv_linker_config", "Generate linker config protobuf "+output.String()) |