1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
<!DOCTYPE html>
<html>
<head>
<h2>Change List</h2>
<h3>Android NDK, Revision 10e</a> <em>(May 2015)</em></h3>
<dt>Important changes:</dt>
<dl>
<dd>
<ul>
<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>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>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:
<pre>
.../ld: warning: creating a DT_TEXTREL in a shared object
</pre>
</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>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>Fixed <code>stlport collate::compare</code> to return <code>-1</code> and <code>1</code>. Previously,
it had returned arbitrary signed numbers.</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 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 <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>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>
<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>
<li>Added MIPS MSA and R6 detection to <code>cpu-features</code>.</li>
</ul>
</dd>
</dl>
|