diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-12-05 18:49:10 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-12-05 18:49:10 +0800 |
commit | ce90c072c2d13e840ff2aaedf4b235b64b0c1d6c (patch) | |
tree | 58826c6a29dc93141a5392a30287bb82f94b01e1 /docs | |
parent | d3d8e3ae6306304231cbfbf7871aee6b711328a2 (diff) | |
download | ndk-ce90c072c2d13e840ff2aaedf4b235b64b0c1d6c.tar.gz |
r10d change log
Change-Id: I1d77a8b5f363c3105dd8208192d95feaca5a5389
Diffstat (limited to 'docs')
-rw-r--r-- | docs/Change_Log.html | 244 |
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><atomic></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><sys/ucontext.h></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><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> + </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> |