Revert "Use boot image extension for framework libraries."
This reverts commit 4d2eeed0da
.
Reason for revert: breaks avd/avd_boot_health_check test
on cf_x86_phone-userdebug_coverage on branch rvc-release
(the device fails to boot).
Test: m
Test: aosp_walleye-userdebug boots
Bug: 145749668
Exempt-From-Owner-Approval: revert
Change-Id: Ie1d93a200222e26461c1bcd384fdb69b7351e259
This commit is contained in:
parent
ce482dce02
commit
3fae7662ee
|
@ -178,6 +178,12 @@ func skipDexpreoptBootJars(ctx android.PathContext) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func skipDexpreoptArtBootJars(ctx android.BuilderContext) bool {
|
||||||
|
// with EMMA_INSTRUMENT_FRAMEWORK=true ART boot class path libraries have dependencies on framework,
|
||||||
|
// therefore dexpreopt ART libraries cannot be dexpreopted in isolation => no ART boot image
|
||||||
|
return ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK")
|
||||||
|
}
|
||||||
|
|
||||||
type dexpreoptBootJars struct {
|
type dexpreoptBootJars struct {
|
||||||
defaultBootImage *bootImage
|
defaultBootImage *bootImage
|
||||||
otherImages []*bootImage
|
otherImages []*bootImage
|
||||||
|
@ -187,7 +193,7 @@ type dexpreoptBootJars struct {
|
||||||
|
|
||||||
// Accessor function for the apex package. Returns nil if dexpreopt is disabled.
|
// Accessor function for the apex package. Returns nil if dexpreopt is disabled.
|
||||||
func DexpreoptedArtApexJars(ctx android.BuilderContext) map[android.ArchType]android.OutputPaths {
|
func DexpreoptedArtApexJars(ctx android.BuilderContext) map[android.ArchType]android.OutputPaths {
|
||||||
if skipDexpreoptBootJars(ctx) {
|
if skipDexpreoptBootJars(ctx) || skipDexpreoptArtBootJars(ctx) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return artBootImageConfig(ctx).imagesDeps
|
return artBootImageConfig(ctx).imagesDeps
|
||||||
|
@ -216,8 +222,10 @@ func (d *dexpreoptBootJars) GenerateBuildActions(ctx android.SingletonContext) {
|
||||||
|
|
||||||
// Always create the default boot image first, to get a unique profile rule for all images.
|
// Always create the default boot image first, to get a unique profile rule for all images.
|
||||||
d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx))
|
d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx))
|
||||||
|
if !skipDexpreoptArtBootJars(ctx) {
|
||||||
// Create boot image for the ART apex (build artifacts are accessed via the global boot image config).
|
// Create boot image for the ART apex (build artifacts are accessed via the global boot image config).
|
||||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
|
d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
|
||||||
|
}
|
||||||
if global.GenerateApexImage {
|
if global.GenerateApexImage {
|
||||||
// Create boot images for the JIT-zygote experiment.
|
// Create boot images for the JIT-zygote experiment.
|
||||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
|
d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
|
||||||
|
|
|
@ -48,7 +48,7 @@ func TestDexpreoptBootJars(t *testing.T) {
|
||||||
|
|
||||||
pathCtx := android.PathContextForTesting(config, nil)
|
pathCtx := android.PathContextForTesting(config, nil)
|
||||||
dexpreoptConfig := dexpreopt.GlobalConfigForTests(pathCtx)
|
dexpreoptConfig := dexpreopt.GlobalConfigForTests(pathCtx)
|
||||||
dexpreoptConfig.BootJars = []string{"foo", "bar", "baz"}
|
dexpreoptConfig.ArtApexJars = []string{"foo", "bar", "baz"}
|
||||||
setDexpreoptTestGlobalConfig(config, dexpreoptConfig)
|
setDexpreoptTestGlobalConfig(config, dexpreoptConfig)
|
||||||
|
|
||||||
ctx := testContext(bp, nil)
|
ctx := testContext(bp, nil)
|
||||||
|
@ -59,10 +59,9 @@ func TestDexpreoptBootJars(t *testing.T) {
|
||||||
|
|
||||||
dexpreoptBootJars := ctx.SingletonForTests("dex_bootjars")
|
dexpreoptBootJars := ctx.SingletonForTests("dex_bootjars")
|
||||||
|
|
||||||
bootArt := dexpreoptBootJars.Output("boot-foo.art")
|
bootArt := dexpreoptBootJars.Output("boot.art")
|
||||||
|
|
||||||
expectedInputs := []string{
|
expectedInputs := []string{
|
||||||
"dex_artjars/apex/com.android.art/javalib/arm64/boot.art",
|
|
||||||
"dex_bootjars_input/foo.jar",
|
"dex_bootjars_input/foo.jar",
|
||||||
"dex_bootjars_input/bar.jar",
|
"dex_bootjars_input/bar.jar",
|
||||||
"dex_bootjars_input/baz.jar",
|
"dex_bootjars_input/baz.jar",
|
||||||
|
@ -83,19 +82,19 @@ func TestDexpreoptBootJars(t *testing.T) {
|
||||||
expectedOutputs := []string{
|
expectedOutputs := []string{
|
||||||
"dex_bootjars/system/framework/arm64/boot.invocation",
|
"dex_bootjars/system/framework/arm64/boot.invocation",
|
||||||
|
|
||||||
"dex_bootjars/system/framework/arm64/boot-foo.art",
|
"dex_bootjars/system/framework/arm64/boot.art",
|
||||||
"dex_bootjars/system/framework/arm64/boot-bar.art",
|
"dex_bootjars/system/framework/arm64/boot-bar.art",
|
||||||
"dex_bootjars/system/framework/arm64/boot-baz.art",
|
"dex_bootjars/system/framework/arm64/boot-baz.art",
|
||||||
|
|
||||||
"dex_bootjars/system/framework/arm64/boot-foo.oat",
|
"dex_bootjars/system/framework/arm64/boot.oat",
|
||||||
"dex_bootjars/system/framework/arm64/boot-bar.oat",
|
"dex_bootjars/system/framework/arm64/boot-bar.oat",
|
||||||
"dex_bootjars/system/framework/arm64/boot-baz.oat",
|
"dex_bootjars/system/framework/arm64/boot-baz.oat",
|
||||||
|
|
||||||
"dex_bootjars/system/framework/arm64/boot-foo.vdex",
|
"dex_bootjars/system/framework/arm64/boot.vdex",
|
||||||
"dex_bootjars/system/framework/arm64/boot-bar.vdex",
|
"dex_bootjars/system/framework/arm64/boot-bar.vdex",
|
||||||
"dex_bootjars/system/framework/arm64/boot-baz.vdex",
|
"dex_bootjars/system/framework/arm64/boot-baz.vdex",
|
||||||
|
|
||||||
"dex_bootjars_unstripped/system/framework/arm64/boot-foo.oat",
|
"dex_bootjars_unstripped/system/framework/arm64/boot.oat",
|
||||||
"dex_bootjars_unstripped/system/framework/arm64/boot-bar.oat",
|
"dex_bootjars_unstripped/system/framework/arm64/boot-bar.oat",
|
||||||
"dex_bootjars_unstripped/system/framework/arm64/boot-baz.oat",
|
"dex_bootjars_unstripped/system/framework/arm64/boot-baz.oat",
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,10 +135,6 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
||||||
deviceDir := android.PathForOutput(ctx, ctx.Config().DeviceName())
|
deviceDir := android.PathForOutput(ctx, ctx.Config().DeviceName())
|
||||||
|
|
||||||
artModules := global.ArtApexJars
|
artModules := global.ArtApexJars
|
||||||
// In coverage builds ART boot class path jars are instrumented and have additional dependencies.
|
|
||||||
if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") {
|
|
||||||
artModules = append(artModules, "jacocoagent")
|
|
||||||
}
|
|
||||||
frameworkModules := android.RemoveListFromList(global.BootJars,
|
frameworkModules := android.RemoveListFromList(global.BootJars,
|
||||||
concat(artModules, getJarsFromApexJarPairs(global.UpdatableBootJars)))
|
concat(artModules, getJarsFromApexJarPairs(global.UpdatableBootJars)))
|
||||||
|
|
||||||
|
@ -166,15 +162,15 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Framework config for the boot image extension.
|
// Framework config for the boot image extension.
|
||||||
// It includes framework libraries and depends on the ART config.
|
// It includes both the Core libraries and framework.
|
||||||
frameworkCfg := bootImageConfig{
|
frameworkCfg := bootImageConfig{
|
||||||
extension: true,
|
extension: false,
|
||||||
name: frameworkBootImageName,
|
name: frameworkBootImageName,
|
||||||
stem: "boot",
|
stem: "boot",
|
||||||
installSubdir: frameworkSubdir,
|
installSubdir: frameworkSubdir,
|
||||||
modules: frameworkModules,
|
modules: concat(artModules, frameworkModules),
|
||||||
dexLocations: frameworkLocations,
|
dexLocations: concat(artLocations, frameworkLocations),
|
||||||
dexLocationsDeps: append(artLocations, frameworkLocations...),
|
dexLocationsDeps: concat(artLocations, frameworkLocations),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apex config for the boot image used in the JIT-zygote experiment.
|
// Apex config for the boot image used in the JIT-zygote experiment.
|
||||||
|
@ -230,10 +226,6 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
||||||
c.zip = c.dir.Join(ctx, c.name+".zip")
|
c.zip = c.dir.Join(ctx, c.name+".zip")
|
||||||
}
|
}
|
||||||
|
|
||||||
// specific to the framework config
|
|
||||||
frameworkCfg.dexPathsDeps = append(artCfg.dexPathsDeps, frameworkCfg.dexPathsDeps...)
|
|
||||||
frameworkCfg.imageLocations = append(artCfg.imageLocations, frameworkCfg.imageLocations...)
|
|
||||||
|
|
||||||
return configs
|
return configs
|
||||||
}).(map[string]*bootImageConfig)
|
}).(map[string]*bootImageConfig)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue