Loading java/bootclasspath_fragment.go +1 −1 Original line number Diff line number Diff line Loading @@ -1291,7 +1291,7 @@ func (module *PrebuiltBootclasspathFragmentModule) produceBootImageFiles(ctx and } return bootImageFiles } else { if profile == nil { if profile == nil && imageConfig.isProfileGuided() { ctx.ModuleErrorf("Unable to produce boot image files: neither boot image files nor profiles exists in the prebuilt apex") return bootImageOutputs{} } Loading java/dexpreopt_bootjars.go +20 −6 Original line number Diff line number Diff line Loading @@ -287,6 +287,9 @@ type bootImageConfig struct { // Path of the preloaded classes file. preloadedClassesFile string // The "--compiler-filter" argument. compilerFilter string } // Target-dependent description of a boot image. Loading Loading @@ -443,6 +446,10 @@ func (image *bootImageVariant) imageLocations() (imageLocationsOnHost []string, append(imageLocationsOnDevice, dexpreopt.PathStringToLocation(image.imagePathOnDevice, image.target.Arch.ArchType)) } func (image *bootImageConfig) isProfileGuided() bool { return image.compilerFilter == "speed-profile" } func dexpreoptBootJarsFactory() android.SingletonModule { m := &dexpreoptBootJars{} android.InitAndroidModule(m) Loading Loading @@ -721,12 +728,14 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p cmd.FlagWithArg("--base=", ctx.Config().LibartImgDeviceBaseAddress()) } if len(image.preloadedClassesFile) > 0 { // We always expect a preloaded classes file to be available. However, if we cannot find it, it's // OK to not pass the flag to dex2oat. preloadedClassesPath := android.ExistentPathForSource(ctx, image.preloadedClassesFile) if preloadedClassesPath.Valid() { cmd.FlagWithInput("--preloaded-classes=", preloadedClassesPath.Path()) } } cmd. FlagForEachInput("--dex-file=", image.dexPaths.Paths()). Loading @@ -743,7 +752,8 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p FlagWithArg("--android-root=", global.EmptyDirectory). FlagWithArg("--no-inline-from=", "core-oj.jar"). Flag("--force-determinism"). Flag("--abort-on-hard-verifier-error") Flag("--abort-on-hard-verifier-error"). FlagWithArg("--compiler-filter=", image.compilerFilter) // Use the default variant/features for host builds. // The map below contains only device CPU info (which might be x86 on some devices). Loading Loading @@ -828,6 +838,10 @@ It is likely that the boot classpath is inconsistent. Rebuild with ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" to see verification errors.` func bootImageProfileRule(ctx android.ModuleContext, image *bootImageConfig) android.WritablePath { if !image.isProfileGuided() { return nil } globalSoong := dexpreopt.GetGlobalSoongConfig(ctx) global := dexpreopt.GetGlobalConfig(ctx) Loading java/dexpreopt_config.go +2 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig profileInstallPathInApex: "etc/boot-image.prof", modules: artModules, preloadedClassesFile: "art/build/boot/preloaded-classes", compilerFilter: "speed-profile", } // Framework config for the boot image extension. Loading @@ -76,6 +77,7 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig installDirOnDevice: frameworkSubdir, modules: frameworkModules, preloadedClassesFile: "frameworks/base/config/preloaded-classes", compilerFilter: "speed-profile", } return map[string]*bootImageConfig{ Loading Loading
java/bootclasspath_fragment.go +1 −1 Original line number Diff line number Diff line Loading @@ -1291,7 +1291,7 @@ func (module *PrebuiltBootclasspathFragmentModule) produceBootImageFiles(ctx and } return bootImageFiles } else { if profile == nil { if profile == nil && imageConfig.isProfileGuided() { ctx.ModuleErrorf("Unable to produce boot image files: neither boot image files nor profiles exists in the prebuilt apex") return bootImageOutputs{} } Loading
java/dexpreopt_bootjars.go +20 −6 Original line number Diff line number Diff line Loading @@ -287,6 +287,9 @@ type bootImageConfig struct { // Path of the preloaded classes file. preloadedClassesFile string // The "--compiler-filter" argument. compilerFilter string } // Target-dependent description of a boot image. Loading Loading @@ -443,6 +446,10 @@ func (image *bootImageVariant) imageLocations() (imageLocationsOnHost []string, append(imageLocationsOnDevice, dexpreopt.PathStringToLocation(image.imagePathOnDevice, image.target.Arch.ArchType)) } func (image *bootImageConfig) isProfileGuided() bool { return image.compilerFilter == "speed-profile" } func dexpreoptBootJarsFactory() android.SingletonModule { m := &dexpreoptBootJars{} android.InitAndroidModule(m) Loading Loading @@ -721,12 +728,14 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p cmd.FlagWithArg("--base=", ctx.Config().LibartImgDeviceBaseAddress()) } if len(image.preloadedClassesFile) > 0 { // We always expect a preloaded classes file to be available. However, if we cannot find it, it's // OK to not pass the flag to dex2oat. preloadedClassesPath := android.ExistentPathForSource(ctx, image.preloadedClassesFile) if preloadedClassesPath.Valid() { cmd.FlagWithInput("--preloaded-classes=", preloadedClassesPath.Path()) } } cmd. FlagForEachInput("--dex-file=", image.dexPaths.Paths()). Loading @@ -743,7 +752,8 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p FlagWithArg("--android-root=", global.EmptyDirectory). FlagWithArg("--no-inline-from=", "core-oj.jar"). Flag("--force-determinism"). Flag("--abort-on-hard-verifier-error") Flag("--abort-on-hard-verifier-error"). FlagWithArg("--compiler-filter=", image.compilerFilter) // Use the default variant/features for host builds. // The map below contains only device CPU info (which might be x86 on some devices). Loading Loading @@ -828,6 +838,10 @@ It is likely that the boot classpath is inconsistent. Rebuild with ART_BOOT_IMAGE_EXTRA_ARGS="--runtime-arg -verbose:verifier" to see verification errors.` func bootImageProfileRule(ctx android.ModuleContext, image *bootImageConfig) android.WritablePath { if !image.isProfileGuided() { return nil } globalSoong := dexpreopt.GetGlobalSoongConfig(ctx) global := dexpreopt.GetGlobalConfig(ctx) Loading
java/dexpreopt_config.go +2 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig profileInstallPathInApex: "etc/boot-image.prof", modules: artModules, preloadedClassesFile: "art/build/boot/preloaded-classes", compilerFilter: "speed-profile", } // Framework config for the boot image extension. Loading @@ -76,6 +77,7 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig installDirOnDevice: frameworkSubdir, modules: frameworkModules, preloadedClassesFile: "frameworks/base/config/preloaded-classes", compilerFilter: "speed-profile", } return map[string]*bootImageConfig{ Loading