From 5cb569794e0ed05fabfc5cc655cb89d4a9d271e7 Mon Sep 17 00:00:00 2001 From: Artur Satayev Date: Tue, 25 May 2021 16:46:33 +0000 Subject: [PATCH] Revert "Partial Revert "Populate individual classpath_fragments'..." Revert submission 14717811-revert-populate-platform-bootclasspath Reason for revert: retry with a fix Reverted Changes: Ib58cd0211:Revert "Add bootclasspath_fragments to platform-bo... I13b622d6c:Partial Revert "Populate individual classpath_frag... Bug: 180105615 Test: atest sdkextensions_e2e_tests Change-Id: I7b6b6b980a4c6430a70394e85222f3b35c4efd5f --- java/bootclasspath_fragment.go | 12 ++++++++++-- java/platform_bootclasspath.go | 9 +-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/java/bootclasspath_fragment.go b/java/bootclasspath_fragment.go index 6738b0930..188d36225 100644 --- a/java/bootclasspath_fragment.go +++ b/java/bootclasspath_fragment.go @@ -490,8 +490,16 @@ func (b *BootclasspathFragmentModule) generateClasspathProtoBuildActions(ctx and } func (b *BootclasspathFragmentModule) ClasspathFragmentToConfiguredJarList(ctx android.ModuleContext) android.ConfiguredJarList { - // TODO(satayev): populate with actual content - return android.EmptyConfiguredJarList() + if "art" == proptools.String(b.properties.Image_name) { + return b.getImageConfig(ctx).modules + } + + global := dexpreopt.GetGlobalConfig(ctx) + + // Only create configs for updatable boot jars. Non-updatable boot jars must be part of the + // platform_bootclasspath's classpath proto config to guarantee that they come before any + // updatable jars at runtime. + return global.UpdatableBootJars.Filter(b.properties.Contents) } func (b *BootclasspathFragmentModule) getImageConfig(ctx android.EarlyModuleContext) *bootImageConfig { diff --git a/java/platform_bootclasspath.go b/java/platform_bootclasspath.go index 85bf4b68b..87c695cb5 100644 --- a/java/platform_bootclasspath.go +++ b/java/platform_bootclasspath.go @@ -203,18 +203,11 @@ func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.Mo func (b *platformBootclasspathModule) generateClasspathProtoBuildActions(ctx android.ModuleContext) { // ART and platform boot jars must have a corresponding entry in DEX2OATBOOTCLASSPATH classpathJars := configuredJarListToClasspathJars(ctx, b.ClasspathFragmentToConfiguredJarList(ctx), BOOTCLASSPATH, DEX2OATBOOTCLASSPATH) - - // TODO(satayev): remove updatable boot jars once each apex has its own fragment - global := dexpreopt.GetGlobalConfig(ctx) - classpathJars = append(classpathJars, configuredJarListToClasspathJars(ctx, global.UpdatableBootJars, BOOTCLASSPATH)...) - b.classpathFragmentBase().generateClasspathProtoBuildActions(ctx, classpathJars) } func (b *platformBootclasspathModule) ClasspathFragmentToConfiguredJarList(ctx android.ModuleContext) android.ConfiguredJarList { - global := dexpreopt.GetGlobalConfig(ctx) - // TODO(satayev): split ART apex jars into their own classpathFragment - return global.BootJars + return b.getImageConfig(ctx).modules } // checkNonUpdatableModules ensures that the non-updatable modules supplied are not part of an