Merge "Pass cpp linking implicit deps to RBE." am: 3618f0a02e
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1414829 Change-Id: I30d07f85594f7ee04ab288dbb799eec8d62c23b0
This commit is contained in:
@@ -69,12 +69,12 @@ var (
|
|||||||
&remoteexec.REParams{
|
&remoteexec.REParams{
|
||||||
Labels: map[string]string{"type": "link", "tool": "clang"},
|
Labels: map[string]string{"type": "link", "tool": "clang"},
|
||||||
ExecStrategy: "${config.RECXXLinksExecStrategy}",
|
ExecStrategy: "${config.RECXXLinksExecStrategy}",
|
||||||
Inputs: []string{"${out}.rsp"},
|
Inputs: []string{"${out}.rsp", "$implicitInputs"},
|
||||||
RSPFile: "${out}.rsp",
|
RSPFile: "${out}.rsp",
|
||||||
OutputFiles: []string{"${out}", "$implicitOutputs"},
|
OutputFiles: []string{"${out}", "$implicitOutputs"},
|
||||||
ToolchainInputs: []string{"$ldCmd"},
|
ToolchainInputs: []string{"$ldCmd"},
|
||||||
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXLinksPool}"},
|
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXLinksPool}"},
|
||||||
}, []string{"ldCmd", "crtBegin", "libFlags", "crtEnd", "ldFlags", "extraLibFlags"}, []string{"implicitOutputs"})
|
}, []string{"ldCmd", "crtBegin", "libFlags", "crtEnd", "ldFlags", "extraLibFlags"}, []string{"implicitInputs", "implicitOutputs"})
|
||||||
|
|
||||||
partialLd, partialLdRE = remoteexec.StaticRules(pctx, "partialLd",
|
partialLd, partialLdRE = remoteexec.StaticRules(pctx, "partialLd",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
@@ -83,12 +83,13 @@ var (
|
|||||||
Command: "$reTemplate$ldCmd -fuse-ld=lld -nostdlib -no-pie -Wl,-r ${in} -o ${out} ${ldFlags}",
|
Command: "$reTemplate$ldCmd -fuse-ld=lld -nostdlib -no-pie -Wl,-r ${in} -o ${out} ${ldFlags}",
|
||||||
CommandDeps: []string{"$ldCmd"},
|
CommandDeps: []string{"$ldCmd"},
|
||||||
}, &remoteexec.REParams{
|
}, &remoteexec.REParams{
|
||||||
Labels: map[string]string{"type": "link", "tool": "clang"},
|
Labels: map[string]string{"type": "link", "tool": "clang"},
|
||||||
ExecStrategy: "${config.RECXXLinksExecStrategy}", Inputs: []string{"$inCommaList"},
|
ExecStrategy: "${config.RECXXLinksExecStrategy}",
|
||||||
|
Inputs: []string{"$inCommaList", "$implicitInputs"},
|
||||||
OutputFiles: []string{"${out}", "$implicitOutputs"},
|
OutputFiles: []string{"${out}", "$implicitOutputs"},
|
||||||
ToolchainInputs: []string{"$ldCmd"},
|
ToolchainInputs: []string{"$ldCmd"},
|
||||||
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXLinksPool}"},
|
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXLinksPool}"},
|
||||||
}, []string{"ldCmd", "ldFlags"}, []string{"inCommaList", "implicitOutputs"})
|
}, []string{"ldCmd", "ldFlags"}, []string{"implicitInputs", "inCommaList", "implicitOutputs"})
|
||||||
|
|
||||||
ar = pctx.AndroidStaticRule("ar",
|
ar = pctx.AndroidStaticRule("ar",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
@@ -236,12 +237,12 @@ var (
|
|||||||
}, &remoteexec.REParams{
|
}, &remoteexec.REParams{
|
||||||
Labels: map[string]string{"type": "tool", "name": "abi-linker"},
|
Labels: map[string]string{"type": "tool", "name": "abi-linker"},
|
||||||
ExecStrategy: "${config.REAbiLinkerExecStrategy}",
|
ExecStrategy: "${config.REAbiLinkerExecStrategy}",
|
||||||
Inputs: []string{"$sAbiLinkerLibs", "${out}.rsp", "$implicits"},
|
Inputs: []string{"$sAbiLinkerLibs", "${out}.rsp", "$implicitInputs"},
|
||||||
RSPFile: "${out}.rsp",
|
RSPFile: "${out}.rsp",
|
||||||
OutputFiles: []string{"$out"},
|
OutputFiles: []string{"$out"},
|
||||||
ToolchainInputs: []string{"$sAbiLinker"},
|
ToolchainInputs: []string{"$sAbiLinker"},
|
||||||
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXPool}"},
|
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXPool}"},
|
||||||
}, []string{"symbolFilter", "arch", "exportedHeaderFlags"}, []string{"implicits"})
|
}, []string{"symbolFilter", "arch", "exportedHeaderFlags"}, []string{"implicitInputs"})
|
||||||
|
|
||||||
_ = pctx.SourcePathVariable("sAbiDiffer", "prebuilts/clang-tools/${config.HostPrebuiltTag}/bin/header-abi-diff")
|
_ = pctx.SourcePathVariable("sAbiDiffer", "prebuilts/clang-tools/${config.HostPrebuiltTag}/bin/header-abi-diff")
|
||||||
|
|
||||||
@@ -747,6 +748,7 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
|
|||||||
if ctx.Config().IsEnvTrue("RBE_CXX_LINKS") {
|
if ctx.Config().IsEnvTrue("RBE_CXX_LINKS") {
|
||||||
rule = ldRE
|
rule = ldRE
|
||||||
args["implicitOutputs"] = strings.Join(implicitOutputs.Strings(), ",")
|
args["implicitOutputs"] = strings.Join(implicitOutputs.Strings(), ",")
|
||||||
|
args["implicitInputs"] = strings.Join(deps.Strings(), ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Build(pctx, android.BuildParams{
|
ctx.Build(pctx, android.BuildParams{
|
||||||
@@ -796,7 +798,7 @@ func TransformDumpToLinkedDump(ctx android.ModuleContext, sAbiDumps android.Path
|
|||||||
rbeImplicits = append(rbeImplicits, p[2:])
|
rbeImplicits = append(rbeImplicits, p[2:])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
args["implicits"] = strings.Join(rbeImplicits, ",")
|
args["implicitInputs"] = strings.Join(rbeImplicits, ",")
|
||||||
}
|
}
|
||||||
ctx.Build(pctx, android.BuildParams{
|
ctx.Build(pctx, android.BuildParams{
|
||||||
Rule: rule,
|
Rule: rule,
|
||||||
@@ -913,6 +915,7 @@ func TransformObjsToObj(ctx android.ModuleContext, objFiles android.Paths,
|
|||||||
if ctx.Config().IsEnvTrue("RBE_CXX_LINKS") {
|
if ctx.Config().IsEnvTrue("RBE_CXX_LINKS") {
|
||||||
rule = partialLdRE
|
rule = partialLdRE
|
||||||
args["inCommaList"] = strings.Join(objFiles.Strings(), ",")
|
args["inCommaList"] = strings.Join(objFiles.Strings(), ",")
|
||||||
|
args["implicitInputs"] = strings.Join(deps.Strings(), ",")
|
||||||
}
|
}
|
||||||
ctx.Build(pctx, android.BuildParams{
|
ctx.Build(pctx, android.BuildParams{
|
||||||
Rule: rule,
|
Rule: rule,
|
||||||
|
Reference in New Issue
Block a user