Do not add .tidy files as RBE link inputs

* RBE adds implicit dependent files as inputs
  and creates too long commands.
* Adds .tidy files as validation paths.
* Change type of tidyFiles to WritablePaths.

Bug: 203577539
Test: lunch aosp_cf_arm64_phone-userdebug; USE_RBE=true WITH_TIDY=1 make
Test: USE_RBE=true WITH_TIDY=1 mm in external/skia
Change-Id: I5fc9d6f8c9c58abcd3721ca9fbae1bc785e4e609
This commit is contained in:
Chih-Hung Hsieh
2021-10-25 11:09:19 -07:00
parent 85d7297318
commit 3bb934f0ad
4 changed files with 15 additions and 15 deletions

View File

@@ -409,7 +409,7 @@ type ModuleContext interface {
PackageFile(installPath InstallPath, name string, srcPath Path) PackagingSpec PackageFile(installPath InstallPath, name string, srcPath Path) PackagingSpec
CheckbuildFile(srcPath Path) CheckbuildFile(srcPath Path)
TidyFile(srcPath Path) TidyFile(srcPath WritablePath)
InstallInData() bool InstallInData() bool
InstallInTestcases() bool InstallInTestcases() bool
@@ -1190,7 +1190,7 @@ type ModuleBase struct {
installFiles InstallPaths installFiles InstallPaths
installFilesDepSet *installPathsDepSet installFilesDepSet *installPathsDepSet
checkbuildFiles Paths checkbuildFiles Paths
tidyFiles Paths tidyFiles WritablePaths
packagingSpecs []PackagingSpec packagingSpecs []PackagingSpec
packagingSpecsDepSet *packagingSpecsDepSet packagingSpecsDepSet *packagingSpecsDepSet
noticeFiles Paths noticeFiles Paths
@@ -1764,7 +1764,7 @@ func (m *ModuleBase) VintfFragments() Paths {
func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) { func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) {
var allInstalledFiles InstallPaths var allInstalledFiles InstallPaths
var allCheckbuildFiles Paths var allCheckbuildFiles Paths
var allTidyFiles Paths var allTidyFiles WritablePaths
ctx.VisitAllModuleVariants(func(module Module) { ctx.VisitAllModuleVariants(func(module Module) {
a := module.base() a := module.base()
allInstalledFiles = append(allInstalledFiles, a.installFiles...) allInstalledFiles = append(allInstalledFiles, a.installFiles...)
@@ -1795,7 +1795,7 @@ func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) {
if len(allTidyFiles) > 0 { if len(allTidyFiles) > 0 {
name := namespacePrefix + ctx.ModuleName() + "-tidy" name := namespacePrefix + ctx.ModuleName() + "-tidy"
ctx.Phony(name, allTidyFiles...) ctx.Phony(name, allTidyFiles.Paths()...)
m.tidyTarget = PathForPhony(ctx, name) m.tidyTarget = PathForPhony(ctx, name)
deps = append(deps, m.tidyTarget) deps = append(deps, m.tidyTarget)
} }
@@ -2207,7 +2207,7 @@ type moduleContext struct {
packagingSpecs []PackagingSpec packagingSpecs []PackagingSpec
installFiles InstallPaths installFiles InstallPaths
checkbuildFiles Paths checkbuildFiles Paths
tidyFiles Paths tidyFiles WritablePaths
module Module module Module
phonies map[string]Paths phonies map[string]Paths
@@ -2942,7 +2942,7 @@ func (m *moduleContext) CheckbuildFile(srcPath Path) {
m.checkbuildFiles = append(m.checkbuildFiles, srcPath) m.checkbuildFiles = append(m.checkbuildFiles, srcPath)
} }
func (m *moduleContext) TidyFile(srcPath Path) { func (m *moduleContext) TidyFile(srcPath WritablePath) {
m.tidyFiles = append(m.tidyFiles, srcPath) m.tidyFiles = append(m.tidyFiles, srcPath)
} }

View File

@@ -413,7 +413,7 @@ func (binary *binaryDecorator) link(ctx ModuleContext,
linkerDeps = append(linkerDeps, deps.LateSharedLibsDeps...) linkerDeps = append(linkerDeps, deps.LateSharedLibsDeps...)
} }
linkerDeps = append(linkerDeps, objs.tidyFiles...) validations = append(validations, objs.tidyFiles...)
linkerDeps = append(linkerDeps, flags.LdFlagsDeps...) linkerDeps = append(linkerDeps, flags.LdFlagsDeps...)
// Register link action. // Register link action.

View File

@@ -421,7 +421,7 @@ type StripFlags struct {
// Objects is a collection of file paths corresponding to outputs for C++ related build statements. // Objects is a collection of file paths corresponding to outputs for C++ related build statements.
type Objects struct { type Objects struct {
objFiles android.Paths objFiles android.Paths
tidyFiles android.Paths tidyFiles android.WritablePaths
coverageFiles android.Paths coverageFiles android.Paths
sAbiDumpFiles android.Paths sAbiDumpFiles android.Paths
kytheFiles android.Paths kytheFiles android.Paths
@@ -430,7 +430,7 @@ type Objects struct {
func (a Objects) Copy() Objects { func (a Objects) Copy() Objects {
return Objects{ return Objects{
objFiles: append(android.Paths{}, a.objFiles...), objFiles: append(android.Paths{}, a.objFiles...),
tidyFiles: append(android.Paths{}, a.tidyFiles...), tidyFiles: append(android.WritablePaths{}, a.tidyFiles...),
coverageFiles: append(android.Paths{}, a.coverageFiles...), coverageFiles: append(android.Paths{}, a.coverageFiles...),
sAbiDumpFiles: append(android.Paths{}, a.sAbiDumpFiles...), sAbiDumpFiles: append(android.Paths{}, a.sAbiDumpFiles...),
kytheFiles: append(android.Paths{}, a.kytheFiles...), kytheFiles: append(android.Paths{}, a.kytheFiles...),
@@ -459,11 +459,11 @@ func transformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles, no
// Source files are one-to-one with tidy, coverage, or kythe files, if enabled. // Source files are one-to-one with tidy, coverage, or kythe files, if enabled.
objFiles := make(android.Paths, len(srcFiles)) objFiles := make(android.Paths, len(srcFiles))
var tidyFiles android.Paths var tidyFiles android.WritablePaths
noTidySrcsMap := make(map[android.Path]bool) noTidySrcsMap := make(map[android.Path]bool)
var tidyVars string var tidyVars string
if flags.tidy { if flags.tidy {
tidyFiles = make(android.Paths, 0, len(srcFiles)) tidyFiles = make(android.WritablePaths, 0, len(srcFiles))
for _, path := range noTidySrcs { for _, path := range noTidySrcs {
noTidySrcsMap[path] = true noTidySrcsMap[path] = true
} }
@@ -741,7 +741,7 @@ func transformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles, no
// Generate a rule for compiling multiple .o files to a static library (.a) // Generate a rule for compiling multiple .o files to a static library (.a)
func transformObjToStaticLib(ctx android.ModuleContext, func transformObjToStaticLib(ctx android.ModuleContext,
objFiles android.Paths, wholeStaticLibs android.Paths, objFiles android.Paths, wholeStaticLibs android.Paths,
flags builderFlags, outputFile android.ModuleOutPath, deps android.Paths) { flags builderFlags, outputFile android.ModuleOutPath, deps android.Paths, validations android.WritablePaths) {
arCmd := "${config.ClangBin}/llvm-ar" arCmd := "${config.ClangBin}/llvm-ar"
arFlags := "" arFlags := ""
@@ -756,6 +756,7 @@ func transformObjToStaticLib(ctx android.ModuleContext,
Output: outputFile, Output: outputFile,
Inputs: objFiles, Inputs: objFiles,
Implicits: deps, Implicits: deps,
Validations: validations.Paths(),
Args: map[string]string{ Args: map[string]string{
"arFlags": "crsPD" + arFlags, "arFlags": "crsPD" + arFlags,
"arCmd": arCmd, "arCmd": arCmd,

View File

@@ -1288,7 +1288,7 @@ func (library *libraryDecorator) linkStatic(ctx ModuleContext,
} }
} }
transformObjToStaticLib(ctx, library.objects.objFiles, deps.WholeStaticLibsFromPrebuilts, builderFlags, outputFile, objs.tidyFiles) transformObjToStaticLib(ctx, library.objects.objFiles, deps.WholeStaticLibsFromPrebuilts, builderFlags, outputFile, nil, objs.tidyFiles)
library.coverageOutputFile = transformCoverageFilesToZip(ctx, library.objects, ctx.ModuleName()) library.coverageOutputFile = transformCoverageFilesToZip(ctx, library.objects, ctx.ModuleName())
@@ -1417,10 +1417,9 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
linkerDeps = append(linkerDeps, deps.EarlySharedLibsDeps...) linkerDeps = append(linkerDeps, deps.EarlySharedLibsDeps...)
linkerDeps = append(linkerDeps, deps.SharedLibsDeps...) linkerDeps = append(linkerDeps, deps.SharedLibsDeps...)
linkerDeps = append(linkerDeps, deps.LateSharedLibsDeps...) linkerDeps = append(linkerDeps, deps.LateSharedLibsDeps...)
linkerDeps = append(linkerDeps, objs.tidyFiles...)
transformObjToDynamicBinary(ctx, objs.objFiles, sharedLibs, transformObjToDynamicBinary(ctx, objs.objFiles, sharedLibs,
deps.StaticLibs, deps.LateStaticLibs, deps.WholeStaticLibs, deps.StaticLibs, deps.LateStaticLibs, deps.WholeStaticLibs,
linkerDeps, deps.CrtBegin, deps.CrtEnd, false, builderFlags, outputFile, implicitOutputs, nil) linkerDeps, deps.CrtBegin, deps.CrtEnd, false, builderFlags, outputFile, implicitOutputs, objs.tidyFiles)
objs.coverageFiles = append(objs.coverageFiles, deps.StaticLibObjs.coverageFiles...) objs.coverageFiles = append(objs.coverageFiles, deps.StaticLibObjs.coverageFiles...)
objs.coverageFiles = append(objs.coverageFiles, deps.WholeStaticLibObjs.coverageFiles...) objs.coverageFiles = append(objs.coverageFiles, deps.WholeStaticLibObjs.coverageFiles...)