Pass --preloaded-classes to boot image compilation.

Test: m
Bug: 162110941
Change-Id: I0df016c5d170ca101cd18cacc331499ae76677a6
This commit is contained in:
Nicolas Geoffray
2022-03-14 15:31:47 +00:00
parent 1e17a78c55
commit b9a46fb624
2 changed files with 18 additions and 6 deletions

View File

@@ -281,6 +281,9 @@ type bootImageConfig struct {
// Target-dependent fields.
variants []*bootImageVariant
// Path of the preloaded classes file.
preloadedClassesFile string
}
// Target-dependent description of a boot image.
@@ -680,6 +683,13 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
cmd.FlagWithArg("--base=", ctx.Config().LibartImgDeviceBaseAddress())
}
// 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()).
FlagForEachArg("--dex-location=", image.dexLocations).

View File

@@ -62,18 +62,20 @@ func genBootImageConfigRaw(ctx android.PathContext) map[string]*bootImageConfig
installDirOnDevice: "system/framework",
profileInstallPathInApex: "etc/boot-image.prof",
modules: artModules,
preloadedClassesFile: "art/build/boot/preloaded-classes",
}
// Framework config for the boot image extension.
// It includes framework libraries and depends on the ART config.
frameworkSubdir := "system/framework"
frameworkCfg := bootImageConfig{
extends: &artCfg,
name: frameworkBootImageName,
stem: "boot",
installDirOnHost: frameworkSubdir,
installDirOnDevice: frameworkSubdir,
modules: frameworkModules,
extends: &artCfg,
name: frameworkBootImageName,
stem: "boot",
installDirOnHost: frameworkSubdir,
installDirOnDevice: frameworkSubdir,
modules: frameworkModules,
preloadedClassesFile: "frameworks/base/config/preloaded-classes",
}
return map[string]*bootImageConfig{