Work-around for crt objects with sdk: current
Test: convert libcups from Android.mk->Android.bp, mm -j64.
Change-Id: I4fddcfa5806d0ce27a229c37a078b0d93e9082a8
diff --git a/cc/binary.go b/cc/binary.go
index cd440ea..e982329 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -122,7 +122,7 @@
// version.
version := ctx.sdkVersion()
if version == "current" {
- version = ctx.AConfig().PlatformSdkVersion()
+ version = getCurrentNdkPrebuiltVersion(ctx)
}
if binary.static() {
diff --git a/cc/cc.go b/cc/cc.go
index 28354a8..cff8d85 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1193,4 +1193,11 @@
return list[totalSkip:]
}
+func getCurrentNdkPrebuiltVersion(ctx DepsContext) string {
+ if ctx.AConfig().PlatformSdkVersionInt() > config.NdkMaxPrebuiltVersionInt {
+ return strconv.Itoa(config.NdkMaxPrebuiltVersionInt)
+ }
+ return ctx.AConfig().PlatformSdkVersion()
+}
+
var Bool = proptools.Bool
diff --git a/cc/config/global.go b/cc/config/global.go
index 43ff975..a29afec 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -71,6 +71,8 @@
GccCppStdVersion = "gnu++11"
ExperimentalCStdVersion = "gnu11"
ExperimentalCppStdVersion = "gnu++1z"
+
+ NdkMaxPrebuiltVersionInt = 24
)
var pctx = android.NewPackageContext("android/soong/cc/config")
diff --git a/cc/library.go b/cc/library.go
index 12a866b..d6a85e9 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -424,7 +424,7 @@
// version.
version := ctx.sdkVersion()
if version == "current" {
- version = ctx.AConfig().PlatformSdkVersion()
+ version = getCurrentNdkPrebuiltVersion(ctx)
}
deps.CrtBegin = "ndk_crtbegin_so." + version
deps.CrtEnd = "ndk_crtend_so." + version