diff --git a/apex/apex.go b/apex/apex.go index 28935f28e..629cbbf2e 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -613,7 +613,6 @@ type apexBundle struct { testApex bool vndkApex bool - artApex bool // intermediate path for apex_manifest.json manifestOut android.WritablePath @@ -1214,19 +1213,6 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { return false }) - // Specific to the ART apex: dexpreopt artifacts for libcore Java libraries. - // Build rules are generated by the dexpreopt singleton, and here we access build artifacts - // via the global boot image config. - if a.artApex { - for arch, files := range java.DexpreoptedArtApexJars(ctx) { - dirInApex := filepath.Join("dexpreopt", arch.String()) - for _, f := range files { - localModule := "dexpreopt_" + arch.String() + "_" + filepath.Base(f.String()) - filesInfo = append(filesInfo, apexFile{f, localModule, dirInApex, etc, nil, nil}) - } - } - } - if a.private_key_file == nil { ctx.PropertyErrorf("key", "private_key for %q could not be found", String(a.properties.Key)) return @@ -1825,10 +1811,9 @@ func newApexBundle() *apexBundle { return module } -func ApexBundleFactory(testApex bool, artApex bool) android.Module { +func ApexBundleFactory(testApex bool) android.Module { bundle := newApexBundle() bundle.testApex = testApex - bundle.artApex = artApex return bundle } diff --git a/java/dexpreopt_bootjars.go b/java/dexpreopt_bootjars.go index 2fbc30c92..2a142baee 100644 --- a/java/dexpreopt_bootjars.go +++ b/java/dexpreopt_bootjars.go @@ -165,8 +165,6 @@ func (d *dexpreoptBootJars) GenerateBuildActions(ctx android.SingletonContext) { // Always create the default boot image first, to get a unique profile rule for all images. d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx)) - // Create boot image for the ART apex (build artifacts are accessed via the global boot image config). - buildBootImage(ctx, artBootImageConfig(ctx)) if global.GenerateApexImage { d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx))) } diff --git a/java/dexpreopt_config.go b/java/dexpreopt_config.go index 86ad5c81a..429bbdba6 100644 --- a/java/dexpreopt_config.go +++ b/java/dexpreopt_config.go @@ -96,17 +96,15 @@ func dexpreoptTargets(ctx android.PathContext) []android.Target { return targets } -// Construct a variant of the global config for dexpreopted bootclasspath jars. The variants differ -// in the list of input jars (libcore, framework, or both), in the naming scheme for the dexpreopt -// files (ART recognizes "apex" names as special), and whether to include a zip archive. func getBootImageConfig(ctx android.PathContext, key android.OnceKey, name string, - needZip bool, artApexJarsOnly bool) bootImageConfig { - + needZip bool) bootImageConfig { return ctx.Config().Once(key, func() interface{} { global := dexpreoptGlobalConfig(ctx) artModules := global.ArtApexJars - imageModules := artModules + nonFrameworkModules := concat(artModules, global.ProductUpdatableBootModules) + frameworkModules := android.RemoveListFromList(global.BootJars, nonFrameworkModules) + imageModules := concat(artModules, frameworkModules) var bootLocations []string @@ -115,19 +113,11 @@ func getBootImageConfig(ctx android.PathContext, key android.OnceKey, name strin filepath.Join("/apex/com.android.art/javalib", m+".jar")) } - if !artApexJarsOnly { - nonFrameworkModules := concat(artModules, global.ProductUpdatableBootModules) - frameworkModules := android.RemoveListFromList(global.BootJars, nonFrameworkModules) - imageModules = concat(imageModules, frameworkModules) - - for _, m := range frameworkModules { - bootLocations = append(bootLocations, - filepath.Join("/system/framework", m+".jar")) - } + for _, m := range frameworkModules { + bootLocations = append(bootLocations, + filepath.Join("/system/framework", m+".jar")) } - dirStem := "dex_" + name + "jars" - // The path to bootclasspath dex files needs to be known at module GenerateAndroidBuildAction time, before // the bootclasspath modules have been compiled. Set up known paths for them, the singleton rules will copy // them there. @@ -135,11 +125,11 @@ func getBootImageConfig(ctx android.PathContext, key android.OnceKey, name strin var bootDexPaths android.WritablePaths for _, m := range imageModules { bootDexPaths = append(bootDexPaths, - android.PathForOutput(ctx, ctx.Config().DeviceName(), dirStem+"_input", m+".jar")) + android.PathForOutput(ctx, ctx.Config().DeviceName(), "dex_"+name+"jars_input", m+".jar")) } - dir := android.PathForOutput(ctx, ctx.Config().DeviceName(), dirStem) - symbolsDir := android.PathForOutput(ctx, ctx.Config().DeviceName(), dirStem+"_unstripped") + dir := android.PathForOutput(ctx, ctx.Config().DeviceName(), "dex_"+name+"jars") + symbolsDir := android.PathForOutput(ctx, ctx.Config().DeviceName(), "dex_"+name+"jars_unstripped") var zip android.WritablePath if needZip { @@ -176,30 +166,15 @@ func getBootImageConfig(ctx android.PathContext, key android.OnceKey, name strin }).(bootImageConfig) } -// Default config is the one that goes in the system image. It includes both libcore and framework. var defaultBootImageConfigKey = android.NewOnceKey("defaultBootImageConfig") - -func defaultBootImageConfig(ctx android.PathContext) bootImageConfig { - return getBootImageConfig(ctx, defaultBootImageConfigKey, "boot", true, false) -} - -// Apex config is used for the JIT-zygote experiment. It includes both libcore and framework, but AOT-compiles only libcore. var apexBootImageConfigKey = android.NewOnceKey("apexBootImageConfig") +func defaultBootImageConfig(ctx android.PathContext) bootImageConfig { + return getBootImageConfig(ctx, defaultBootImageConfigKey, "boot", true) +} + func apexBootImageConfig(ctx android.PathContext) bootImageConfig { - return getBootImageConfig(ctx, apexBootImageConfigKey, "apex", false, false) -} - -// ART config is the one used for the ART apex. It includes only libcore. -var artBootImageConfigKey = android.NewOnceKey("artBootImageConfig") - -func artBootImageConfig(ctx android.PathContext) bootImageConfig { - return getBootImageConfig(ctx, artBootImageConfigKey, "boot-art", false, true) -} - -// Accessor function for the apex package. -func DexpreoptedArtApexJars(ctx android.BuilderContext) map[android.ArchType]android.Paths { - return artBootImageConfig(ctx).imagesDeps + return getBootImageConfig(ctx, apexBootImageConfigKey, "apex", false) } func defaultBootclasspath(ctx android.PathContext) []string {