David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 1 | <!DOCTYPE html> |
| 2 | |
| 3 | <html> |
| 4 | <head> |
| 5 | <h2>Change List</h2> |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 6 | <h3>Android NDK, Revision 10d</a> <em>(December 2014)</em></h3> |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 7 | </p> |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 8 | <dt>Important changes:</dt> |
David Friedman | 0dba084 | 2014-10-21 18:00:15 -0700 | [diff] [blame] | 9 | <dd> |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 10 | <ul> |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 11 | <li>Made GCC 4.8 the default for all 32-bit ABIs. Deprecated GCC 4.6, and |
| 12 | will remove it next release. To restore previous behavior, either add |
| 13 | <code>NDK_TOOLCHAIN_VERSION=4.6</code> to ndk-build, or |
| 14 | add <code>--toolchain=arm-linux-androideabi-4.6</code> when executing |
| 15 | <code>make-standalone-toolchain.sh</code> on the command line. GCC 4.9 remains the |
| 16 | default for 64-bit ABIs.</li> |
David Friedman | 0dba084 | 2014-10-21 18:00:15 -0700 | [diff] [blame] | 17 | |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 18 | <li>Stopped all x86[_64] toolchains from adding <code>-mstackrealign</code> by default. The |
| 19 | NDK toolchain assumes a 16-byte stack alignment. The tools and options used by default |
| 20 | enforce this rule. A user writing assembly code must make sure to preserve stack |
| 21 | alignment, and ensure that other compilers also comply with this rule. |
| 22 | (GCC bug <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38496">38496</a>)</li> |
David Friedman | 0dba084 | 2014-10-21 18:00:15 -0700 | [diff] [blame] | 23 | |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 24 | <li>Added Address Sanitizer functionality to Clang 3.5 support to the ARM and x86 ABIs. |
| 25 | More information on this change is available |
| 26 | <a href="https://code.google.com/p/address-sanitizer/wiki/Android">here</a>.</li> |
David Friedman | 0dba084 | 2014-10-21 18:00:15 -0700 | [diff] [blame] | 27 | |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 28 | <li>Introduced the requirement, starting from API level 21, to use <code>-fPIE -pie |
| 29 | </code> when building. In API levels 16 and higher, ndk-build uses <code>PIE</code> |
| 30 | when building. This change has a number of implications, which are discussed |
| 31 | <a href="https://code.google.com/p/android-developer-preview/issues/detail?id=888">here</a>. |
| 32 | These implications do not apply to shared libraries.</li> |
David Friedman | 0dba084 | 2014-10-21 18:00:15 -0700 | [diff] [blame] | 33 | </ul> |
| 34 | </dd> |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 35 | |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 36 | |
| 37 | |
| 38 | <dt>Important bug fixes:</dt> |
| 39 | <dd> |
| 40 | <ul> |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 41 | <li>Made more fixes related to |
| 42 | <a href="https://gcc.gnu.org/ml/gcc-patches/2014-10/msg00906.html"> |
| 43 | A53 Errata #835769</a> in the aarch64-linux-android-4.9 linker. As part of this, GCC |
| 44 | passes a new option, <code>--fix-cortex-a53-835769</code>, when |
| 45 | <code>-mfix-cortex-a53-835769</code> (enabled by default) is specified. |
| 46 | For more information, see |
| 47 | <a href="https://sourceware.org/ml/binutils/2014-10/msg00198.html">this page</a> and |
| 48 | <a href="https://sourceware.org/ml/binutils/2014-11/msg00287.html">this page</a></li> |
| 49 | |
| 50 | <li>Documented a fix to a libc++ <code>sscanf/vsscanf</code> hang that occurred in API level |
| 51 | 21. The fix itself had been implemented in r10c. |
| 52 | (Issue <a href="http://b.android.com/77988">77988</a>)</li> |
| 53 | |
| 54 | <li>Fixed an AutoFDO (<code>-fauto-profile</code>) crash that occurred with GCC 4.9 when |
| 55 | <code>-Os</code> was specified. (Issue <a href="http://b.android.com/77571">77571</a>)</li> |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 56 | </ul> |
| 57 | </dd> |
| 58 | |
David Friedman | 0dba084 | 2014-10-21 18:00:15 -0700 | [diff] [blame] | 59 | |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 60 | <dt>Other bug fixes:</dt> |
| 61 | <dd> |
| 62 | <ul> |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 63 | <li>Made the following header and library fixes:</li> |
| 64 | <ul> |
| 65 | <li>Added <code>posix_memalign</code> to API level 16. Also, added a prototype in |
| 66 | <code>stdlib.h</code> to API levels 16 to 19. |
| 67 | (Issue <a href="http://b.android.com/77861">77861</a>.)</li> |
| 68 | <li>Fixed <code>stdatomic.h</code> so that it includes <code><atomic></code> only for |
| 69 | C++11.</li> |
| 70 | <li>Modified the following headers for standalone use: <code>sys/user.h</code>, and |
| 71 | <code>gl2ext.h</code>, <code>dlext.h</code>, <code>fts.h</code>, <code>sgidefs.h</code> |
| 72 | for API level 21.</li> |
| 73 | <li>Modified <code>sys/user.h</code> to rename <code>mxcsr_mask</code> as <code>mxcr_mask</code>, |
| 74 | and to change the data type for <code>u_ar0</code></li> from <code>unsigned long</code> |
| 75 | to </code>struct user_regs_struct*</code>. |
| 76 | <li>Changed <code>sysconf()</code> return value type from <code>int</code> to |
| 77 | <code>long</code>.</li> |
| 78 | </ul> |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 79 | |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 80 | <li>Fixed ndk-build's handling of <code>thumb</code> for <code>LOCAL_ARM_MODE</code>: In |
| 81 | r10d, ndk-build adds <code>LOCAL_LDFLAGS+=-mthumb</code> by default, unless one of the |
| 82 | following conditions applies:</li> |
| 83 | <ul> |
| 84 | <li><code>LOCAL_ARM_MODE</code> has been set equal to <code>arm</code>.</li> |
| 85 | <li>You are doing a debug build (with settings such as <code>APP_OPTIM=debug</code> and |
| 86 | <code>AndroidManifest.xml</code> containing <code>android:debuggable="true"</code>), |
| 87 | where ARM mode is the default in order to retain compatibility with earlier toolchains. |
| 88 | (Issue <a href="http://b.android.com/74040">74040</a>)</li> |
| 89 | </ul> |
Andrew Hsieh | 880507b | 2014-09-30 11:13:51 +0800 | [diff] [blame] | 90 | |
Andrew Hsieh | ce90c07 | 2014-12-05 18:49:10 +0800 | [diff] [blame] | 91 | <li>Fixed <code>LOCAL_SRC_FILES</code> in ndk-build to use Windows absolute paths. |
| 92 | (Issue <a href="http://b.android.com/74333">74333</a>)</li> |
| 93 | |
| 94 | <li>Removed bash-specific code from ndk-gdb. (Issue <a href="http://b.android.com/73338">73338</a>)</li> |
| 95 | |
| 96 | <li>Removed bash-specific code from <code>make-standalone-toolchain.sh</code>. |
| 97 | (Issue <a href="http://b.android.com/74145">74145)</a></li> |
| 98 | |
| 99 | <li>Revised documentation concerning a fix for <code>System.loadLibrary()</code> transitive |
| 100 | dependencies. (Issue <a href="http://b.android.com/41790">41790</a>)</li> |
| 101 | |
| 102 | <li>Fixed a problem that was preventing 64-bit packages from extracting on Ubuntu 14.04 and |
| 103 | OS X 10.10 (Yosemite). (Issue <a href="http://b.android.com/78148">78148</a>)</li> |
| 104 | |
| 105 | <li>Fixed an issue with <code>LOCAL_PCH</code> to improve Clang support. (Issue |
| 106 | <a href="http://b.android.com/77575">77575</a>)</li> |
| 107 | |
| 108 | <li>Clarified "requires executable stack" warning from ld.gold. (Issue |
| 109 | <a href="http://b.android.com/79115">79115</a>)</li> |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 110 | </ul> |
| 111 | </dd> |
Andrew Hsieh | 880507b | 2014-09-30 11:13:51 +0800 | [diff] [blame] | 112 | |
Andrew Hsieh | 880507b | 2014-09-30 11:13:51 +0800 | [diff] [blame] | 113 | |
David Friedman | e8ce43d | 2014-06-14 00:37:45 -0700 | [diff] [blame] | 114 | |
| 115 | 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> |
| 116 | <br> |
| 117 | |
| 118 | <div id="copyright"> |
| 119 | |
| 120 | Except as noted, this content is |
| 121 | licensed under <a href="http://creativecommons.org/licenses/by/2.5/"> |
| 122 | Creative Commons Attribution 2.5</a>. For details and |
| 123 | restrictions, see the <a href="http://developer.android.com/license.html">Content |
| 124 | License</a>. |
| 125 | <div id="footerlinks"> |
| 126 | |
| 127 | <p> |
| 128 | <a href="http://developer.android.com/about/index.html">About Android</a> | |
| 129 | <a href="http://developer.android.com/legal.html">Legal</a> | |
| 130 | <a href="http://developer.android.com/support.html">Support</a> |
| 131 | </p> |
| 132 | </div> |
| 133 | </div> |
| 134 | </body> |
| 135 | </html> |