Merge "object files depend only on NDK headers"
diff --git a/cc/binary.go b/cc/binary.go
index 63657e4..0650bdf 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -412,6 +412,7 @@
linkerDeps = append(linkerDeps, deps.EarlySharedLibsDeps...)
linkerDeps = append(linkerDeps, deps.SharedLibsDeps...)
linkerDeps = append(linkerDeps, deps.LateSharedLibsDeps...)
+ linkerDeps = append(linkerDeps, ndkSharedLibDeps(ctx)...)
}
validations = append(validations, objs.tidyFiles...)
diff --git a/cc/builder.go b/cc/builder.go
index fea65d5..72c2fa5 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -549,10 +549,6 @@
return "$" + kind + n
}
- // clang-tidy checks source files and does not need to link with libraries.
- // tidyPathDeps should contain pathDeps but not libraries.
- tidyPathDeps := skipNdkLibraryDeps(ctx, pathDeps)
-
for i, srcFile := range srcFiles {
objFile := android.ObjPathWithExt(ctx, subdir, srcFile, "o")
@@ -676,7 +672,7 @@
Output: tidyFile,
Input: srcFile,
Implicits: cFlagsDeps,
- OrderOnly: tidyPathDeps,
+ OrderOnly: pathDeps,
Args: map[string]string{
"ccCmd": ccCmd,
"cFlags": shareFlags("cFlags", escapeSingleQuotes(moduleToolingFlags)),
diff --git a/cc/compiler.go b/cc/compiler.go
index 2e62b00..8adc3ab 100644
--- a/cc/compiler.go
+++ b/cc/compiler.go
@@ -637,9 +637,9 @@
func ndkPathDeps(ctx ModuleContext) android.Paths {
if ctx.Module().(*Module).IsSdkVariant() {
- // The NDK sysroot timestamp file depends on all the NDK sysroot files
- // (headers and libraries).
- return android.Paths{getNdkBaseTimestampFile(ctx)}
+ // The NDK sysroot timestamp file depends on all the NDK sysroot header files
+ // for compiling src to obj files.
+ return android.Paths{getNdkHeadersTimestampFile(ctx)}
}
return nil
}
diff --git a/cc/library.go b/cc/library.go
index d071429..e53aac0 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -1366,11 +1366,21 @@
return outputFile
}
+func ndkSharedLibDeps(ctx ModuleContext) android.Paths {
+ if ctx.Module().(*Module).IsSdkVariant() {
+ // The NDK sysroot timestamp file depends on all the NDK
+ // sysroot header and shared library files.
+ return android.Paths{getNdkBaseTimestampFile(ctx)}
+ }
+ return nil
+}
+
func (library *libraryDecorator) linkShared(ctx ModuleContext,
flags Flags, deps PathDeps, objs Objects) android.Path {
var linkerDeps android.Paths
linkerDeps = append(linkerDeps, flags.LdFlagsDeps...)
+ linkerDeps = append(linkerDeps, ndkSharedLibDeps(ctx)...)
unexportedSymbols := ctx.ExpandOptionalSource(library.Properties.Unexported_symbols_list, "unexported_symbols_list")
forceNotWeakSymbols := ctx.ExpandOptionalSource(library.Properties.Force_symbols_not_weak_list, "force_symbols_not_weak_list")
diff --git a/cc/ndk_sysroot.go b/cc/ndk_sysroot.go
index ee11db1..6c200f5 100644
--- a/cc/ndk_sysroot.go
+++ b/cc/ndk_sysroot.go
@@ -94,21 +94,6 @@
return android.PathForOutput(ctx, "ndk.timestamp")
}
-// Replace ndk_base.timestamp and ndk.timestamp with ndk_headers.timestamp.
-func skipNdkLibraryDeps(ctx android.ModuleContext, paths android.Paths) android.Paths {
- var newPaths android.Paths
- baseTimestamp := getNdkBaseTimestampFile(ctx)
- fullTimestamp := getNdkFullTimestampFile(ctx)
- headersTimestamp := getNdkHeadersTimestampFile(ctx)
- for _, path := range paths {
- if path == baseTimestamp || path == fullTimestamp {
- path = headersTimestamp
- }
- newPaths = append(newPaths, path)
- }
- return newPaths
-}
-
func NdkSingleton() android.Singleton {
return &ndkSingleton{}
}