diff options
| -rw-r--r-- | fsgen/filesystem_creator.go | 6 | ||||
| -rw-r--r-- | fsgen/fsgen_mutators.go | 13 |
2 files changed, 12 insertions, 7 deletions
diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go index 2b967f7b6..d46f67904 100644 --- a/fsgen/filesystem_creator.go +++ b/fsgen/filesystem_creator.go @@ -592,8 +592,10 @@ func generateBpContent(ctx android.EarlyModuleContext, partitionType string) str } baseProps := generateBaseProps(proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), partitionType))) - deps := ctx.Config().Get(fsGenStateOnceKey).(*FsGenState).fsDeps[partitionType] - depProps := generateDepStruct(*deps) + fsGenState := ctx.Config().Get(fsGenStateOnceKey).(*FsGenState) + deps := fsGenState.fsDeps[partitionType] + highPriorityDeps := fsGenState.generatedPrebuiltEtcModuleNames + depProps := generateDepStruct(*deps, highPriorityDeps) result, err := proptools.RepackProperties([]interface{}{baseProps, fsProps, depProps}) if err != nil { diff --git a/fsgen/fsgen_mutators.go b/fsgen/fsgen_mutators.go index 1253f0dfd..e0e103a98 100644 --- a/fsgen/fsgen_mutators.go +++ b/fsgen/fsgen_mutators.go @@ -66,6 +66,8 @@ type FsGenState struct { fsDepsMutex sync.Mutex // Map of _all_ soong module names to their corresponding installation properties moduleToInstallationProps map[string]installationProperties + // List of prebuilt_* modules that are autogenerated. + generatedPrebuiltEtcModuleNames []string } type installationProperties struct { @@ -174,8 +176,9 @@ func createFsGenState(ctx android.LoadHookContext, generatedPrebuiltEtcModuleNam }, "ramdisk": {}, }, - fsDepsMutex: sync.Mutex{}, - moduleToInstallationProps: map[string]installationProperties{}, + fsDepsMutex: sync.Mutex{}, + moduleToInstallationProps: map[string]installationProperties{}, + generatedPrebuiltEtcModuleNames: generatedPrebuiltEtcModuleNames, } if avbpubkeyGenerated { @@ -284,7 +287,7 @@ func setDepsMutator(mctx android.BottomUpMutatorContext) { soongGeneratedPartitionMap := getAllSoongGeneratedPartitionNames(mctx.Config(), fsGenState.soongGeneratedPartitions) m := mctx.Module() if partition, ok := soongGeneratedPartitionMap[m.Name()]; ok { - depsStruct := generateDepStruct(*fsDeps[partition]) + depsStruct := generateDepStruct(*fsDeps[partition], fsGenState.generatedPrebuiltEtcModuleNames) if err := proptools.AppendMatchingProperties(m.GetProperties(), depsStruct, nil); err != nil { mctx.ModuleErrorf(err.Error()) } @@ -343,12 +346,12 @@ func isHighPriorityDep(depName string) bool { return false } -func generateDepStruct(deps map[string]*depCandidateProps) *packagingPropsStruct { +func generateDepStruct(deps map[string]*depCandidateProps, highPriorityDeps []string) *packagingPropsStruct { depsStruct := packagingPropsStruct{} for depName, depProps := range deps { bitness := getBitness(depProps.Arch) fullyQualifiedDepName := fullyQualifiedModuleName(depName, depProps.Namespace) - if isHighPriorityDep(depName) { + if android.InList(depName, highPriorityDeps) { depsStruct.High_priority_deps = append(depsStruct.High_priority_deps, fullyQualifiedDepName) } else if android.InList("32", bitness) && android.InList("64", bitness) { // If both 32 and 64 bit variants are enabled for this module |