Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e3a84fe7 authored by Chaitanya Cheemala (xWF)'s avatar Chaitanya Cheemala (xWF) Committed by Gerrit Code Review
Browse files

Revert "Do not allow vintf_fragments for modules installed in the filesystem"

This reverts commit d3d89ede.

Reason for revert: Likely culprit for b/379811732  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Change-Id: I9d70e7ae4a7c9663d6bc25f0291df615dfc6d58b
parent d3d89ede
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -117,7 +117,6 @@ type Module interface {
	HostRequiredModuleNames() []string
	TargetRequiredModuleNames() []string
	VintfFragmentModuleNames(ctx ConfigurableEvaluatorContext) []string
	VintfFragments(ctx ConfigurableEvaluatorContext) []string

	ConfigurableEvaluator(ctx ConfigurableEvaluatorContext) proptools.ConfigurableEvaluator

@@ -1627,10 +1626,6 @@ func (m *ModuleBase) VintfFragmentModuleNames(ctx ConfigurableEvaluatorContext)
	return m.base().commonProperties.Vintf_fragment_modules.GetOrDefault(m.ConfigurableEvaluator(ctx), nil)
}

func (m *ModuleBase) VintfFragments(ctx ConfigurableEvaluatorContext) []string {
	return m.base().commonProperties.Vintf_fragments.GetOrDefault(m.ConfigurableEvaluator(ctx), nil)
}

func (m *ModuleBase) generateVariantTarget(ctx *moduleContext) {
	namespacePrefix := ctx.Namespace().id
	if namespacePrefix != "" {
+0 −6
Original line number Diff line number Diff line
@@ -9,8 +9,6 @@ type ModuleProxy struct {
	module blueprint.ModuleProxy
}

var _ Module = (*ModuleProxy)(nil)

func (m ModuleProxy) Name() string {
	return m.module.Name()
}
@@ -227,7 +225,3 @@ func (m ModuleProxy) DecodeMultilib(ctx ConfigContext) (string, string) {
func (m ModuleProxy) Overrides() []string {
	panic("method is not implemented on ModuleProxy")
}

func (m ModuleProxy) VintfFragments(ctx ConfigurableEvaluatorContext) []string {
	panic("method is not implemented on ModuleProxy")
}
+0 −48
Original line number Diff line number Diff line
@@ -71,10 +71,6 @@ type filesystemBuilder interface {
	// For example, GSI system.img contains system_ext and product artifacts and their
	// relPathInPackage need to be rebased to system/system_ext and system/system_product.
	ModifyPackagingSpec(spec *android.PackagingSpec)

	// Function to check if the filesystem should not use `vintf_fragments` property,
	// but use `vintf_fragment` module type instead
	ShouldUseVintfFragmentModuleOnly() bool
}

var _ filesystemBuilder = (*filesystem)(nil)
@@ -329,9 +325,6 @@ var pctx = android.NewPackageContext("android/soong/filesystem")

func (f *filesystem) GenerateAndroidBuildActions(ctx android.ModuleContext) {
	validatePartitionType(ctx, f)
	if f.filesystemBuilder.ShouldUseVintfFragmentModuleOnly() {
		f.validateVintfFragments(ctx)
	}
	switch f.fsType(ctx) {
	case ext4Type, erofsType, f2fsType:
		f.output = f.buildImageUsingBuildImage(ctx)
@@ -360,43 +353,6 @@ func (f *filesystem) GenerateAndroidBuildActions(ctx android.ModuleContext) {
	}
}

func (f *filesystem) validateVintfFragments(ctx android.ModuleContext) {
	visitedModule := map[string]bool{}
	packagingSpecs := f.gatherFilteredPackagingSpecs(ctx)

	moduleInFileSystem := func(mod android.Module) bool {
		for _, ps := range android.OtherModuleProviderOrDefault(
			ctx, mod, android.InstallFilesProvider).PackagingSpecs {
			if _, ok := packagingSpecs[ps.RelPathInPackage()]; ok {
				return true
			}
		}
		return false
	}

	ctx.WalkDeps(func(child, parent android.Module) bool {
		if visitedModule[child.Name()] {
			return false
		}
		if !moduleInFileSystem(child) {
			visitedModule[child.Name()] = true
			return true
		}
		if vintfFragments := child.VintfFragments(ctx); vintfFragments != nil {
			ctx.PropertyErrorf(
				"vintf_fragments",
				"Module %s is referenced by soong-defined filesystem %s with property vintf_fragments(%s) in use."+
					" Use vintf_fragment_modules property instead.",
				child.Name(),
				f.BaseModuleName(),
				strings.Join(vintfFragments, ", "),
			)
		}
		visitedModule[child.Name()] = true
		return true
	})
}

func (f *filesystem) appendToEntry(ctx android.ModuleContext, installedFile android.Path) {
	partitionBaseDir := android.PathForModuleOut(ctx, "root", f.partitionName()).String() + "/"

@@ -801,10 +757,6 @@ func (f *filesystem) BuildLinkerConfigFile(ctx android.ModuleContext, builder *a
	f.appendToEntry(ctx, output)
}

func (f *filesystem) ShouldUseVintfFragmentModuleOnly() bool {
	return false
}

type partition interface {
	PartitionType() string
}
+0 −4
Original line number Diff line number Diff line
@@ -63,7 +63,3 @@ func (s *systemImage) FilterPackagingSpec(ps android.PackagingSpec) bool {
		(ps.Partition() == "system" || ps.Partition() == "root" ||
			strings.HasPrefix(ps.Partition(), "system/"))
}

func (s *systemImage) ShouldUseVintfFragmentModuleOnly() bool {
	return true
}