<!DOCTYPE html>

<html>
  <head>
 <h2>Change List</h2>

 <h3>Android NDK, Revision 10e</a> <em>(May 2015)</em></h3>
      <dt>Important changes:</dt>
      <dl>
      <dd>
      <ul>
        <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the
        <code>aarch64-linux-android-4.9</code> linker. For more information on this workaround, see
        <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53
        erratum 843419.</a></li>

         <li>Added Clang 3.6; <code>NDK_TOOLCHAIN_VERSION=clang</code> now picks that version
         of Clang by default.</li>

         <li>Removed Clang 3.4.</li>

         <li>Removed GCC 4.6.</li>

         <li>Implemented multithreading support in <code>ld.gold</code> for all architectures. It can
         now link with or without support for multithreading; the default is to do it without.
            <ul>
            <li>To compile with multithreading, use the <code>--threads</code> option.</li>
            <li>To compile without multithreading:, use the <code>--no-threads</code> option.</li>
            </ul>
            </li>

         <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li>

         <li>Removed the NDK package for 32-bit Darwin.</li>
      </ul>
      </dd>
   <dl>


     <dt>Important bug fixes:</dt>
     <dd>
     <ul>
        <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li>

        <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared
        <code>#pragma GCC optimize ("O0")</code>, but had a different level of optimization specified
        on the command line. The <code>pragma</code> takes precedence.</li>

        <li>Fixed an error that used to produce a crash with the following error message:
<pre>
in add_stores, at var-tracking.c:6000
</pre>
        </li>

        <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization
        generates <code>llvm.cttz.v2i64()</code>, an instruction with no counterpart in the ARM instruction
        set. When the compiler generates this instruction, the following error message results:

<pre>
fatal error: error in backend: Cannot select: 0xd5d9098: v2i64 = cttz 0xd5c4698 [ORD=6] [ID=40] dbg:/path/to/file
0xd5c4698: v2i64 = bitcast 0xd5fb9d0 [ORD=3] [ID=34] dbg:/path/to/file
0xd5fb9d0: v2f64,ch = load 0xd1decd0, 0xd5da728, 0xd5da8d8<LD16[%lsr.iv2123](align=1)> [ORD=3] [ID=28] dbg:/path/to/file
0xd5da728: i32,ch = CopyFromReg 0xd1decd0, 0xd65c7a0 [ORD=2] [ID=23]
0xd65c7a0: i32 = Register %vreg7 [ID=1]
0xd5da8d8: i32 = undef [ID=3]
</pre>
      </li>
     </ul>
     </dd>

     <dt>Other bug fixes:</dt>
     <dd>
     <ul>
        <li>Made the following header and library fixes:</li>
           <ul>
           <li>Fixed <code>PROPERTY_*</code> in <code>media/NdkMediaDrm.h</code>.</li>
           <li>Fixed <code>sys/ucontext.h</code> for <code>mips64</code>.</li>
           <li>Dropped the Clang version check for <code>__builtin_isnan</code> and
           <code>__builtin_isinf</code>.</li>
           <li>Added <code>android-21/arch-mips/usr/include/asm/reg.h</code>
           and <code>android-21/arch-mips64/usr/include/asm/reg.h</code>.</li>
           </ul>
           </li>

        <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the
        array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had
        previously been unconditionally disabled.</li>

        <li>Fixed Clang 3.5 for <code>mips</code> and <code>mips64</code> to create a writable
            <code>.gcc_except_table</code> section, thus matching GCC behavior. This change allows you
            to avoid the following linker warning:

<pre>
.../ld: warning: creating a DT_TEXTREL in a shared object
</pre>
            </li>

        <li>Backported a fix for <code>compiler-rt</code> issues that were causing crashes when Clang
        compiled for <code>mips64</code>. For more information, see LLVM Issue
        <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li>

        <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue
        <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li>

        <li>Fixed <code>stlport collate::compare</code> to return <code>-1</code> and <code>1</code>. Previously,
        it had returned arbitrary signed numbers.</li>

        <li>Fixed <code>ndk-gdb</code> for 64-bit ABIs. (Issue
        <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li>

        <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on
        Android 4.4 (Android API level 19). For more information, see
        <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li>

        <li>Fixed <code>libc++ __wrap_iter</code> for GCC. For more information, see LLVM Issue
        <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li>

        <li>Fixed <code>.asm</code> support for ABI <code>x86_64</code>.</li>

        <li>Implemented a workaround for the GCC 4.8 <code>stlport</code> issue. (Issue
        <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li>

        <li>Removed the trailing directory separator <code>\\</code> from the project path in Windows.
        (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>)
        </li>

        <li>Fixed a <code>no rule to make target</code> error that occurred when compiling a single
        <code>.c</code> file by executing the <code>ndk-build.cmd</code> command from <code>gradle</code>. (Issue
        <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li>

        <li>Added the <code>libatomic.a</code> and <code>libgomp.a</code> libraries that had been missing from
        the following host toolchains:
        <ul>
           <li><code>aarch64-linux-android-4.9</code></li>
           <li><code>mips64el-linux-android-4.9</code></li>
           <li><code>mipsel-linux-android-4.9</code></li>
           <li><code>x86_64-4.9</code></li>
        </ul>
     </ul>
     </dd>

     <dt>Other changes:</dt>
     <dd>
       <ul>
       <li>Added <code>ld.gold</code> for <code>aarch64</code>. The default linker remains <code>ld.bfd</code>.
       To explicitly enable <code>ld.gold</code>, add <code>-fuse-ld=gold</code> to the
       <code>LOCAL_LDFLAGS</code> or <code>APP_LDFLAGS</code> variable.</li>

       <li>Built the MIPS and MIPS64 toolchains with <code>binutils-2.25</code>, which provides improved
       R6 support.</li>

       <li>Made <code>-fstandalone-debug</code> (full debug info) a default option for Clang.</li>

       <li>Replaced <code>-fstack-protector</code> with <code>-fstack-protector-strong</code> for
       the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and
       Clang 3.6.</li>

       <li>Added the <code>--package</code> command-line switch to <code>ndk-gdb</code> to allow the build
       system to override the package name. (Issue
       <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li>

       <li> Deprecated <code>-mno-ldc1-stc1</code> for MIPS.  This option may not work with the new
       <code>-fpxx</code> and <code>-mno-odd-spreg</code> options, or with the FPXX ABI.</li>

       <li>Added MIPS MSA and R6 detection to <code>cpu-features</code>.</li>

     </ul>
     </dd>

   </dl>
