1Changelog 2========= 3 4We've moved our bug tracker to GitHub: https://github.com/android-ndk/ndk/issues 5 6Clang 7----- 8 9 * **PSA: Everyone should be switching to Clang.** 10 * Clang has been updated to 3.8svn (r243773, build 2481030). 11 * Note that this is now a nearly pure upstream clang. 12 * Also note that Clang packaged in the Windows 64 NDK is actually 32-bit. 13 * Support for emulated TLS. 14 * `__thread` is now supported by the compiler by emulating ELF TLS with 15 pthread thread-specific data. 16 * C++11 `thread_local` will work in some cases, but will not work for data 17 with non-trivial destructors except when running on Marshmallow 18 (android-23) or newer because those cases require support from libc. 19 * Does not yet work with Aarch64 when TLS variables are accessed from a 20 shared library. 21 22GCC 23--- 24 25 * **GCC in the NDK is now deprecated.** 26 * Time to start using Clang if you haven’t already. If you have problems 27 with Clang, please file bugs! 28 * The NDK will not be upgrading to 5.x, nor will we be accepting 29 non-critical backports. 30 * Maintenance for miscompiles and internal compiler errors in 4.9 will be 31 handled on a case by case basis. 32 * GCC 4.8 has been removed. All targets now use GCC 4.9. 33 * Synchronized with `google/gcc-4_9` to r224707 (from r214835). 34 35NDK 36--- 37 38 * The samples are no longer included in the NDK. They are instead available on 39 [GitHub]. 40 * The documentation is no longer included in the NDK. It is instead available 41 on the [Android Developer website]. 42 * Make ARM standalone toolchains default to arm7. 43 * The old behavior can be restored by passing 44 `-target armv5te-linux-androideabi`. 45 * Use `-isystem` for platform includes. 46 * Warnings caused by bionic will no longer break app builds. 47 * Fixed segfault when throwing exceptions via gabi++ (see 48 http://b.android.com/179410). 49 * Change libc++’s inline namespace to `std::__ndk1` to prevent ODR issues with 50 platform libc++. 51 * Support for mips64r2 has been partially dropped. The rest will be dropped in 52 the future. 53 * All libc++ libraries are now built with libc++abi. 54 * Bump default `APP_PLATFORM` to Gingerbread. 55 * Expect support for Froyo and older to be dropped in a future release. 56 * Updated gabi++ `_Unwind_Exception` struct for 64 bits. 57 * cpufeatures: Detect SSE4.1 and SSE4.2 as well. 58 * cpufeatures: Detect cpu features on x86\_64 as well. 59 * Update libc++abi to upstream r231075. 60 * Added native tracing API to android-23. 61 * Added native multinetwork API to android-23. 62 * `byteswap.h`, `endian.h`, `sys/procfs.h`, `sys/ucontext.h`, `sys/user.h`, and 63 `uchar.h` have all been updated from ToT Bionic. 64 * `sys/cdefs.h` has been synchronized across all API levels. 65 * Support for `_WCHAR_IS_8BIT` has been removed. 66 * Fixed `fegetenv` and `fesetenv` for arm 67 * Fix end pointer size/alignment of `crtend_*` for mips64 and x86\_64 68 * Removed sed. 69 * Removed mclinker. 70 * Removed Perl. 71 * Removed symbols which are not exported by the current platform libc/m/dl from 72 all versions of NDK libc/m/dl 73 * libc/m/dl provide versioned symbols starting with v21 74 75Binutils 76-------- 77 78 * Unified binutils source between Android and ChromiumOS. 79 * For full details see https://android-review.googlesource.com/#/c/182865/. 80 * Gold for aarch64 should now be much more reliable. Use `-fuse-ld=gold` at 81 link time to use gold instead of bfd. The default will likely switch in the 82 next release. 83 * Good linking time improvement for huge binaries for Gold ARM backend (up to 84 50% linking time reduction for debuggable Chrome Browser). 85 * New option: `--pic-veneer`. 86 * The 32-bit Windows package no longer contains ld.gold. It is available in 87 the 64-bit package. 88 * Current gold no longer builds when targeting 32-bit Windows (causes 89 internal compiler failures in mingw). 90 91GDB 92--- 93 94 * gdb has been updated to version 7.10. 95 * ndk-gdb has been removed in favor of ndk-gdb.py. 96 * ndk-gdb.py has been significantly rewritten. 97 * Performance should be somewhat better. 98 * Error messages have been significantly improved. 99 * Relative project paths should always work now. 100 * Ctrl-C no longer kills the backgrounded gdbserver. 101 * Improve Windows support. 102 103Yasm 104---- 105 106 * Yasm has been updated to version 1.3.0. 107 108Known Issues 109------------ 110 111 * This is not intended to be a comprehensive list of all outstanding bugs. 112 * x86 ASAN does not currently work. See discussion on 113 https://android-review.googlesource.com/#/c/186276/ 114 * The combination of Clang, x86, `stlport_static`, and optimization levels 115 higher than `-O0` causes test failures with `dynamic_cast`. See 116 https://android-review.googlesource.com/#/c/185920 117 * Exception handling will often fail when using `c++_shared` on ARM32. The root 118 cause is incompatibility between the LLVM unwinder used by libc++abi for 119 ARM32 and libgcc. This is not a regression from r10e. 120 121[GitHub]: https://github.com/googlesamples/android-ndk 122[Android Developer website]: http://developer.android.com/ndk/index.html 123