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
CheckbuildFile(srcPath Path)
TidyFile(srcPath Path)
TidyFile(srcPath WritablePath)
InstallInData() bool
InstallInTestcases() bool
@@ -1190,7 +1190,7 @@ type ModuleBase struct {
installFiles InstallPaths
installFilesDepSet *installPathsDepSet
checkbuildFiles Paths
tidyFiles Paths
tidyFiles WritablePaths
packagingSpecs []PackagingSpec
packagingSpecsDepSet *packagingSpecsDepSet
noticeFiles Paths
@@ -1764,7 +1764,7 @@ func (m *ModuleBase) VintfFragments() Paths {
func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) {
var allInstalledFiles InstallPaths
var allCheckbuildFiles Paths
var allTidyFiles Paths
var allTidyFiles WritablePaths
ctx.VisitAllModuleVariants(func(module Module) {
a := module.base()
allInstalledFiles = append(allInstalledFiles, a.installFiles...)
@@ -1795,7 +1795,7 @@ func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) {
if len(allTidyFiles) > 0 {
name := namespacePrefix + ctx.ModuleName() + "-tidy"
ctx.Phony(name, allTidyFiles...)
ctx.Phony(name, allTidyFiles.Paths()...)
m.tidyTarget = PathForPhony(ctx, name)
deps = append(deps, m.tidyTarget)
}
@@ -2207,7 +2207,7 @@ type moduleContext struct {
packagingSpecs []PackagingSpec
installFiles InstallPaths
checkbuildFiles Paths
tidyFiles Paths
tidyFiles WritablePaths
module Module
phonies map[string]Paths
@@ -2942,7 +2942,7 @@ func (m *moduleContext) CheckbuildFile(srcPath Path) {
m.checkbuildFiles = append(m.checkbuildFiles, srcPath)
}
func (m *moduleContext) TidyFile(srcPath Path) {
func (m *moduleContext) TidyFile(srcPath WritablePath) {
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, objs.tidyFiles...)
validations = append(validations, objs.tidyFiles...)
linkerDeps = append(linkerDeps, flags.LdFlagsDeps...)
// 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.
type Objects struct {
objFiles android.Paths
tidyFiles android.Paths
tidyFiles android.WritablePaths
coverageFiles android.Paths
sAbiDumpFiles android.Paths
kytheFiles android.Paths
@@ -430,7 +430,7 @@ type Objects struct {
func (a Objects) Copy() Objects {
return Objects{
objFiles: append(android.Paths{}, a.objFiles...),
tidyFiles: append(android.Paths{}, a.tidyFiles...),
tidyFiles: append(android.WritablePaths{}, a.tidyFiles...),
coverageFiles: append(android.Paths{}, a.coverageFiles...),
sAbiDumpFiles: append(android.Paths{}, a.sAbiDumpFiles...),
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.
objFiles := make(android.Paths, len(srcFiles))
var tidyFiles android.Paths
var tidyFiles android.WritablePaths
noTidySrcsMap := make(map[android.Path]bool)
var tidyVars string
if flags.tidy {
tidyFiles = make(android.Paths, 0, len(srcFiles))
tidyFiles = make(android.WritablePaths, 0, len(srcFiles))
for _, path := range noTidySrcs {
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)
func transformObjToStaticLib(ctx android.ModuleContext,
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"
arFlags := ""
@@ -756,6 +756,7 @@ func transformObjToStaticLib(ctx android.ModuleContext,
Output: outputFile,
Inputs: objFiles,
Implicits: deps,
Validations: validations.Paths(),
Args: map[string]string{
"arFlags": "crsPD" + arFlags,
"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())
@@ -1417,10 +1417,9 @@ func (library *libraryDecorator) linkShared(ctx ModuleContext,
linkerDeps = append(linkerDeps, deps.EarlySharedLibsDeps...)
linkerDeps = append(linkerDeps, deps.SharedLibsDeps...)
linkerDeps = append(linkerDeps, deps.LateSharedLibsDeps...)
linkerDeps = append(linkerDeps, objs.tidyFiles...)
transformObjToDynamicBinary(ctx, objs.objFiles, sharedLibs,
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.WholeStaticLibObjs.coverageFiles...)