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