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:
@@ -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)
|
||||
}
|
||||
|
||||
|
@@ -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.
|
||||
|
@@ -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,
|
||||
|
@@ -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...)
|
||||
|
Reference in New Issue
Block a user