From 90b9bbc5dc024a5fff4119527149b5cc0b4ecf99 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 15 Nov 2018 11:29:28 -0800 Subject: [PATCH] Don't use libandroid_support post-21. Test: m checkbuild Bug: http://b/119587551 Change-Id: I7ee1cdc7c0119dbec0e57522b9b494aeb3c16a43 --- cc/stl.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/cc/stl.go b/cc/stl.go index 8eee6124d..9dc8107e5 100644 --- a/cc/stl.go +++ b/cc/stl.go @@ -17,6 +17,7 @@ package cc import ( "android/soong/android" "fmt" + "strconv" ) func getNdkStlFamily(m *Module) string { @@ -110,6 +111,26 @@ func (stl *stl) begin(ctx BaseModuleContext) { }() } +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 @@ func (stl *stl) deps(ctx BaseModuleContext, deps Deps) Deps { } 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") }