diff options
author | Vladimir Marko <vmarko@google.com> | 2018-12-19 17:57:57 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2019-01-09 09:39:20 +0000 |
commit | d2ee532fc329653ef94263f07931a6fc0a4aa1b3 (patch) | |
tree | 756f3eb9d718f5162bcd03ca046395b85cc08202 /dexpreopt | |
parent | 1f8076b42dfd99d01b720c027bafd7f671b1d12a (diff) | |
download | build_soong-d2ee532fc329653ef94263f07931a6fc0a4aa1b3.tar.gz build_soong-d2ee532fc329653ef94263f07931a6fc0a4aa1b3.tar.bz2 build_soong-d2ee532fc329653ef94263f07931a6fc0a4aa1b3.zip |
Preopt: Pass -Xbootclasspath: arg to dex2oat.
Test: Pixel 2 XL boots.
Bug: 119868597
Change-Id: Ibbff11d13a6d67034e783de2f7d8c930251bd899
Diffstat (limited to 'dexpreopt')
-rw-r--r-- | dexpreopt/config.go | 5 | ||||
-rw-r--r-- | dexpreopt/dexpreopt.go | 6 | ||||
-rw-r--r-- | dexpreopt/script.go | 5 |
3 files changed, 15 insertions, 1 deletions
diff --git a/dexpreopt/config.go b/dexpreopt/config.go index c24caacb..13a14f4f 100644 --- a/dexpreopt/config.go +++ b/dexpreopt/config.go @@ -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 diff --git a/dexpreopt/dexpreopt.go b/dexpreopt/dexpreopt.go index 3b211063..4ad039f4 100644 --- a/dexpreopt/dexpreopt.go +++ b/dexpreopt/dexpreopt.go @@ -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). diff --git a/dexpreopt/script.go b/dexpreopt/script.go index fd4cf823..9d4329c5 100644 --- a/dexpreopt/script.go +++ b/dexpreopt/script.go @@ -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) |