Merge "Use boot image extension in the JIT-zygote experiment."
This commit is contained in:
@@ -106,9 +106,8 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Mo
|
||||
|
||||
global := dexpreoptGlobalConfig(ctx)
|
||||
bootImage := defaultBootImageConfig(ctx)
|
||||
defaultBootImage := bootImage
|
||||
if global.UseApexImage {
|
||||
bootImage = apexBootImageConfig(ctx)
|
||||
bootImage = frameworkJZBootImageConfig(ctx)
|
||||
}
|
||||
|
||||
var archs []android.ArchType
|
||||
@@ -179,11 +178,8 @@ func (d *dexpreopter) dexpreopt(ctx android.ModuleContext, dexJarFile android.Mo
|
||||
DexPreoptImagesDeps: imagesDeps,
|
||||
DexPreoptImageLocations: bootImage.imageLocations,
|
||||
|
||||
// We use the dex paths and dex locations of the default boot image, as it
|
||||
// contains the full dexpreopt boot classpath. Other images may just contain a subset of
|
||||
// the dexpreopt boot classpath.
|
||||
PreoptBootClassPathDexFiles: defaultBootImage.dexPathsDeps.Paths(),
|
||||
PreoptBootClassPathDexLocations: defaultBootImage.dexLocationsDeps,
|
||||
PreoptBootClassPathDexFiles: bootImage.dexPathsDeps.Paths(),
|
||||
PreoptBootClassPathDexLocations: bootImage.dexLocationsDeps,
|
||||
|
||||
PreoptExtractedApk: false,
|
||||
|
||||
|
@@ -220,7 +220,8 @@ func (d *dexpreoptBootJars) GenerateBuildActions(ctx android.SingletonContext) {
|
||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
|
||||
if global.GenerateApexImage {
|
||||
// Create boot images for the JIT-zygote experiment.
|
||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
|
||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, artJZBootImageConfig(ctx)))
|
||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, frameworkJZBootImageConfig(ctx)))
|
||||
}
|
||||
|
||||
dumpOatRules(ctx, d.defaultBootImage)
|
||||
|
@@ -122,10 +122,11 @@ func getJarsFromApexJarPairs(apexJarPairs []string) []string {
|
||||
}
|
||||
|
||||
var (
|
||||
bootImageConfigKey = android.NewOnceKey("bootImageConfig")
|
||||
artBootImageName = "art"
|
||||
frameworkBootImageName = "boot"
|
||||
apexBootImageName = "apex"
|
||||
bootImageConfigKey = android.NewOnceKey("bootImageConfig")
|
||||
artBootImageName = "art"
|
||||
frameworkBootImageName = "boot"
|
||||
artJZBootImageName = "jitzygote-art"
|
||||
frameworkJZBootImageName = "jitzygote-boot"
|
||||
)
|
||||
|
||||
// Construct the global boot image configs.
|
||||
@@ -179,22 +180,33 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
||||
dexLocationsDeps: append(artLocations, frameworkLocations...),
|
||||
}
|
||||
|
||||
// Apex config for the boot image used in the JIT-zygote experiment.
|
||||
// It includes both the Core libraries and framework.
|
||||
apexCfg := bootImageConfig{
|
||||
// ART config for JIT-zygote boot image.
|
||||
artJZCfg := bootImageConfig{
|
||||
extension: false,
|
||||
name: apexBootImageName,
|
||||
name: artJZBootImageName,
|
||||
stem: "apex",
|
||||
installSubdir: artSubdir,
|
||||
modules: artModules,
|
||||
dexLocations: artLocations,
|
||||
dexLocationsDeps: artLocations,
|
||||
}
|
||||
|
||||
// Framework config for JIT-zygote boot image extension.
|
||||
frameworkJZCfg := bootImageConfig{
|
||||
extension: true,
|
||||
name: frameworkJZBootImageName,
|
||||
stem: "apex",
|
||||
installSubdir: frameworkSubdir,
|
||||
modules: concat(artModules, frameworkModules),
|
||||
dexLocations: concat(artLocations, frameworkLocations),
|
||||
dexLocationsDeps: concat(artLocations, frameworkLocations),
|
||||
modules: frameworkModules,
|
||||
dexLocations: frameworkLocations,
|
||||
dexLocationsDeps: append(artLocations, frameworkLocations...),
|
||||
}
|
||||
|
||||
configs := map[string]*bootImageConfig{
|
||||
artBootImageName: &artCfg,
|
||||
frameworkBootImageName: &frameworkCfg,
|
||||
apexBootImageName: &apexCfg,
|
||||
artBootImageName: &artCfg,
|
||||
frameworkBootImageName: &frameworkCfg,
|
||||
artJZBootImageName: &artJZCfg,
|
||||
frameworkJZBootImageName: &frameworkJZCfg,
|
||||
}
|
||||
|
||||
// common to all configs
|
||||
@@ -236,6 +248,10 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
||||
frameworkCfg.dexPathsDeps = append(artCfg.dexPathsDeps, frameworkCfg.dexPathsDeps...)
|
||||
frameworkCfg.imageLocations = append(artCfg.imageLocations, frameworkCfg.imageLocations...)
|
||||
|
||||
// specific to the jitzygote-framework config
|
||||
frameworkJZCfg.dexPathsDeps = append(artJZCfg.dexPathsDeps, frameworkJZCfg.dexPathsDeps...)
|
||||
frameworkJZCfg.imageLocations = append(artJZCfg.imageLocations, frameworkJZCfg.imageLocations...)
|
||||
|
||||
return configs
|
||||
}).(map[string]*bootImageConfig)
|
||||
}
|
||||
@@ -248,8 +264,12 @@ func defaultBootImageConfig(ctx android.PathContext) bootImageConfig {
|
||||
return *genBootImageConfigs(ctx)[frameworkBootImageName]
|
||||
}
|
||||
|
||||
func apexBootImageConfig(ctx android.PathContext) bootImageConfig {
|
||||
return *genBootImageConfigs(ctx)[apexBootImageName]
|
||||
func artJZBootImageConfig(ctx android.PathContext) bootImageConfig {
|
||||
return *genBootImageConfigs(ctx)[artJZBootImageName]
|
||||
}
|
||||
|
||||
func frameworkJZBootImageConfig(ctx android.PathContext) bootImageConfig {
|
||||
return *genBootImageConfigs(ctx)[frameworkJZBootImageName]
|
||||
}
|
||||
|
||||
func defaultBootclasspath(ctx android.PathContext) []string {
|
||||
|
Reference in New Issue
Block a user