Fix nondeterminism in bp2build
This fixes two main sources of nondeterminism: 1. Fix a bug in the ConfigurationAxis comparator (which caused ConfigurationAxis sorting to be nondeterministic) 2. Process C++ dependencies using the sorted ConfigurationAxis order. In theory, the order in which dependencies are processed shouldn't matter (as they should end up in different select stanzas). However, in the case of InApex stubs, this is not the case; we now ensure that lists are concatenated in a predictable order. Added bonus: Some cleanup with SortConfigurationAxes which makes use of go generics (this made it easier to debug this issue). Will follow-up with regression tests. Test: Manually verified that build.ninja checksum and BUILD.bazel checksums do not change after running `m nothing` 6 times in AOSP (with comment-only Android.bp changes in between each run) Change-Id: I81168e45bdbbcd61ea95ff665cf6c4bc180aa4e0
Loading
Please register or sign in to comment