Home | History | Annotate | Download | only in ndk
      1 Changelog
      2 =========
      3 
      4 We've moved our bug tracker to GitHub: https://github.com/android-ndk/ndk/issues
      5 
      6 Clang
      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 
     22 GCC
     23 ---
     24 
     25  * **GCC in the NDK is now deprecated.**
     26      * Time to start using Clang if you havent 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 
     35 NDK
     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 
     75 Binutils
     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 
     91 GDB
     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 
    103 Yasm
    104 ----
    105 
    106  * Yasm has been updated to version 1.3.0.
    107 
    108 Known 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