diff --git a/cc/builder.go b/cc/builder.go index 42d809aa8..b3538142d 100644 --- a/cc/builder.go +++ b/cc/builder.go @@ -764,7 +764,7 @@ func TransformSharedObjectToToc(ctx android.ModuleContext, inputFile android.Pat // Generate a rule for compiling multiple .o files to a .o using ld partial linking func TransformObjsToObj(ctx android.ModuleContext, objFiles android.Paths, - flags builderFlags, outputFile android.WritablePath) { + flags builderFlags, outputFile android.WritablePath, deps android.Paths) { ldCmd := "${config.ClangBin}/clang++" @@ -773,6 +773,7 @@ func TransformObjsToObj(ctx android.ModuleContext, objFiles android.Paths, Description: "link " + outputFile.Base(), Output: outputFile, Inputs: objFiles, + Implicits: deps, Args: map[string]string{ "ldCmd": ldCmd, "ldFlags": flags.ldFlags, diff --git a/cc/linker.go b/cc/linker.go index 563ad041d..e5e14861e 100644 --- a/cc/linker.go +++ b/cc/linker.go @@ -491,7 +491,7 @@ var ( gen_sorted_bss_symbols = pctx.AndroidStaticRule("gen_sorted_bss_symbols", blueprint.RuleParams{ Command: "CROSS_COMPILE=$crossCompile $genSortedBssSymbolsPath ${in} ${out}", - CommandDeps: []string{"$genSortedBssSymbolsPath"}, + CommandDeps: []string{"$genSortedBssSymbolsPath", "${crossCompile}nm"}, }, "crossCompile") ) diff --git a/cc/object.go b/cc/object.go index 1a2711d2c..f619c7923 100644 --- a/cc/object.go +++ b/cc/object.go @@ -123,7 +123,7 @@ func (object *objectLinker) link(ctx ModuleContext, output = input } - TransformObjsToObj(ctx, objs.objFiles, builderFlags, output) + TransformObjsToObj(ctx, objs.objFiles, builderFlags, output, flags.LdFlagsDeps) } ctx.CheckbuildFile(outputFile)