aboutsummaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorKousik Kumar <kousikk@google.com>2020-04-28 09:13:50 +0000
committerRamy Medhat <abdelaal@google.com>2020-05-14 17:33:35 +0000
commit459c6b25e5092b6bc785d2eabbba29ff4ef8d592 (patch)
tree1cf39cab27f3f738f75b8bf15726c2967b5105ca /cc
parentdd89a281042036fc583baff54a4d743c6c877e83 (diff)
downloadbuild_soong-459c6b25e5092b6bc785d2eabbba29ff4ef8d592.tar.gz
build_soong-459c6b25e5092b6bc785d2eabbba29ff4ef8d592.tar.bz2
build_soong-459c6b25e5092b6bc785d2eabbba29ff4ef8d592.zip
Add implicit outputs to link actions
Bug: b/154733231 Change-Id: I9b6ae97f5bbfe8f9c4b9c089544a768982794f32 Merged-In: I9b6ae97f5bbfe8f9c4b9c089544a768982794f32 Test: Built the failing action with / without this change
Diffstat (limited to 'cc')
-rw-r--r--cc/builder.go26
1 files changed, 14 insertions, 12 deletions
diff --git a/cc/builder.go b/cc/builder.go
index d8e90b61..476f16ae 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -77,10 +77,10 @@ var (
ExecStrategy: "${config.RECXXLinksExecStrategy}",
Inputs: []string{"${out}.rsp"},
RSPFile: "${out}.rsp",
- OutputFiles: []string{"${out}"},
+ OutputFiles: []string{"${out}", "$implicitOutputs"},
ToolchainInputs: []string{"$ldCmd"},
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXLinksPool}"},
- }, []string{"ldCmd", "crtBegin", "libFlags", "crtEnd", "ldFlags", "extraLibFlags"}, nil)
+ }, []string{"ldCmd", "crtBegin", "libFlags", "crtEnd", "ldFlags", "extraLibFlags"}, []string{"implicitOutputs"})
partialLd, partialLdRE = remoteexec.StaticRules(pctx, "partialLd",
blueprint.RuleParams{
@@ -91,10 +91,10 @@ var (
}, &remoteexec.REParams{
Labels: map[string]string{"type": "link", "tool": "clang"},
ExecStrategy: "${config.RECXXLinksExecStrategy}", Inputs: []string{"$inCommaList"},
- OutputFiles: []string{"${out}"},
+ OutputFiles: []string{"${out}", "$implicitOutputs"},
ToolchainInputs: []string{"$ldCmd"},
Platform: map[string]string{remoteexec.PoolKey: "${config.RECXXLinksPool}"},
- }, []string{"ldCmd", "ldFlags"}, []string{"inCommaList"})
+ }, []string{"ldCmd", "ldFlags"}, []string{"inCommaList", "implicitOutputs"})
ar = pctx.AndroidStaticRule("ar",
blueprint.RuleParams{
@@ -672,8 +672,17 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
}
rule := ld
+ args := map[string]string{
+ "ldCmd": ldCmd,
+ "crtBegin": crtBegin.String(),
+ "libFlags": strings.Join(libFlagsList, " "),
+ "extraLibFlags": flags.extraLibFlags,
+ "ldFlags": flags.globalLdFlags + " " + flags.localLdFlags,
+ "crtEnd": crtEnd.String(),
+ }
if ctx.Config().IsEnvTrue("RBE_CXX_LINKS") {
rule = ldRE
+ args["implicitOutputs"] = strings.Join(implicitOutputs.Strings(), ",")
}
ctx.Build(pctx, android.BuildParams{
@@ -683,14 +692,7 @@ func TransformObjToDynamicBinary(ctx android.ModuleContext,
ImplicitOutputs: implicitOutputs,
Inputs: objFiles,
Implicits: deps,
- Args: map[string]string{
- "ldCmd": ldCmd,
- "crtBegin": crtBegin.String(),
- "libFlags": strings.Join(libFlagsList, " "),
- "extraLibFlags": flags.extraLibFlags,
- "ldFlags": flags.globalLdFlags + " " + flags.localLdFlags,
- "crtEnd": crtEnd.String(),
- },
+ Args: args,
})
}