android / android/ndk

raise minimum supported version to API 23

Open
#2,188 6 comments 2 reactions 1 assignee Claimed by @pirama-arumuga-nainar View on GitHub
enhancement
Dominant language
No language data
Stars
2.3k
Forks
310
PR merge metrics
No merged PRs in 30d

Description

### Description

androidx did this back in August (https://github.com/androidx/androidx/commit/d4e51000a74e55f9eec07242f13f6f14973eb462). I don't want to make this change in an LTS, which means we can't do this until r31 at the earliest. By that point most users will have migrated anyway. The Studio New Project Wizard (with data from April) says that only 0.6% of devices are running APIs 21 and 22.

Binary size will drop some for anyone following our minimums because [API 23 was the first to support GNU hashes](https://github.com/llvm/llvm-project/blob/e99c43cd13d384584357e053ab34243148ee9357/clang/lib/Driver/ToolChains/Linux.cpp#L308), so the linker won't need to include both SysV and GNU hashes any more. It looks like Clang also [disables FMV for aarch64 for API levels below 23](https://github.com/llvm/llvm-project/blob/89d79b65f7957687a6e076ec0b7893fd1264d170/clang/lib/Driver/ToolChains/Clang.cpp#L7949), though I don't know why. Some form of [relocation packing](https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#relr-and-relocation-packing) will also be available by default. I can't tell if any of our tools actually do that though. @enh-google I think has a pile of libc/libm cleanups he wants to make as well.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.