Preopt: Pass -Xbootclasspath: arg to dex2oat.
Test: Pixel 2 XL boots.
Bug: 119868597
Change-Id: Ibbff11d13a6d67034e783de2f7d8c930251bd899
diff --git a/dexpreopt/dexpreopt.go b/dexpreopt/dexpreopt.go
index 3b21106..4ad039f 100644
--- a/dexpreopt/dexpreopt.go
+++ b/dexpreopt/dexpreopt.go
@@ -192,6 +192,9 @@
pathtools.ReplaceExtension(filepath.Base(path), "odex"))
}
+ bcp := strings.Join(global.PreoptBootClassPathDexFiles, ":")
+ bcp_locations := strings.Join(global.PreoptBootClassPathDexLocations, ":")
+
odexPath := toOdexPath(filepath.Join(filepath.Dir(module.BuildPath), base))
odexInstallPath := toOdexPath(module.DexLocation)
if odexOnSystemOther(module, global) {
@@ -310,6 +313,9 @@
FlagWithOutput("--write-invocation-to=", invocationPath).ImplicitOutput(invocationPath).
Flag("--runtime-arg").FlagWithArg("-Xms", global.Dex2oatXms).
Flag("--runtime-arg").FlagWithArg("-Xmx", global.Dex2oatXmx).
+ Flag("--runtime-arg").FlagWithArg("-Xbootclasspath:", bcp).
+ Implicits(global.PreoptBootClassPathDexFiles).
+ Flag("--runtime-arg").FlagWithArg("-Xbootclasspath-locations:", bcp_locations).
Flag("${class_loader_context_arg}").
Flag("${stored_class_loader_context_arg}").
FlagWithArg("--boot-image=", bootImageLocation).Implicit(bootImagePath).