| # Changelog |
| |
| Report issues to [GitHub]. |
| |
| For Android Studio issues, go to https://b.android.com and file a bug using the |
| Android Studio component, not the NDK component. |
| |
| If you're a build system maintainer that needs to use the tools in the NDK |
| directly, see the [build system maintainers guide]. |
| |
| [GitHub]: https://github.com/android/ndk/issues |
| [build system maintainers guide]: |
| https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md |
| |
| ## Announcements |
| |
| - The 16 KiB page size compatibility option that was added in r27 is now on by |
| default. If necessary, you can still opt-out (see below). |
| |
| ## Changes |
| |
| - Updated LLVM to clang-r530567b. See `clang_source_info.md` in the toolchain |
| directory for version information. |
| - Runtime libraries for non-Android have been removed reduce disk usage. |
| - libc++ now includes debug info to aid debugging. This may make |
| libc++_shared.so and any binaries that link libc++_static.a much larger |
| before they are stripped. The Android Gradle Plugin will strip binaries when |
| creating APKs, so this should not affect production apps. |
| - [Issue 2046]: libclang and libclang-cpp are now supported. |
| - `PAGE_SIZE` is no longer defined by default for arm64-v8a or x86_64. To |
| re-enable, set `APP_SUPPORT_FLEXIBLE_PAGE_SIZES` (ndk-build) or |
| `ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES` (CMake) to false. See [Support 16 KB |
| page sizes] for more information. |
| - The default alignment of shared libraries for arm64-v86 and x86_64 is now 16k. |
| To revert to 4k alignment, set `APP_SUPPORT_FLEXIBLE_PAGE_SIZES` (ndk-build) |
| or `ANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES` (CMake) to false. See [Support 16 KB |
| page sizes] for more information. |
| - [Issue 1307]: Removed non-NDK binder headers. A number of binder headers that |
| should have been shipped with aidl were mistakenly shipped in the NDK. These |
| headers are tightly coupled to the version of aidl used, so this introduced an |
| unwanted version restriction between build-tools and the NDK. If you are using |
| the NDK aidl backend, you will need to pass the aidl include path when |
| building. See the [aidl backend] docs for more information. |
| - [Issue 2058]: [Weak API references] now work for libc APIs. This was enabled |
| by conditionally removing the `#if __ANDROID_API__ >= ...` guards that |
| previously wrapped declarations in libc headers when weak API references are |
| used. When weak API references are not used (the default behavior), the |
| declarations will still be hidden by the preprocessor. |
| |
| If your project contains polyfills for any of those APIs **and uses weak API |
| references**, this change may break your build due to the conflicting |
| declarations. The simplest fix is to rename your polyfill to not collide with |
| libc. For example, rename `conflicting_api` to `conflicting_api_fallback` and |
| call that instead. Use `#define conflicting_api() conflicting_api_fallback()` |
| if you want to avoid rewriting callsites. |
| |
| Please open a bug if you run into issues with existing polyfills. We may be |
| able to add the polyfill directly to the NDK. |
| |
| [aidl backend]: https://source.android.com/docs/core/architecture/aidl/aidl-backends#core-build-system |
| [Issue 1307]: https://github.com/android/ndk/issues/1307 |
| [Issue 2046]: https://github.com/android/ndk/issues/2046 |
| [Issue 2058]: https://github.com/android/ndk/issues/2058 |
| [Weak API references]: https://developer.android.com/ndk/guides/using-newer-apis |
| |
| [Support 16 KB page sizes]: |
| https://developer.android.com/guide/practices/page-sizes |