aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2015-05-25 11:12:50 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2015-05-25 11:12:50 +0800
commit1ee99fd456fbb6d8ae7b6b7f9afb9e6051649404 (patch)
treeacb004668db222bbd53cfcae4e9d06803ec5a994 /docs
parent6d5a1c12d8993654d8657cc53448877b8ae15ab6 (diff)
downloadndk-1ee99fd456fbb6d8ae7b6b7f9afb9e6051649404.tar.gz
Update change log for NDK r10e
Change-Id: I0d1107c7c1c19424dbe1622202ea4e023b9cfea3
Diffstat (limited to 'docs')
-rw-r--r--docs/Change_Log.html225
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>&lt;atomic&gt;</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>&nbsp;&nbsp;|&nbsp;
- <a href="http://developer.android.com/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
- <a href="http://developer.android.com/support.html">Support</a>
- </p>
- </div>
- </div>
-</body>
-</html>
+ </dl>