blob: c3b5573cf9303523608a0c61a1367e2b04c69c8e [file] [log] [blame]
David Friedmane8ce43d2014-06-14 00:37:45 -07001<!DOCTYPE html>
2
3<html>
4 <head>
5 <h2>Change List</h2>
Andrew Hsiehce90c072014-12-05 18:49:10 +08006 <h3>Android NDK, Revision 10d</a> <em>(December 2014)</em></h3>
David Friedmane8ce43d2014-06-14 00:37:45 -07007 </p>
Andrew Hsiehce90c072014-12-05 18:49:10 +08008 <dt>Important changes:</dt>
David Friedman0dba0842014-10-21 18:00:15 -07009 <dd>
David Friedmane8ce43d2014-06-14 00:37:45 -070010 <ul>
Andrew Hsiehce90c072014-12-05 18:49:10 +080011 <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 Friedman0dba0842014-10-21 18:00:15 -070017
Andrew Hsiehce90c072014-12-05 18:49:10 +080018 <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 Friedman0dba0842014-10-21 18:00:15 -070023
Andrew Hsiehce90c072014-12-05 18:49:10 +080024 <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 Friedman0dba0842014-10-21 18:00:15 -070027
Andrew Hsiehce90c072014-12-05 18:49:10 +080028 <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 Friedman0dba0842014-10-21 18:00:15 -070033 </ul>
34 </dd>
Andrew Hsiehce90c072014-12-05 18:49:10 +080035
David Friedmane8ce43d2014-06-14 00:37:45 -070036
37
38 <dt>Important bug fixes:</dt>
39 <dd>
40 <ul>
Andrew Hsiehce90c072014-12-05 18:49:10 +080041 <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 Friedmane8ce43d2014-06-14 00:37:45 -070056 </ul>
57 </dd>
58
David Friedman0dba0842014-10-21 18:00:15 -070059
David Friedmane8ce43d2014-06-14 00:37:45 -070060 <dt>Other bug fixes:</dt>
61 <dd>
62 <ul>
Andrew Hsiehce90c072014-12-05 18:49:10 +080063 <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>&lt;atomic&gt;</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 Friedmane8ce43d2014-06-14 00:37:45 -070079
Andrew Hsiehce90c072014-12-05 18:49:10 +080080 <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 Hsieh880507b2014-09-30 11:13:51 +080090
Andrew Hsiehce90c072014-12-05 18:49:10 +080091 <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 Friedmane8ce43d2014-06-14 00:37:45 -0700110 </ul>
111 </dd>
Andrew Hsieh880507b2014-09-30 11:13:51 +0800112
Andrew Hsieh880507b2014-09-30 11:13:51 +0800113
David Friedmane8ce43d2014-06-14 00:37:45 -0700114
115A 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>&nbsp;&nbsp;|&nbsp;
129 <a href="http://developer.android.com/legal.html">Legal</a>&nbsp;&nbsp;|&nbsp;
130 <a href="http://developer.android.com/support.html">Support</a>
131 </p>
132 </div>
133 </div>
134</body>
135</html>