Revert "Generate app profiles even if dexpreopt is disabled."
Revert submission 2574032 Reason for revert: DroidMonitor-triggered revert due to breakage <https://android-build.googleplex.com/builds/quarterdeck?branch=aosp-master&target=aosp_cf_riscv64_minidroid-userdebug&lkgb=10069333&lkbb=10075041&fkbb=10071083>, bug <b/280902279> Reverted changes: /q/submissionid:2574032 Change-Id: Ia9d05f3b7439604eb4a4b4100f46879fe11f5820 BUG: <280902279>
This commit is contained in:
committed by
Gerrit Code Review
parent
7b845e808f
commit
3d08c388b9
@@ -813,20 +813,6 @@ func normalizePathRelativeToTop(path Path) Path {
|
|||||||
return path.RelativeToTop()
|
return path.RelativeToTop()
|
||||||
}
|
}
|
||||||
|
|
||||||
func allOutputs(p BuildParams) []string {
|
|
||||||
outputs := append(WritablePaths(nil), p.Outputs...)
|
|
||||||
outputs = append(outputs, p.ImplicitOutputs...)
|
|
||||||
if p.Output != nil {
|
|
||||||
outputs = append(outputs, p.Output)
|
|
||||||
}
|
|
||||||
return outputs.Strings()
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllOutputs returns all 'BuildParams.Output's and 'BuildParams.Outputs's in their full path string forms.
|
|
||||||
func (p TestingBuildParams) AllOutputs() []string {
|
|
||||||
return allOutputs(p.BuildParams)
|
|
||||||
}
|
|
||||||
|
|
||||||
// baseTestingComponent provides functionality common to both TestingModule and TestingSingleton.
|
// baseTestingComponent provides functionality common to both TestingModule and TestingSingleton.
|
||||||
type baseTestingComponent struct {
|
type baseTestingComponent struct {
|
||||||
config Config
|
config Config
|
||||||
@@ -968,7 +954,12 @@ func (b baseTestingComponent) buildParamsFromOutput(file string) TestingBuildPar
|
|||||||
func (b baseTestingComponent) allOutputs() []string {
|
func (b baseTestingComponent) allOutputs() []string {
|
||||||
var outputFullPaths []string
|
var outputFullPaths []string
|
||||||
for _, p := range b.provider.BuildParamsForTests() {
|
for _, p := range b.provider.BuildParamsForTests() {
|
||||||
outputFullPaths = append(outputFullPaths, allOutputs(p)...)
|
outputs := append(WritablePaths(nil), p.Outputs...)
|
||||||
|
outputs = append(outputs, p.ImplicitOutputs...)
|
||||||
|
if p.Output != nil {
|
||||||
|
outputs = append(outputs, p.Output)
|
||||||
|
}
|
||||||
|
outputFullPaths = append(outputFullPaths, outputs.Strings()...)
|
||||||
}
|
}
|
||||||
return outputFullPaths
|
return outputFullPaths
|
||||||
}
|
}
|
||||||
|
@@ -100,19 +100,11 @@ func GenerateDexpreoptRule(ctx android.BuilderContext, globalSoong *GlobalSoongC
|
|||||||
return rule, nil
|
return rule, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// If dexpreopt is applicable to the module, returns whether dexpreopt is disabled. Otherwise, the
|
|
||||||
// behavior is undefined.
|
|
||||||
// When it returns true, dexpreopt artifacts will not be generated, but profile will still be
|
|
||||||
// generated if profile-guided compilation is requested.
|
|
||||||
func dexpreoptDisabled(ctx android.PathContext, global *GlobalConfig, module *ModuleConfig) bool {
|
func dexpreoptDisabled(ctx android.PathContext, global *GlobalConfig, module *ModuleConfig) bool {
|
||||||
if ctx.Config().UnbundledBuild() {
|
if ctx.Config().UnbundledBuild() {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
if global.DisablePreopt {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
if contains(global.DisablePreoptModules, module.Name) {
|
if contains(global.DisablePreoptModules, module.Name) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@@ -181,10 +181,3 @@ func FixtureDisableDexpreoptBootImages(disable bool) android.FixturePreparer {
|
|||||||
dexpreoptConfig.DisablePreoptBootImages = disable
|
dexpreoptConfig.DisablePreoptBootImages = disable
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// FixtureDisableDexpreopt sets the DisablePreopt property in the global config.
|
|
||||||
func FixtureDisableDexpreopt(disable bool) android.FixturePreparer {
|
|
||||||
return FixtureModifyGlobalConfig(func(_ android.PathContext, dexpreoptConfig *GlobalConfig) {
|
|
||||||
dexpreoptConfig.DisablePreopt = disable
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
@@ -23,7 +23,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestR8(t *testing.T) {
|
func TestR8(t *testing.T) {
|
||||||
result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
|
result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
|
||||||
android_app {
|
android_app {
|
||||||
name: "app",
|
name: "app",
|
||||||
srcs: ["foo.java"],
|
srcs: ["foo.java"],
|
||||||
@@ -191,7 +191,7 @@ func TestR8TransitiveDeps(t *testing.T) {
|
|||||||
|
|
||||||
for _, tc := range testcases {
|
for _, tc := range testcases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
fixturePreparer := PrepareForTestWithJavaDefaultModules
|
fixturePreparer := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd
|
||||||
if tc.unbundled {
|
if tc.unbundled {
|
||||||
fixturePreparer = android.GroupFixturePreparers(
|
fixturePreparer = android.GroupFixturePreparers(
|
||||||
fixturePreparer,
|
fixturePreparer,
|
||||||
@@ -258,7 +258,7 @@ func TestR8TransitiveDeps(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestR8Flags(t *testing.T) {
|
func TestR8Flags(t *testing.T) {
|
||||||
result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
|
result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
|
||||||
android_app {
|
android_app {
|
||||||
name: "app",
|
name: "app",
|
||||||
srcs: ["foo.java"],
|
srcs: ["foo.java"],
|
||||||
@@ -287,7 +287,7 @@ func TestR8Flags(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestD8(t *testing.T) {
|
func TestD8(t *testing.T) {
|
||||||
result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
|
result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
|
||||||
java_library {
|
java_library {
|
||||||
name: "foo",
|
name: "foo",
|
||||||
srcs: ["foo.java"],
|
srcs: ["foo.java"],
|
||||||
@@ -328,7 +328,7 @@ func TestD8(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestProguardFlagsInheritance(t *testing.T) {
|
func TestProguardFlagsInheritance(t *testing.T) {
|
||||||
result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, `
|
result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, `
|
||||||
android_app {
|
android_app {
|
||||||
name: "app",
|
name: "app",
|
||||||
static_libs: [
|
static_libs: [
|
||||||
|
@@ -180,8 +180,6 @@ func moduleName(ctx android.BaseModuleContext) string {
|
|||||||
return android.RemoveOptionalPrebuiltPrefix(ctx.ModuleName())
|
return android.RemoveOptionalPrebuiltPrefix(ctx.ModuleName())
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns whether dexpreopt is applicable to the module.
|
|
||||||
// When it returns true, neither profile nor dexpreopt artifacts will be generated.
|
|
||||||
func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool {
|
func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool {
|
||||||
if !ctx.Device() {
|
if !ctx.Device() {
|
||||||
return true
|
return true
|
||||||
@@ -207,6 +205,14 @@ func (d *dexpreopter) dexpreoptDisabled(ctx android.BaseModuleContext) bool {
|
|||||||
|
|
||||||
global := dexpreopt.GetGlobalConfig(ctx)
|
global := dexpreopt.GetGlobalConfig(ctx)
|
||||||
|
|
||||||
|
if global.DisablePreopt {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
if inList(moduleName(ctx), global.DisablePreoptModules) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
isApexSystemServerJar := global.AllApexSystemServerJars(ctx).ContainsJar(moduleName(ctx))
|
isApexSystemServerJar := global.AllApexSystemServerJars(ctx).ContainsJar(moduleName(ctx))
|
||||||
if isApexVariant(ctx) {
|
if isApexVariant(ctx) {
|
||||||
// Don't preopt APEX variant module unless the module is an APEX system server jar.
|
// Don't preopt APEX variant module unless the module is an APEX system server jar.
|
||||||
|
@@ -438,28 +438,3 @@ func TestAndroidMkEntriesForApex(t *testing.T) {
|
|||||||
|
|
||||||
android.AssertIntEquals(t, "entries count", 0, len(entriesList))
|
android.AssertIntEquals(t, "entries count", 0, len(entriesList))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGenerateProfileEvenIfDexpreoptIsDisabled(t *testing.T) {
|
|
||||||
preparers := android.GroupFixturePreparers(
|
|
||||||
PrepareForTestWithJavaDefaultModules,
|
|
||||||
PrepareForTestWithFakeApexMutator,
|
|
||||||
dexpreopt.FixtureDisableDexpreopt(true),
|
|
||||||
)
|
|
||||||
|
|
||||||
result := preparers.RunTestWithBp(t, `
|
|
||||||
java_library {
|
|
||||||
name: "foo",
|
|
||||||
installable: true,
|
|
||||||
dex_preopt: {
|
|
||||||
profile: "art-profile",
|
|
||||||
},
|
|
||||||
srcs: ["a.java"],
|
|
||||||
}`)
|
|
||||||
|
|
||||||
ctx := result.TestContext
|
|
||||||
dexpreopt := ctx.ModuleForTests("foo", "android_common").MaybeRule("dexpreopt")
|
|
||||||
|
|
||||||
expected := []string{"out/soong/.intermediates/foo/android_common/dexpreopt/profile.prof"}
|
|
||||||
|
|
||||||
android.AssertArrayString(t, "outputs", expected, dexpreopt.AllOutputs())
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user