Home | History | Annotate | Download | only in docs
      1 <!DOCTYPE html>
      2 
      3 <html>
      4   <head>
      5  <h2>Change List</h2>
      6 
      7  <h3>Android NDK, Revision 10e</a> <em>(May 2015)</em></h3>
      8       <dt>Important changes:</dt>
      9       <dl>
     10       <dd>
     11       <ul>
     12         <li>Integrated the workaround for Cortex-A53 Erratum 843419 into the
     13         <code>aarch64-linux-android-4.9</code> linker. For more information on this workaround, see
     14         <a href="https://sourceware.org/ml/binutils/2015-03/msg00446.html">Workaround for cortex-a53
     15         erratum 843419.</a></li>
     16 
     17          <li>Added Clang 3.6; <code>NDK_TOOLCHAIN_VERSION=clang</code> now picks that version
     18          of Clang by default.</li>
     19 
     20          <li>Removed Clang 3.4.</li>
     21 
     22          <li>Removed GCC 4.6.</li>
     23 
     24          <li>Implemented multithreading support in <code>ld.gold</code> for all architectures. It can
     25          now link with or without support for multithreading; the default is to do it without.
     26             <ul>
     27             <li>To compile with multithreading, use the <code>--threads</code> option.</li>
     28             <li>To compile without multithreading:, use the <code>--no-threads</code> option.</li>
     29             </ul>
     30             </li>
     31 
     32          <li>Upgraded GDB/gdbserver to 7.7 for all architectures.</li>
     33 
     34          <li>Removed the NDK package for 32-bit Darwin.</li>
     35       </ul>
     36       </dd>
     37    <dl>
     38 
     39 
     40      <dt>Important bug fixes:</dt>
     41      <dd>
     42      <ul>
     43         <li>Fixed a crash that occurred when there were OpenMP loops outside of the main thread.</li>
     44 
     45         <li>Fixed a GCC 4.9 internal compiler error (<i>ICE</i>) that occured when the user declared
     46         <code>#pragma GCC optimize ("O0")</code>, but had a different level of optimization specified
     47         on the command line. The <code>pragma</code> takes precedence.</li>
     48 
     49         <li>Fixed an error that used to produce a crash with the following error message:
     50 <pre>
     51 in add_stores, at var-tracking.c:6000
     52 </pre>
     53         </li>
     54 
     55         <li>Implemented a workaround for a Clang 3.5 issue in which LLVM auto-vectorization
     56         generates <code>llvm.cttz.v2i64()</code>, an instruction with no counterpart in the ARM instruction
     57         set. When the compiler generates this instruction, the following error message results:
     58 
     59 <pre>
     60 fatal error: error in backend: Cannot select: 0xd5d9098: v2i64 = cttz 0xd5c4698 [ORD=6] [ID=40] dbg:/path/to/file
     61 0xd5c4698: v2i64 = bitcast 0xd5fb9d0 [ORD=3] [ID=34] dbg:/path/to/file
     62 0xd5fb9d0: v2f64,ch = load 0xd1decd0, 0xd5da728, 0xd5da8d8<LD16[%lsr.iv2123](align=1)> [ORD=3] [ID=28] dbg:/path/to/file
     63 0xd5da728: i32,ch = CopyFromReg 0xd1decd0, 0xd65c7a0 [ORD=2] [ID=23]
     64 0xd65c7a0: i32 = Register %vreg7 [ID=1]
     65 0xd5da8d8: i32 = undef [ID=3]
     66 </pre>
     67       </li>
     68      </ul>
     69      </dd>
     70 
     71      <dt>Other bug fixes:</dt>
     72      <dd>
     73      <ul>
     74         <li>Made the following header and library fixes:</li>
     75            <ul>
     76            <li>Fixed <code>PROPERTY_*</code> in <code>media/NdkMediaDrm.h</code>.</li>
     77            <li>Fixed <code>sys/ucontext.h</code> for <code>mips64</code>.</li>
     78            <li>Dropped the Clang version check for <code>__builtin_isnan</code> and
     79            <code>__builtin_isinf</code>.</li>
     80            <li>Added <code>android-21/arch-mips/usr/include/asm/reg.h</code>
     81            and <code>android-21/arch-mips64/usr/include/asm/reg.h</code>.</li>
     82            </ul>
     83            </li>
     84 
     85         <li>Fixed a spurious array-bounds warning that GCC 4.9 produced for x86, and reenabled the
     86         array bounds warning that GCC 4.9 had produced for ARM. The warning for ARM had
     87         previously been unconditionally disabled.</li>
     88 
     89         <li>Fixed Clang 3.5 for <code>mips</code> and <code>mips64</code> to create a writable
     90             <code>.gcc_except_table</code> section, thus matching GCC behavior. This change allows you
     91             to avoid the following linker warning:
     92 
     93 <pre>
     94 .../ld: warning: creating a DT_TEXTREL in a shared object
     95 </pre>
     96             </li>
     97 
     98         <li>Backported a fix for <code>compiler-rt</code> issues that were causing crashes when Clang
     99         compiled for <code>mips64</code>. For more information, see LLVM Issue
    100         <a href="http://llvm.org/bugs/show_bug.cgi?id=20098">20098</a>.</li>
    101 
    102         <li>Fixed Clang 3.5 crashes that occurred on non-ASCII comments. (Issue
    103         <a href="https://code.google.com/p/android/issues/detail?id=81440">81440</a>)</li>
    104 
    105         <li>Fixed <code>stlport collate::compare</code> to return <code>-1</code> and <code>1</code>. Previously,
    106         it had returned arbitrary signed numbers.</li>
    107 
    108         <li>Fixed <code>ndk-gdb</code> for 64-bit ABIs. (Issue
    109         <a href="https://code.google.com/p/android/issues/detail?id=118300">118300</a>)</li>
    110 
    111         <li>Fixed the crash that the HelloComputeNDK sample for RenderScript was producing on
    112         Android 4.4 (Android API level 19). For more information, see
    113         <a href="http://stackoverflow.com/questions/28057049/targeting-pre-lollipop-devices-using-renderscript-from-ndk-c">this page</a>.</li>
    114 
    115         <li>Fixed <code>libc++ __wrap_iter</code> for GCC. For more information, see LLVM Issue
    116         <a href="http://llvm.org/bugs/show_bug.cgi?id=22355">22355</a>.</li>
    117 
    118         <li>Fixed <code>.asm</code> support for ABI <code>x86_64</code>.</li>
    119 
    120         <li>Implemented a workaround for the GCC 4.8 <code>stlport</code> issue. (Issue
    121         <a href="https://android-review.googlesource.com/#/c/127773">127773</a>)</li>
    122 
    123         <li>Removed the trailing directory separator <code>\\</code> from the project path in Windows.
    124         (Issue <a href="https://code.google.com/p/android/issues/detail?id=160584">160584</a>)
    125         </li>
    126 
    127         <li>Fixed a <code>no rule to make target</code> error that occurred when compiling a single
    128         <code>.c</code> file by executing the <code>ndk-build.cmd</code> command from <code>gradle</code>. (Issue
    129         <a href="https://code.google.com/p/android/issues/detail?id=66937">66937</a>)</li>
    130 
    131         <li>Added the <code>libatomic.a</code> and <code>libgomp.a</code> libraries that had been missing from
    132         the following host toolchains:
    133         <ul>
    134            <li><code>aarch64-linux-android-4.9</code></li>
    135            <li><code>mips64el-linux-android-4.9</code></li>
    136            <li><code>mipsel-linux-android-4.9</code></li>
    137            <li><code>x86_64-4.9</code></li>
    138         </ul>
    139      </ul>
    140      </dd>
    141 
    142      <dt>Other changes:</dt>
    143      <dd>
    144        <ul>
    145        <li>Added <code>ld.gold</code> for <code>aarch64</code>. The default linker remains <code>ld.bfd</code>.
    146        To explicitly enable <code>ld.gold</code>, add <code>-fuse-ld=gold</code> to the
    147        <code>LOCAL_LDFLAGS</code> or <code>APP_LDFLAGS</code> variable.</li>
    148 
    149        <li>Built the MIPS and MIPS64 toolchains with <code>binutils-2.25</code>, which provides improved
    150        R6 support.</li>
    151 
    152        <li>Made <code>-fstandalone-debug</code> (full debug info) a default option for Clang.</li>
    153 
    154        <li>Replaced <code>-fstack-protector</code> with <code>-fstack-protector-strong</code> for
    155        the ARM, AArch64, X86, and X86_64 toolchains for GCC 4.9, Clang 3.5, and
    156        Clang 3.6.</li>
    157 
    158        <li>Added the <code>--package</code> command-line switch to <code>ndk-gdb</code> to allow the build
    159        system to override the package name. (Issue
    160        <a href="https://code.google.com/p/android/issues/detail?id=56189">56189</a>)</li>
    161 
    162        <li> Deprecated <code>-mno-ldc1-stc1</code> for MIPS.  This option may not work with the new
    163        <code>-fpxx</code> and <code>-mno-odd-spreg</code> options, or with the FPXX ABI.</li>
    164 
    165        <li>Added MIPS MSA and R6 detection to <code>cpu-features</code>.</li>
    166 
    167      </ul>
    168      </dd>
    169 
    170    </dl>
    171