aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2014-12-05 18:49:10 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2014-12-05 18:49:10 +0800
commitce90c072c2d13e840ff2aaedf4b235b64b0c1d6c (patch)
tree58826c6a29dc93141a5392a30287bb82f94b01e1 /docs
parentd3d8e3ae6306304231cbfbf7871aee6b711328a2 (diff)
downloadndk-ce90c072c2d13e840ff2aaedf4b235b64b0c1d6c.tar.gz
r10d change log
Change-Id: I1d77a8b5f363c3105dd8208192d95feaca5a5389
Diffstat (limited to 'docs')
-rw-r--r--docs/Change_Log.html244
1 files changed, 87 insertions, 157 deletions
diff --git a/docs/Change_Log.html b/docs/Change_Log.html
index b200631d2..c3b5573cf 100644
--- a/docs/Change_Log.html
+++ b/docs/Change_Log.html
@@ -3,84 +3,56 @@
<html>
<head>
<h2>Change List</h2>
- <h3>Android NDK, Revision 10c</a> <em>(October 2014)</em></h3>
+ <h3>Android NDK, Revision 10d</a> <em>(December 2014)</em></h3>
</p>
- <dt>Important changes:</dt>
+ <dt>Important changes:</dt>
<dd>
<ul>
- <li>Made the following changes to download structure:</li>
- <ul>
- <li>Each package now contains both the 32- and the 64-bit headers, libraries, and tools for
- its respective platform.</li>
- <li>STL libraries with debugging info no longer need be downloaded separately.</li>
- </ul>
- <li>Changed everything previously called <code>Android-L</code> to the official release
- designation: <code>android-21</code>.</li>
- <li>Updated GCC 4.9 by rebasing to the <code>google</code> branch
- of the GCC repository. Major differences from the upstream version of GCC 4.9 include:</li>
-
- <ul>
- <li>The <code>-O2</code> option now turns on vectorization, without loop peeling but with more
- aggressive unrolling.</li>
- <li>Enhancements to FDO and <a href="https://gcc.gnu.org/wiki/LightweightIpo#LIPO_-_Profile_Feedback_Based_Lightweight_IPO">
- LIPO</a></li>
- <p>For more detailed information, see <em>Important bug fixes</em> below.</p>
- </ul>
-
- <li>Added Clang 3.5 support to all hosts: <code>NDK_TOOLCHAIN_VERSION=clang</code>
- now picks Clang 3.5. Note that:</li>
- <ul>
-
- <li>ARM and x86 default to using the integrated assembler. If this causes issues, use
- <code>-fno-integrated-as</code> as a workaround.</code>
- <li>Clang 3.5 issues more warnings for unused flags, such as the <code>-finline-functions</code>
- option that GCC supports.</li>
- <p>When migrating from projects using GCC, you can use
- <code>-Wno-invalid-command-line-argument</code> and <code>-Wno-unused-command-line-argument</code>
- to ignore the unused flags until you're able decide on what to do with them longer-term.</p>
-
- </ul>
- <li>Made it possible to enter ART debugging mode, when debugging on an Android 5.0 device using
- ART as its virtual machine, by specifying the <code>art-on</code> option. For more information,
- see <code>prebuilt/common/gdb/common.setup</code> in the directory containing the NDK.</li>
- <li>Removed support for Clang 3.3.</li>
- <li>Deprecated GCC 4.6, and may remove it from future releases.</li>
- <li>Updated mclinker to 2.8 with Identical Code Folding ("ICF") support. Specify ICF using the
- <code>--icf</code> option.</li>
- <li>Broadened <code>arm_neon.h</code> support in x86 and x86_64, attaining coverage of ~93% of
- NEON intrinsics. For more information about NEON support:
- <ul>
- <li>Navigate to the NDK Programmer's Guide (<code>docs/Programmers_Guide/html/</code>), and see
- Architectures and CPUs > Neon.</li>
- <li>Examine the updated <code>hello-neon</code> sample in <code>samples/</code>.
- <li>See Intel's guide to <a href="https://software.intel.com/en-us/blogs/2012/12/12/from-arm-neon-to-intel-mmxsse-automatic-porting-solution-tips-and-tricks"> porting from ARM NEON to Intel SSE.</a></li>
- </ul>
- <li>Documented support for <code>_FORTIFY_SOURCE</code> in <code>headers/libs/android-21</code>,
- which appeared in r10 (when <code>android-21</code> was still called <code>Android-L</code>),
- but had no documentation.</li>
+ <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>
</ul>
</dd>
- <dl>
+
<dt>Important bug fixes:</dt>
<dd>
<ul>
- <li>Fixed an internal compiler error with GCC4.9/aarch64 that was causing the following
- error message (Issue <a href="http://b.android.com/77564">77564</a>):</li>
-<pre>
-internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:1539
-</pre>
- <li>Fixed incorrect code generation from GCC4.9/arm. (Issue
- <a href="http://b.android.com/77567">77567<a>)</li>
- <li>Fixed an internal compiler error with GCC4.9/mips involving inline-assembly. (Issue
- <a href="http://b.android.com/77568">77568</a>)</li>
- <li>Fixed incorrect code that GCC4.9/arm was generating for <code>x = (cond) ? y : x</code>.
- (Issue <a href="http://b.android.com/77569">77569</a>)</li>
- <li>Fixed GCC4.9/aarch64 and Clang3.5/aarch64 to work around the
- <a href="http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20141006/116322.html">
- Cortex-A53 erratum (835769)</a> by default. Disable the workaround by specifying
- <code>-mno-fix-cortex-a53-835769</code>.</li>
+ <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>
</ul>
</dd>
@@ -88,98 +60,56 @@ internal compiler error: in simplify_const_unary_operation, at simplify-rtx.c:15
<dt>Other bug fixes:</dt>
<dd>
<ul>
- <li>Made the following header and library fixes to <code>android-21</code>:
- <ul>
-
- <li>Added more TV keycodes: <code>android/keycodes.h</code></li>
- <li>Added more constants and six new sensor functions to <code>android/sensor.h</code>:
- <code>ASensorManager_getDefaultSensorEx</code>, <code>ASensor_getFifoMaxEventCount</code>,
- <code>ASensor_getFifoReservedEventCount</code>, <code>ASensor_getStringType</code>,
- <code>ASensor_getReportingMode</code>, and <code>ASensor_isWakeUpSensor</code>.</li>
- <li>Fixed <code>stdatomic.h</code> to improve compatibility with GCC 4.6, and provide support
- for the <code>&lt;atomic&gt;</code> header.</li>
- <li>Added <code>sys/ucontext.h</code> and <code>sys/user.h</code> to all API levels. The
- <code>signal.h</code> header now includes <code>&lt;sys/ucontext.h&gt;</code>. You may
- remove any existing definition of <code>struct ucontext</code>.</li>
- <li>Added <code>posix_memalign</code> to API levels 17, 18, and 19.</li>
- <li>Added the following functions to all architectures:
- <code>android_set_abort_message</code>, <code>posix_fadvise</code>,
- <code>posix_fadvise64</code>, <code>pthread_gettid_np</code>.</li>
- <li>Added the required permissions to the <code>native-media/AndroidManifest.xml</code>
- sample.
- (Issue <a href="https://android-review.googlesource.com/#/c/106640/">106640</a>)</li>
- <li>Added <code>clock_nanosleep</code> and <code>clock_settime</code> to API level 21. (Issue
- <a href="http://b.android.com/77372">77372</a>)
- <li>Removed the following symbols from all architectures:
- <code>get_malloc_leak_info</code>, <code>free_malloc_leak_info</code>,
- <code>__srget</code>, <code>__swbuf</code>, <code>__srefill</code>, <code>__swsetup</code>,
- <code>__sdidinit</code>, <code>__sflags</code>, <code>__sfp</code>,
- <code>__sinit</code>, <code>__smakebuf</code>, <code>__sflush</code>, <code>__sread</code>,
- <code>__swrite</code>, <code>__sseek</code>, <code>__sclose</code>,
- <code>_fwalk</code>, <code>__sglue</code>, <code>__get_thread</code>, <code>__wait4</code>,
- <code>__futex_wake</code>, <code>__open</code>, <code>__get_tls</code>,
- <code>__getdents64</code>, and <code>dlmalloc</code>.</li>
- <li>Removed the following functions from the 64-bit architectures: <code>basename_r</code>,
- <code>dirname_r</code>, <code>__isthreaded</code>, <code>_flush_cache</code> (mips64).</li>
- <li>Removed the following function from the 32-bit architectures:
- <code>__signalfd4</code>.</li>
- <li>Changed the type of the third argument from <code>size_t</code> to <code>int</code> in
- the following functions: <code>strtoll_l</code>, <code>strtoull_l</code>,
- <code>wcstoll_l</code>, and <code>wcstoull_l</code>.</li>
- <li>Restored the following functions to the 64-bit architecture: <code>arc4random</code>,
- <code>arc4random_buf</code>, and <code>arc4random_uniform</code>.</li>
- <li>Moved <code>cxa_*</code> and the <code>new</code> and <code>delete</code> operators back
- to <code>libstdc++.so</code>. This change restores r9d behavior; previous versions of r10
- contained dummy files.</li>
-
- </ul>
- <li>Restored MXU support in GCC 4.8 and 4.9 for mips. This support had been absent from
- r10 and r10b because those versions of GCC had been compiled with binutils-2.24, which did
- not support MXU. It now does.</li>
- <li>Fixed <code>--toolchain=</code> in <code>make-standalone-toolchain.sh</code> so that it
- now properly supports use of a suffix specifying a version of Clang.</li>
- <li>Fixed the libc++/armeabi <code>strtod()</code> functions.</li>
- <li>Made fixes to NDK documentation in <code>docs/</code>.</li>
- </ul>
- </dd>
-
- <dt>Other changes:</dt>
- <dd>
- <ul>
- <li>Enhanced <code>cpu-features</code> to detect ARMv8 support for the following
- instruction sets: AES, CRC32, SHA2, SHA1, and 64-bit PMULL/PMULL2. (Issue
- <a href="https://android-review.googlesource.com/#/c/106360/">106360</a>)</li>
-
- <li>Modified ndk-build to use <code>*-gcc-ar</code>, which is available in GCC 4.8, GCC 4.9, and
- Clang. Clang specifies it, instead of <code>*-ar</code>. This setting brings improved LTO
- support.</li>
-
- <li>Removed the <code>include-fixed/linux/a.out.h</code> and
- <code>include-fixed/linux/compiler.h</code> headers from the GCC compiler.
- (Issue <a href ="http://b.android.com/73728">73728</a>)</li>
-
- <li>Fixed an issue related to <code>-flto</code> with GCC 4.8 on Mac OS X. The error message
- read:</li>
-
- <pre>
-.../ld: error: .../libexec/gcc/arm-linux-androideabi/4.9/liblto_plugin.so
-Symbol not found: _environ
-</pre>
-
- <li>Fixed a typo in <code>build-binary.mk.</code> (Issue
- <a href="http://b.android.com/76992">76992</a>)</li>
- </ul>
- </dd>
-
- <dt>Important known issues:</dt>
- <dd>
- <ul>
- <li>Specifying -Os (<code>-fauto-profile</code>) in GCC4.9 may cause crashing.
- (Issue <a href="http://b.android.com/77571">77571</a>)</li>
+ <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>
+ </ul>
+
+ <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>
+
+ <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>Removed bash-specific code from ndk-gdb. (Issue <a href="http://b.android.com/73338">73338</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>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 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 an issue with <code>LOCAL_PCH</code> to improve Clang support. (Issue
+ <a href="http://b.android.com/77575">77575</a>)</li>
+
+ <li>Clarified "requires executable stack" warning from ld.gold. (Issue
+ <a href="http://b.android.com/79115">79115</a>)</li>
</ul>
</dd>
- </dl>
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>