Fix some non-determinism in aconfigMerge operation
Sorted iteration ensures that `mergeAconfigFiles` generates the ninja rules in a deterministic fashion. Test: mv out/soong/build.ninja; regenerate; compare; bit-identical after this change Change-Id: Ic9bee14374fa1eb7adee670eaed42ad6ffdd9010
This commit is contained in:
@@ -105,7 +105,8 @@ func CollectDependencyAconfigFiles(ctx ModuleContext, mergedAconfigFiles *map[st
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
for container, aconfigFiles := range *mergedAconfigFiles {
|
for _, container := range SortedKeys(*mergedAconfigFiles) {
|
||||||
|
aconfigFiles := (*mergedAconfigFiles)[container]
|
||||||
(*mergedAconfigFiles)[container] = mergeAconfigFiles(ctx, container, aconfigFiles, false)
|
(*mergedAconfigFiles)[container] = mergeAconfigFiles(ctx, container, aconfigFiles, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -172,7 +173,8 @@ func aconfigUpdateAndroidBuildActions(ctx ModuleContext) {
|
|||||||
})
|
})
|
||||||
// We only need to set the provider if we have aconfig files.
|
// We only need to set the provider if we have aconfig files.
|
||||||
if len(mergedAconfigFiles) > 0 {
|
if len(mergedAconfigFiles) > 0 {
|
||||||
for container, aconfigFiles := range mergedAconfigFiles {
|
for _, container := range SortedKeys(mergedAconfigFiles) {
|
||||||
|
aconfigFiles := mergedAconfigFiles[container]
|
||||||
mergedAconfigFiles[container] = mergeAconfigFiles(ctx, container, aconfigFiles, true)
|
mergedAconfigFiles[container] = mergeAconfigFiles(ctx, container, aconfigFiles, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user