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> 51in 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> 60fatal error: error in backend: Cannot select: 0xd5d9098: v2i64 = cttz 0xd5c4698 [ORD=6] [ID=40] dbg:/path/to/file 610xd5c4698: v2i64 = bitcast 0xd5fb9d0 [ORD=3] [ID=34] dbg:/path/to/file 620xd5fb9d0: v2f64,ch = load 0xd1decd0, 0xd5da728, 0xd5da8d8<LD16[%lsr.iv2123](align=1)> [ORD=3] [ID=28] dbg:/path/to/file 630xd5da728: i32,ch = CopyFromReg 0xd1decd0, 0xd65c7a0 [ORD=2] [ID=23] 640xd65c7a0: i32 = Register %vreg7 [ID=1] 650xd5da8d8: 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