Don't use libandroid_support post-21.
Test: m checkbuild
Bug: http://b/119587551
Change-Id: I7ee1cdc7c0119dbec0e57522b9b494aeb3c16a43
diff --git a/cc/stl.go b/cc/stl.go
index 8eee612..9dc8107 100644
--- a/cc/stl.go
+++ b/cc/stl.go
@@ -17,6 +17,7 @@
import (
"android/soong/android"
"fmt"
+ "strconv"
)
func getNdkStlFamily(m *Module) string {
@@ -110,6 +111,26 @@
}()
}
+func needsLibAndroidSupport(ctx BaseModuleContext) bool {
+ versionStr, err := normalizeNdkApiLevel(ctx, ctx.sdkVersion(), ctx.Arch())
+ if err != nil {
+ ctx.PropertyErrorf("sdk_version", err.Error())
+ }
+
+ if versionStr == "current" {
+ return false
+ }
+
+ version, err := strconv.Atoi(versionStr)
+ if err != nil {
+ panic(fmt.Sprintf(
+ "invalid API level returned from normalizeNdkApiLevel: %q",
+ versionStr))
+ }
+
+ return version < 21
+}
+
func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps {
switch stl.Properties.SelectedStl {
case "libstdc++":
@@ -141,7 +162,9 @@
} else {
deps.StaticLibs = append(deps.StaticLibs, stl.Properties.SelectedStl, "ndk_libc++abi")
}
- deps.StaticLibs = append(deps.StaticLibs, "ndk_libandroid_support")
+ if needsLibAndroidSupport(ctx) {
+ deps.StaticLibs = append(deps.StaticLibs, "ndk_libandroid_support")
+ }
if ctx.Arch().ArchType == android.Arm {
deps.StaticLibs = append(deps.StaticLibs, "ndk_libunwind")
}