Files
build/core
Ulya Trafimovich 51ad6b81a8 Dexpreopt: prepare to merge class loader context from all deps.
The makefile implementation of dexpreopt is lagging behind the Soong
implementation in the way it handles transitive dependencies: Soong
propagates class loader context through transitive dependencies, such
as static libraries, but makefiles only propagate that information
through uses-library dependencies.

This discrepancy is caused by the difficulty of handling class loader
contexts in makefies: since there is no topological order in handling
module and its dependencies, the information is propagated via file
level dependencies on dexpreopt.configs and merged into the module's
dexpreopt.config with a python script.

To handle transitive dependencies correctly, it is necessary to
generate dexpreopt.config files for all libraries, not just those that
enable dexpreopt.

This change only prepares dex_preopt_odex_install.mk for that and
updates if for corresponding changes in manifest_check.py. It does not
enable generation of dexpreopt.config files for non uses-library
dependencies (e.g. static libraries). This will be done as a follow-up.

Changes:

  - renamed option for dependency dexpreopt.config files
  - added option for self dexpreopt.config
  - moved variable definitions so that they can be used both by
    uses-library check and dexpreopt command
  - add 'Optional' field in makefile-generated dexpreopt.config to
    align it on par with Soong-generated configs
  - modify dex_preopt_config_merger.py to add uses-libraries propagated
    via dexpreopt.config files

Bug: 214255490
Test: lunch aosp_cf_x86_64_phone-userdebug && m && launch_cvd \
    && adb wait-for-device && adb root \
    && adb logcat | grep -E 'ClassLoaderContext [a-z ]+ mismatch'
    # a few unrelated errors caused by missing optional uses-libraries
    #   android.net.ipsec.ike
    #   androidx.window.extensions
    #   androidx.window.sidecar
    # that were present before this patch
Change-Id: I6522319a8415f22f90fc96059a34675fb830e5cc
2022-05-24 16:02:49 +01:00
..
2018-03-20 15:47:45 -07:00
2022-03-22 09:25:58 -07:00
2018-06-21 10:12:23 -07:00
2022-04-21 18:24:55 +00:00
2020-04-18 21:00:18 -07:00
2020-06-08 16:36:52 -07:00
2021-04-02 10:24:48 -07:00
2020-03-05 20:46:47 +00:00
2018-08-29 17:33:29 +00:00
2020-06-10 17:18:13 -07:00
2022-04-13 15:49:56 -07:00
2022-03-17 13:55:15 -07:00
2022-04-29 13:51:31 +01:00
2020-06-08 16:36:52 -07:00
2020-05-27 19:37:03 -07:00
2019-09-18 16:23:04 +00:00
2022-04-12 18:57:15 -07:00
2022-02-28 18:01:35 -08:00