Fix host path for dexpreopted system server modules defined in Make.

Previously there was a discrepancy between the generated paths for
Soong modules that used "out/soong/system_server_jars" and Make modules
that used "out/system_server_jars". This happened because the default
output directory is $OUT/soong for the normal Soong config and jsut $OUT
for the reduced "null config" created by dexpreopt_gen.

As a result, class loader context for system server jars defined in Make
was referring to nonexistent jars, which caused non-fatal dex2oat errors
(the build was not broken, so the errors remained unnoticed):

  Failed to determine oat file name for dex location out/system_server_dexjars/[...]
  Could not open dex files from location: out/system_server_dexjars/[...]

Test: aosp_walleye-userdebug boots
Test: cherry-picked in master-arc-dev that has a Make system server jar
  arc-services, `lunch lunch cheets_x86-userdebug && m`, check that the
  generated dexpreopt.sh for arc-services contains paths starting with
  "out/soong/system_server_jars" rather than "out/system_server_jars".

Bug: 140712566
Change-Id: Ia7ea8ac383e32042c31d64971cdc8101ea3068cd
Merged-In: Ia7ea8ac383e32042c31d64971cdc8101ea3068cd
(cherry picked from commit 6cf2c0c197)
Exempt-From-Owner-Approval: cherry-pick of approved CL.
This commit is contained in:
Ulya Trafimovich
2020-04-24 12:15:20 +01:00
committed by Ulyana Trafimovich
parent 89030a315a
commit de962bd0a9
2 changed files with 14 additions and 1 deletions

View File

@@ -62,6 +62,10 @@ type DexpreoptProperties struct {
}
}
func init() {
dexpreopt.DexpreoptRunningInSoong = true
}
func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool {
global := dexpreopt.GetGlobalConfig(ctx)