Dan Albert | 2a18e9f | 2018-05-17 09:13:22 -0700 | [diff] [blame] | 1 | Changelog |
| 2 | ========= |
| 3 | |
| 4 | Report issues to [GitHub]. |
| 5 | |
| 6 | For Android Studio issues, follow the docs on the [Android Studio site]. |
| 7 | |
| 8 | [GitHub]: https://github.com/android-ndk/ndk/issues |
| 9 | [Android Studio site]: http://tools.android.com/filing-bugs |
| 10 | |
| 11 | Announcements |
| 12 | ------------- |
| 13 | |
| 14 | * GCC is no longer supported. It will be removed in NDK r18. |
| 15 | |
| 16 | * `libc++` is now the default STL for CMake and standalone toolchains. If you |
| 17 | manually selected a different STL, we strongly encourage you to move to |
| 18 | `libc++`. Note that ndk-build still defaults to no STL. For more details, see |
| 19 | [this blog post](https://android-developers.googleblog.com/2017/09/introducing-android-native-development.html). |
| 20 | |
| 21 | * gnustl and stlport are deprecated and will be removed in NDK r18. |
| 22 | |
| 23 | * Support for ARMv5 (armeabi), MIPS, and MIPS64 has been removed. Attempting to |
| 24 | build any of these ABIs will result in an error. |
| 25 | |
| 26 | * Support for ICS (android-14 and android-15) will be removed from r18. |
| 27 | |
| 28 | * The Play Store will require 64-bit support when uploading an APK beginning in |
| 29 | August 2019. Start porting now to avoid surprises when the time comes. For |
| 30 | more information, see [this blog post](https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html). |
| 31 | |
Ryan Prichard | deabaef | 2018-07-25 15:50:32 -0700 | [diff] [blame] | 32 | r17b |
| 33 | ---- |
| 34 | |
| 35 | * [Issue 480]: Fixed libc++ header issues with `_FILE_OFFSET_BITS=64`. |
| 36 | * [Issue 692]: Fixed ASAN for standalone toolchains with static STLs. |
| 37 | * [Issue 697]: Pulled documentation updates for simpleperf. |
| 38 | * [Issue 702]: Updated sysroot to fix missing libc symbols. |
| 39 | * [Issue 704]: Updated shaderc/vulkan-validation-layers sources. |
| 40 | * [Issue 708]: Fixed introduced API tag for |
| 41 | `pthread_cond_timedwait_monotonic_nmp` to make it available on ICS. |
| 42 | |
| 43 | [Issue 480]: https://github.com/android-ndk/ndk/issues/480 |
| 44 | [Issue 692]: https://github.com/android-ndk/ndk/issues/692 |
| 45 | [Issue 697]: https://github.com/android-ndk/ndk/issues/697 |
| 46 | [Issue 702]: https://github.com/android-ndk/ndk/issues/702 |
| 47 | [Issue 704]: https://github.com/android-ndk/ndk/issues/704 |
| 48 | [Issue 708]: https://github.com/android-ndk/ndk/issues/708 |
| 49 | |
Dan Albert | 2a18e9f | 2018-05-17 09:13:22 -0700 | [diff] [blame] | 50 | Changes |
| 51 | ------- |
| 52 | |
| 53 | * Updated Clang to build 4691093, based on r316199. |
| 54 | * [Issue 313]: LTO now works on Windows. |
| 55 | * [Issue 527]: [Undefined Behavior Sanitizer] now works for NDK binaries. |
| 56 | * [Issue 593]: Clang now automatically passes `--eh-frame-hdr` to the |
| 57 | linker even for static executables, fixing exception handling. |
| 58 | * Updated gtest to upstream revision 0fe96607d85cf3a25ac40da369db62bbee2939a5. |
| 59 | * `libandroid_support` is no longer used when your NDK API level is greater |
| 60 | than or equal to 21 (Lollipop). Build system maintainers: be sure to update |
| 61 | your build systems to account for this. |
| 62 | * The platform static libraries (libc.a, libm.a, etc.) have been updated. |
| 63 | * All NDK platforms now contain a modern version of these static libraries. |
| 64 | Previously they were all Gingerbread (perhaps even older) or Lollipop. |
| 65 | * Prior NDKs could not use the static libraries with a modern NDK API level |
| 66 | because of symbol collisions between libc.a and libandroid_support. This |
| 67 | has been solved by removing libandroid_support for modern API levels. A |
| 68 | side effect of this is that you must now target at least android-21 to |
| 69 | use the static libraries, but these binaries will still work on older |
| 70 | devices. |
| 71 | * Fixed parsing of the NDK revision in CMake. NDK version information is now |
| 72 | available in the following CMake variables: |
| 73 | * `ANDROID_NDK_REVISION`: The full string in the source.properties file. |
| 74 | * `ANDROID_NDK_MAJOR`: The major revision of the NDK. For example: the 16 |
| 75 | in r16b. |
| 76 | * `ANDROID_NDK_MINOR`: The minor revision of the NDK. For example: the b |
| 77 | (represented as 1) in r16b. |
| 78 | * `ANDROID_NDK_BUILD`: The build number of the NDK. This is 0 in the case |
| 79 | of a local development build. |
| 80 | * `ANDROID_NDK_BETA`: The beta version of the NDK. This is 0 for a stable |
| 81 | release. |
| 82 | * Added support for `APP_WRAP_SH` to ndk-build. |
| 83 | * This variable points to a shell script (relative to your Android.mk) that |
| 84 | will be installed as a [wrap.sh] file in your APK. |
| 85 | * Available in both an ABI-generic form (`APP_WRAP_SH`), which will install |
| 86 | a single script for every ABI, and an ABI-specific form |
| 87 | (`APP_WRAP_SH_arm64-v8a`, etc) to allow for per-ABI customization of the |
| 88 | wrap.sh script. |
| 89 | * [Issue 540]: ndk-build now installs sanitizer runtime libraries to your out |
| 90 | directory for inclusion in your APK. Coupled with [wrap.sh], this removes the |
| 91 | requirement of rooting your device to use sanitizers. |
| 92 | * When using ASAN, ndk-build will install a wrap.sh file to set up ASAN for |
| 93 | your app if you have not specified your own wrap.sh. If you have specified |
| 94 | your own wrap.sh, you can add ASAN support to it as described |
| 95 | [here](https://github.com/google/sanitizers/wiki/AddressSanitizerOnAndroidO). |
| 96 | * [Issue 614]: ndk-build and CMake no longer pass `-fno-integrated-as` for |
| 97 | arm32 by default. If your project contains hand written assembly, you may |
| 98 | need to pass this flag. |
| 99 | * ion.h is no longer a part of the NDK. This file defined an API that is not |
| 100 | consistent across devices. |
| 101 | |
| 102 | [Undefined Behavior Sanitizer]: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html |
| 103 | [wrap.sh]: https://developer.android.com/ndk/guides/wrap-script.html |
| 104 | [Issue 313]: https://github.com/android-ndk/ndk/issues/313 |
| 105 | [Issue 527]: https://github.com/android-ndk/ndk/issues/527 |
| 106 | [Issue 540]: https://github.com/android-ndk/ndk/issues/540 |
| 107 | [Issue 593]: https://github.com/android-ndk/ndk/issues/593 |
| 108 | [Issue 614]: https://github.com/android-ndk/ndk/issues/614 |
| 109 | |
| 110 | Known Issues |
| 111 | ------------ |
| 112 | |
| 113 | * This is not intended to be a comprehensive list of all outstanding bugs. |
| 114 | * [Issue 360]: `thread_local` variables with non-trivial destructors will cause |
| 115 | segfaults if the containing library is `dlclose`ed on devices running M or |
| 116 | newer, or devices before M when using a static STL. The simple workaround is |
| 117 | to not call `dlclose`. |
| 118 | * [Issue 70838247]: Gold emits broken debug information for AArch64. AArch64 |
| 119 | still uses BFD by default. |
| 120 | |
| 121 | [Issue 360]: https://github.com/android-ndk/ndk/issues/360 |
| 122 | [Issue 70838247]: https://issuetracker.google.com/70838247 |