Loading cc/compiler.go +1 −1 Original line number Diff line number Diff line Loading @@ -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, Loading cc/makevars.go +6 −4 Original line number Diff line number Diff line Loading @@ -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)) Loading Loading @@ -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, " ")) Loading cc/pgo.go +8 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) } Loading Loading
cc/compiler.go +1 −1 Original line number Diff line number Diff line Loading @@ -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, Loading
cc/makevars.go +6 −4 Original line number Diff line number Diff line Loading @@ -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)) Loading Loading @@ -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, " ")) Loading
cc/pgo.go +8 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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) } Loading