aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 85e54808c49fb292735ba85cfffc64b1fe045b0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Changelog
=========

Report issues to [GitHub].

For Android Studio issues, follow the docs on the [Android Studio site].

[GitHub]: https://github.com/android-ndk/ndk/issues
[Android Studio site]: http://tools.android.com/filing-bugs

Announcements
-------------

 * The platform headers have been synchronized with the Android platform. This
   means that the headers are now up to date, accurate, and header only bug
   fixes will affect all API levels. Prior to this, the M and N headers were
   actually the L headers, all the headers did not actually match the platform
   level they were supposedely for (declared functions that didn't exist, didn't
   declare ones that did), and many of the old API levels had missing or
   incorrect constants that were in newer API levels.

   Since these are in some cases radically different from those we've previously
   shipped, these are not enabled by default. See [Unified Headers] for details
   on using the updated headers.

   **Note**: The legacy headers will be removed in a future release. It is
   likely that r15 will default to using these while still being optional. If
   all goes well, the legacy headers will be removed in r16, so please test them
   now.

 * GCC is no longer supported. It will not be removed from the NDK just yet, but
   is no longer receiving backports. It cannot be removed until after libc++ has
   become stable enough to be the default, as some parts of gnustl are still
   incompatible with Clang. It will likely be removed after that point.

[Unified Headers]: docs/UnifiedHeaders.md

ndk-build
---------

 * Module builds will now fail if they have any missing dependencies. To revert
   to the old behavior, set `APP_ALLOW_MISSING_DEPS=false`. See
   https://github.com/android-ndk/ndk/issues/208.

CMake
-----

 * RTTI and exceptions are now on by default. This was done for improved
   compatibility with existing CMake projects. See
   https://github.com/android-ndk/ndk/issues/212.

libc++
------

 * libc++abi has been updated and now has a fallback implementation of
   `__cxa_thread_atexit_impl`. Non-global `thread_local` variables with
   non-trivial destructors are now supported.

Clang/LLVM
----------

 * The x86 ASAN issues noted since r11 appear to have been emulator specific.
   Up to date emulators no longer have this issue.

Known Issues
------------

 * This is not intended to be a comprehensive list of all outstanding bugs.
 * Gradle does not yet support unified headers.
 * RenderScript tools are not present (not a regression from r11):
   https://github.com/android-ndk/ndk/issues/7.

Won't Fix
---------

These issues will not be fixed. They affect only GCC, which is deprecated.

 * Standlone toolchains using libc++ and GCC do not work. This seems to be a bug
   in GCC. See the following commit message for more details:
   https://android-review.googlesource.com/#/c/247498
 * Standalone toolchains using GCC do not work out of the box with unified
   headers. They can be made to work by passing `-D__ANDROID_API__=21`
   (replacing 21 with the same API level you passed to
   `make_standalone_toolchain.py`) when compiling.