| <!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> |