aboutsummaryrefslogtreecommitdiff
path: root/docs/Change_Log.html
blob: 4f4bcaece8c052a9e0a59fb374fe0242c3f48b84 (plain)
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>