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

Commit 407c2434 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Store missing profile files into a Make variable"

parents 75002436 28316d4e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -226,7 +226,7 @@ func warningsAreAllowed(subdir string) bool {
}

func addToModuleList(ctx ModuleContext, list string, module string) {
	getWallWerrorMap(ctx.Config(), list).Store(module, true)
	getNamedMapForConfig(ctx.Config(), list).Store(module, true)
}

// Create a Flags struct that collects the compile flags from global values,
+6 −4
Original line number Diff line number Diff line
@@ -27,20 +27,21 @@ import (
const (
	modulesAddedWall          = "ModulesAddedWall"
	modulesUsingWnoError      = "ModulesUsingWnoError"
	modulesMissingProfileFile = "ModulesMissingProfileFile"
)

func init() {
	android.RegisterMakeVarsProvider(pctx, makeVarsProvider)
}

func getWallWerrorMap(config android.Config, name string) *sync.Map {
func getNamedMapForConfig(config android.Config, name string) *sync.Map {
	return config.Once(name, func() interface{} {
		return &sync.Map{}
	}).(*sync.Map)
}

func makeStringOfKeys(ctx android.MakeVarsContext, setName string) string {
	set := getWallWerrorMap(ctx.Config(), setName)
	set := getNamedMapForConfig(ctx.Config(), setName)
	keys := []string{}
	set.Range(func(key interface{}, value interface{}) bool {
		keys = append(keys, key.(string))
@@ -102,6 +103,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
	ctx.Strict("ANDROID_WARNING_ALLOWED_PROJECTS", makeStringOfWarningAllowedProjects())
	ctx.Strict("SOONG_MODULES_ADDED_WALL", makeStringOfKeys(ctx, modulesAddedWall))
	ctx.Strict("SOONG_MODULES_USING_WNO_ERROR", makeStringOfKeys(ctx, modulesUsingWnoError))
	ctx.Strict("SOONG_MODULES_MISSING_PGO_PROFILE_FILE", makeStringOfKeys(ctx, modulesMissingProfileFile))

	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS", strings.Join(asanCflags, " "))
	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS", strings.Join(asanLdflags, " "))
+8 −0
Original line number Diff line number Diff line
@@ -38,6 +38,10 @@ const profileSamplingFlag = "-gline-tables-only"
const profileUseInstrumentFormat = "-fprofile-use=%s"
const profileUseSamplingFormat = "-fprofile-sample-use=%s"

func recordMissingProfileFile(ctx ModuleContext, missing string) {
	getNamedMapForConfig(ctx.Config(), modulesMissingProfileFile).Store(missing, true)
}

type PgoProperties struct {
	Pgo struct {
		Instrumentation    *bool
@@ -96,6 +100,10 @@ func (props *PgoProperties) getPgoProfileFile(ctx ModuleContext) android.Optiona
		}
	}

	// Record that this module's profile file is absent
	missing := *props.Pgo.Profile_file + ":" + ctx.ModuleDir() + "/Android.bp:" + ctx.ModuleName()
	recordMissingProfileFile(ctx, missing)

	return android.OptionalPathForPath(nil)
}