Preopt: Pass -Xbootclasspath: arg to dex2oat.

Test: Pixel 2 XL boots.
Bug: 119868597
Change-Id: Ibbff11d13a6d67034e783de2f7d8c930251bd899
This commit is contained in:
Vladimir Marko 2018-12-19 17:57:57 +00:00 committed by Nicolas Geoffray
parent 1f8076b42d
commit d2ee532fc3
3 changed files with 15 additions and 1 deletions

View File

@ -32,7 +32,10 @@ type GlobalConfig struct {
DisableGenerateProfile bool // don't generate profiles
BootJars []string // jars that form the boot image
PreoptBootClassPathDexFiles []string // file paths of boot class path files
PreoptBootClassPathDexLocations []string // virtual locations of boot class path files
BootJars []string // modules for jars that form the boot class path
SystemServerJars []string // jars that form the system server
SystemServerApps []string // apps that are loaded into system server
SpeedApps []string // apps that should be speed optimized

View File

@ -192,6 +192,9 @@ func dexpreoptCommand(global GlobalConfig, module ModuleConfig, rule *Rule, prof
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 @@ func dexpreoptCommand(global GlobalConfig, module ModuleConfig, rule *Rule, prof
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).

View File

@ -147,6 +147,11 @@ func (c *Command) Implicit(path string) *Command {
return c
}
func (c *Command) Implicits(paths []string) *Command {
c.inputs = append(c.inputs, paths...)
return c
}
func (c *Command) Output(path string) *Command {
c.outputs = append(c.outputs, path)
return c.Text(path)