diff --git a/android/apex.go b/android/apex.go index bf11ba25f..17df76240 100644 --- a/android/apex.go +++ b/android/apex.go @@ -15,6 +15,7 @@ package android import ( + "sort" "sync" "github.com/google/blueprint" @@ -86,7 +87,9 @@ type ApexModuleBase struct { ApexProperties ApexProperties canHaveApexVariants bool - apexVariations []string + + apexVariationsLock sync.Mutex // protects apexVariations during parallel apexDepsMutator + apexVariations []string } func (m *ApexModuleBase) apexModuleBase() *ApexModuleBase { @@ -94,6 +97,8 @@ func (m *ApexModuleBase) apexModuleBase() *ApexModuleBase { } func (m *ApexModuleBase) BuildForApex(apexName string) { + m.apexVariationsLock.Lock() + defer m.apexVariationsLock.Unlock() if !InList(apexName, m.apexVariations) { m.apexVariations = append(m.apexVariations, apexName) } @@ -122,6 +127,7 @@ func (m *ApexModuleBase) IsInstallableToApex() bool { func (m *ApexModuleBase) CreateApexVariations(mctx BottomUpMutatorContext) []blueprint.Module { if len(m.apexVariations) > 0 { + sort.Strings(m.apexVariations) variations := []string{""} // Original variation for platform variations = append(variations, m.apexVariations...) diff --git a/cc/vndk.go b/cc/vndk.go index 5f9c686b5..f9f376432 100644 --- a/cc/vndk.go +++ b/cc/vndk.go @@ -530,8 +530,15 @@ func (c *vndkSnapshotSingleton) GenerateBuildActions(ctx android.SingletonContex var modulePathTxtBuilder strings.Builder + modulePaths := modulePaths(ctx.Config()) + var libs []string + for lib := range modulePaths { + libs = append(libs, lib) + } + sort.Strings(libs) + first := true - for lib, dir := range modulePaths(ctx.Config()) { + for _, lib := range libs { if first { first = false } else { @@ -539,7 +546,7 @@ func (c *vndkSnapshotSingleton) GenerateBuildActions(ctx android.SingletonContex } modulePathTxtBuilder.WriteString(lib) modulePathTxtBuilder.WriteString(".so ") - modulePathTxtBuilder.WriteString(dir) + modulePathTxtBuilder.WriteString(modulePaths[lib]) } ctx.Build(pctx, android.BuildParams{