Ignore checksum mismatch when dex2oat takes multiple profiles.
When we compile the entire bootclasspath with both the ART profile and
the framework profile, a checksum mismatch between the profiles can
happen because the framework profile refers to the old version of the
core libraries, while the ART profile refers to the new version.
This CL fixes the problem by re-defining the behavior: When dex2oat
takes multiple profiles, the order matters: If multiple profiles contain
classes and methods of the same dex file with different checksums, only
the classes and methods from the first profile will be used for that
particular dex file.
Bug: 203492478
Test: atest art_standalone_dex2oat_tests
Test: manual -
1. Install a new ART APEX on an old platform, and reboot.
2. Force JIT Zygote by providing a non-existing boot image path.
3. See the entire bootclasspath compiled successfully:
http://gpaste/6321173605384192
Change-Id: Ib5bda7aec58c1cf39f56c8c8a7a7c3ffb9835737
3 files changed