diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2015-05-25 11:12:50 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2015-05-25 11:12:50 +0800 |
commit | 1ee99fd456fbb6d8ae7b6b7f9afb9e6051649404 (patch) | |
tree | acb004668db222bbd53cfcae4e9d06803ec5a994 /docs | |
parent | 6d5a1c12d8993654d8657cc53448877b8ae15ab6 (diff) | |
download | ndk-1ee99fd456fbb6d8ae7b6b7f9afb9e6051649404.tar.gz |
Update change log for NDK r10e
Change-Id: I0d1107c7c1c19424dbe1622202ea4e023b9cfea3
Diffstat (limited to 'docs')
-rw-r--r-- | docs/Change_Log.html | 225 |
1 files changed, 130 insertions, 95 deletions
diff --git a/docs/Change_Log.html b/docs/Change_Log.html index c3b5573cf..4f4bcaece 100644 --- a/docs/Change_Log.html +++ b/docs/Change_Log.html @@ -3,133 +3,168 @@ <html> <head> <h2>Change List</h2> - <h3>Android NDK, Revision 10d</a> <em>(December 2014)</em></h3> - </p> + + <h3>Android NDK, Revision 10e</a> <em>(May 2015)</em></h3> <dt>Important changes:</dt> + <dl> <dd> <ul> - <li>Made GCC 4.8 the default for all 32-bit ABIs. Deprecated GCC 4.6, and - will remove it next release. To restore previous behavior, either add - <code>NDK_TOOLCHAIN_VERSION=4.6</code> to ndk-build, or - add <code>--toolchain=arm-linux-androideabi-4.6</code> when executing - <code>make-standalone-toolchain.sh</code> on the command line. GCC 4.9 remains the - default for 64-bit ABIs.</li> - - <li>Stopped all x86[_64] toolchains from adding <code>-mstackrealign</code> by default. The - NDK toolchain assumes a 16-byte stack alignment. The tools and options used by default - enforce this rule. A user writing assembly code must make sure to preserve stack - alignment, and ensure that other compilers also comply with this rule. - (GCC bug <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496">38496</a>)</li> - - <li>Added Address Sanitizer functionality to Clang 3.5 support to the ARM and x86 ABIs. - More information on this change is available - <a href="https://code.google.com/p/address-sanitizer/wiki/Android">here</a>.</li> - - <li>Introduced the requirement, starting from API level 21, to use <code>-fPIE -pie - </code> when building. In API levels 16 and higher, ndk-build uses <code>PIE</code> - when building. This change has a number of implications, which are discussed - <a href="https://code.google.com/p/android-developer-preview/issues/detail?id=888">here</a>. - These implications do not apply to shared libraries.</li> + <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>Made more fixes related to - <a href="https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00906.html"> - A53 Errata #835769</a> in the aarch64-linux-android-4.9 linker. As part of this, GCC - passes a new option, <code>--fix-cortex-a53-835769</code>, when - <code>-mfix-cortex-a53-835769</code> (enabled by default) is specified. - For more information, see - <a href="https://sourceware.org/ml/binutils/2014-10/msg00198.html">this page</a> and - <a href="https://sourceware.org/ml/binutils/2014-11/msg00287.html">this page</a></li> - - <li>Documented a fix to a libc++ <code>sscanf/vsscanf</code> hang that occurred in API level - 21. The fix itself had been implemented in r10c. - (Issue <a href="http://b.android.com/77988">77988</a>)</li> - - <li>Fixed an AutoFDO (<code>-fauto-profile</code>) crash that occurred with GCC 4.9 when - <code>-Os</code> was specified. (Issue <a href="http://b.android.com/77571">77571</a>)</li> + <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>Added <code>posix_memalign</code> to API level 16. Also, added a prototype in - <code>stdlib.h</code> to API levels 16 to 19. - (Issue <a href="http://b.android.com/77861">77861</a>.)</li> - <li>Fixed <code>stdatomic.h</code> so that it includes <code><atomic></code> only for - C++11.</li> - <li>Modified the following headers for standalone use: <code>sys/user.h</code>, and - <code>gl2ext.h</code>, <code>dlext.h</code>, <code>fts.h</code>, <code>sgidefs.h</code> - for API level 21.</li> - <li>Modified <code>sys/user.h</code> to rename <code>mxcsr_mask</code> as <code>mxcr_mask</code>, - and to change the data type for <code>u_ar0</code></li> from <code>unsigned long</code> - to </code>struct user_regs_struct*</code>. - <li>Changed <code>sysconf()</code> return value type from <code>int</code> to - <code>long</code>.</li> + <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: - <li>Fixed ndk-build's handling of <code>thumb</code> for <code>LOCAL_ARM_MODE</code>: In - r10d, ndk-build adds <code>LOCAL_LDFLAGS+=-mthumb</code> by default, unless one of the - following conditions applies:</li> - <ul> - <li><code>LOCAL_ARM_MODE</code> has been set equal to <code>arm</code>.</li> - <li>You are doing a debug build (with settings such as <code>APP_OPTIM=debug</code> and - <code>AndroidManifest.xml</code> containing <code>android:debuggable="true"</code>), - where ARM mode is the default in order to retain compatibility with earlier toolchains. - (Issue <a href="http://b.android.com/74040">74040</a>)</li> - </ul> +<pre> +.../ld: warning: creating a DT_TEXTREL in a shared object +</pre> + </li> - <li>Fixed <code>LOCAL_SRC_FILES</code> in ndk-build to use Windows absolute paths. - (Issue <a href="http://b.android.com/74333">74333</a>)</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>Removed bash-specific code from ndk-gdb. (Issue <a href="http://b.android.com/73338">73338</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>Removed bash-specific code from <code>make-standalone-toolchain.sh</code>. - (Issue <a href="http://b.android.com/74145">74145)</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>Revised documentation concerning a fix for <code>System.loadLibrary()</code> transitive - dependencies. (Issue <a href="http://b.android.com/41790">41790</a>)</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 a problem that was preventing 64-bit packages from extracting on Ubuntu 14.04 and - OS X 10.10 (Yosemite). (Issue <a href="http://b.android.com/78148">78148</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 an issue with <code>LOCAL_PCH</code> to improve Clang support. (Issue - <a href="http://b.android.com/77575">77575</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>Clarified "requires executable stack" warning from ld.gold. (Issue - <a href="http://b.android.com/79115">79115</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> -A comprehensive change list, going through all previous releases of the NDK, can be found at the <a href="http://developer.android.com/tools/sdk/ndk/index.html">Android developer website.</a><br> - <br> + <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> - <div id="copyright"> + <li>Added MIPS MSA and R6 detection to <code>cpu-features</code>.</li> - Except as noted, this content is - licensed under <a href="http://creativecommons.org/licenses/by/2.5/"> - Creative Commons Attribution 2.5</a>. For details and - restrictions, see the <a href="http://developer.android.com/license.html">Content - License</a>. - <div id="footerlinks"> + </ul> + </dd> - <p> - <a href="http://developer.android.com/about/index.html">About Android</a> | - <a href="http://developer.android.com/legal.html">Legal</a> | - <a href="http://developer.android.com/support.html">Support</a> - </p> - </div> - </div> -</body> -</html> + </dl> |