summaryrefslogtreecommitdiff
path: root/components/toolchain/binaries/README.textile
blob: c18b6d39f7e175c94a119721e040f3a1f9887a5d (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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326

h1. The Linaro Binary Toolchain


The Linaro GCC 6.4-2018.05-rc1 Release-Candidate is now available.

The GCC 6 Release series has significant changes from the GCC 5 release series.  For an explanation of the changes please see the following website:

p((((. "https://gcc.gnu.org/gcc-6/changes.html":https://gcc.gnu.org/gcc-6/changes.html


For help in porting to GCC 6 please see the following explanation:

p((((. "https://gcc.gnu.org/gcc-6/porting_to.html":https://gcc.gnu.org/gcc-6/porting_to.html


Download release-candidate packages from:

p((((. (sources) "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.05-rc1/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.05-rc1/

p((((. (binaries) "http://snapshots.linaro.org/components/toolchain/binaries/6.4-2018.05-rc1/":http://snapshots.linaro.org/components/toolchain/binaries/6.4-2018.05-rc1/


Previous snapshots and release-candidates are at:

p((((. "http://snapshots.linaro.org/components/toolchain/binaries/":http://snapshots.linaro.org/components/toolchain/binaries/


Previous releases are at:

p((((. "http://releases.linaro.org/components/toolchain/binaries/":http://releases.linaro.org/components/toolchain/binaries/


A description of the arm and AArch64 target triples can be found at:

p((((. "https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Triples":https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Triples


h2. Host Requirements


Linaro officially supports the current and previous Ubuntu LTS releases (as of the time of this release).  This does not mean that the toolchain will not work on other/older Linux distributions.  See the following for the life-time of Ubuntu LTS releases.

p((((. "https://wiki.ubuntu.com/Releases":https://wiki.ubuntu.com/Releases


The host system upon which the cross-compiler will run requires a minimum of glibc 2.14, because of API changes to glibc's memcpy API.

p((((. "https://bugs.linaro.org/show_bug.cgi?id=1869":https://bugs.linaro.org/show_bug.cgi?id=1869


h2. Package Versions

Linaro GCC 6.4-2018.05-rc1

p((((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.05-rc1/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.05-rc1/


Linaro glibc 2.23 (linaro/2.23/master)

p((((. "https://lists.gnu.org/archive/html/info-gnu/2016-02/msg00009.html":https://lists.gnu.org/archive/html/info-gnu/2016-02/msg00009.html


Linaro newlib 2.4-2016.03 (linaro_2.4-branch)

p((((. "https://sourceware.org/ml/newlib/2016/msg00370.html":https://sourceware.org/ml/newlib/2016/msg00370.html


Linaro binutils 2.27 (users/linaro/binutils-2_27-branch)

p((((. "https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_27":https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=binutils/NEWS;hb=refs/tags/binutils-2_27


Linaro GDB 8.1 (gdb-8.1-branch)

p((((. "https://lists.gnu.org/archive/html/info-gnu/2018-01/msg00016.html":https://lists.gnu.org/archive/html/info-gnu/2018-01/msg00016.html


Linaro toolchain package git branches are hosted at:

p((((. "http://git.linaro.org/toolchain":http://git.linaro.org/toolchain


h2. NEWS for GCC 6 (as of Linaro GCC 6.4-2018.05-rc1)


* Previous MinGW hosted version of Linaro GCC C preprocessor failed to convert character set used for string, character constants, etc.  This is fixed in this release.


p(((. Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.

p(((. "https://bugs.linaro.org/show_bug.cgi?id=3040":https://bugs.linaro.org/show_bug.cgi?id=3040


* The Linaro GCC 6.3-2017.05 snapshot added support for -mpure-code option to ARMv7-M and ARMv8-M targets.  This option ensures functions are put into sections that contain only code and no data.


* The GDB version was upgraded from GDB 8.0 to 8.1.


* Previous versions of the Linaro GCC 6 toolchain, when -static -E/—dynamic-list are passed to the linker, might create executables with dynamic sections which aren’t supported by run-time. This was exhibited in Perf Tools build system and has been fixed upstream and backported into Linaro Binutils 2.27 branch.


p(((. Linaro bugzilla #2926 : Perf tools compiled statically for AArch64 with Linaro release 6.1 and later ones was not statically linked.

p(((. "https://bugs.linaro.org/show_bug.cgi?id=2926":https://bugs.linaro.org/show_bug.cgi?id=2926


* The Linaro GCC 6.3-2017.03 snapshot fixed some ILP32 issues (TLS, exception handling, …) and these have been incorporated into this release.


* Previous versions of the Linaro GCC 6 toolchain were incorrectly generating floating-point code for soft-float Linux targets (arm-linux-gnueabi, and armeb-linux-gnueabi).  This escaped detection until recently because the soft-float targeted toolchains were configured to use general-purpose registers for passing floating-point values (which is what you would expect for soft-float toolchains) and the intra-routine floating-code was not noticed.


p(((. The issue would only show up on targets that were run on hardware that truly didn't have floating-point hardware where the kernel did not trap and emulate floating-point routines.  This has been solved in Linaro GCC 6.3-2017.02-rc2 by configuring the toolchain (using --with-float=soft) to generate code without any floating-point instructions at all (-mfloat-abi=soft).

p(((. "https://review.linaro.org/#/c/16968/2":https://review.linaro.org/#/c/16968/2


p(((. This change should not break compatibility between existing binaries compiled with these toolchains since the float-point parameter passing ABI is still the same.

* A bug/regression in the compiler has been identified whereby the target function that is invoked when calling a "weak" function directly is the "strong" override, whereas when calling the function via a pointer the "weak" implementation is used.  This would be noticed as inconsistent function invocation when invoking directly vs. invoking via function pointer.  This issue only affected 32-bit arm targets.  This regression has been fixed upstream and backported into Linaro GCC 6.3-2017.02-rc2.


p(((. GCC PR target/78253: [5/6/7 Regression] [ARM] call weak function instead of strong when called through pointer.

p(((. "https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78253":https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78253


p(((. Linaro bugzilla #2562: ARM GCC 5.2 call weak function instead of strong when called through pointer

p(((. "https://bugs.linaro.org/show_bug.cgi?id=2562":https://bugs.linaro.org/show_bug.cgi?id=2562


* MS Windows does not support symlinks and the MS Windows archive extractor does not properly deep copy the symlink target files/directories into the symlinked directory structure when unpacking the toolchain archive.  This causes problems with missing dependencies when using the Linaro mingw toolchains, as identified in the following bugs:


p(((. "https://bugs.linaro.org/show_bug.cgi?id=2684":https://bugs.linaro.org/show_bug.cgi?id=2684

p(((. "https://bugs.linaro.org/show_bug.cgi?id=2192":https://bugs.linaro.org/show_bug.cgi?id=2192

p(((. "https://bugs.linaro.org/show_bug.cgi?id=2762":https://bugs.linaro.org/show_bug.cgi?id=2762


p(((. This has been solved by copying files rather than using symlinks when the mingw targetted toolchain archives are created.

p(((. "https://review.linaro.org/#/c/16415/":https://review.linaro.org/#/c/16415/


* Users of Linaro's toolchain have encountered problems when building projects with Autotools (specifically libtool):


p(((. "https://bugs.linaro.org/show_bug.cgi?id=2764":https://bugs.linaro.org/show_bug.cgi?id=2764


p(((. The Linaro binary toolchain release contained files with a .la suffix as artifacts of the toolchain build process.  These .la files are helper files for libtool, but unlike a gcc install tree, they are not position independent and contain full paths.  Since these artifacts contain absolute paths they can actually mislead user invocation of libtool into not finding required libraries (because they reference the build tree, not the install location) and hence breaking Autotools builds.  These *.la file artifacts have been removed from Linaro toolchain binaries because they are unnecessary for users.

* The Linaro GCC 6.3-2017.01 snapshot added further enablement for ARMv8-M and these have been incorporated into this release.


* Compiling and statically linking some SPEC2006int tests against tcmalloc have been failing due to a problem with glibc's memory allocator function overrides.  This was fixed upstream:


p(((. "https://sourceware.org/bugzilla/show_bug.cgi?id=20432":https://sourceware.org/bugzilla/show_bug.cgi?id=20432


p(((. Backported into Linaro glibc 2.23:

p(((. commit 058b5a41d56b9a8860dede14d97dd443792d064b
Author: Florian Weimer <fweimer@redhat.com>
Date:   Fri Aug 26 22:40:27 2016 +0200
malloc: Simplify static malloc interposition [BZ #20432]

* Host binaries for x86_64 linux hosts now have symbols and debug information stripped in order to reduce the size of the toolchain binary archives.  This reduces the archive size from 1.5G to 600M for aarch64-linux-gnu target with the gcc-6-branch.


* The GDB version was upgraded from GDB 7.11 in the Linaro GCC 6.1-2016.08 release to GDB 7.12 in the Linaro GCC 6.2-2016.11 release.


* The Linaro GCC 6.2-2016.10 snapshot added AArch32 support for ARMv8.2 and ARMv8m, as well as some AArch64 fixes for ARMv8.2, and bug fixes merged from FSF GCC 6.2.  This is available in the binary toolchain as of Linaro GCC 6.2-2016.11.


* Basic tuning support for the Qualcomm qdf24xx was added to the Linaro GCC 6.2-2016.10 snapshot and is available in the binary toolchain as of Linaro GCC 6.2-2016.11.


* IFUNC was disabled for baremetal targets, as it was causing test-suite failures, and is presently a Linux only feature.


* The gold linker was added to this binary release.


* Backported malloc_lock fix into Linaro newlib 2.4.

p(((. 
commit 2665915cfc46aa6403bb2efd473c523d3167e0cb
Author: Andre Vieira (lists) <Andre.SimoesDiasVieira@arm.com>
Date:   Thu Jun 16 12:23:51 2016 +0100
Re-enable malloc_lock for newlib-nano

* Backported rawmemchr patch into Linaro newlib 2.4.

p(((. 
commit e7b1ee2ea6aa3ee1da41976407410e6202a098c5
Author: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Date:   Thu May 12 16:16:58 2016 +0000
Add rawmemchr

* Backported strlen fix when using Thumb-2 and -Os -marm into Linaro newlib 2.4.

p(((. 
commit 5c02bcc086a96b174e1b9e1445a4a1770070107a
Author: Thomas Preud'homme <thomas.preudhomme@arm.com>
Date:   Wed May 11 17:18:48 2016 -0400
Fix strlen using Thumb-2 with -Os -marm

* Backported fix for semihosting ARM when heapinfo not provided by debugger into Linaro newlib 2.4.

p(((. 
commit 5c9403eaf40951f8a4f55ed65f661b485ff44be7
Author: David Hoover <spm2@dangerous.li>
Date:   Thu Apr 21 07:12:24 2016 +0200
Fixed semihosting for ARM when heapinfo not provided by debugger.

* Merged latest FSF glibc release/2.23/master into Linaro glibc 2.23.


* Backported __ASSUME_REQUEUE_PI check Linaro glibc 2.23 branch.

p(((. 
commit 2d20c3bf918cd94ebd4106693adb3a5c9272baba
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Tue May 17 10:16:39 2016 -0300
Add runtime check for __ASSUME_REQUEUE_PI (BZ# 18463)

* Backported removal of __ASSUME_SET_ROBUST_LIST from Linaro glibc 2.23 branch.

p(((. 
commit bb8f09d72756186a3d82a1f7b2adcf8bc1fbaed1
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 16 19:01:10 2016 -0300
Remove __ASSUME_SET_ROBUST_LIST

* Backported removal of __ASSUME_FUTEX_LOCK_PI from Linaro glibc 2.23 branch.

p(((. 
commit e48b4e7fed0de06dd7832ead48bea8ebc813a204
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon May 16 10:35:25 2016 -0300
Remove __ASSUME_FUTEX_LOCK_PI

* Merged latest FSF binutils-2_27-branch into linaro_binutils-2_27-branch.


* The libwinpthread DLL is now copied into the host bin directory to satisfy mingw package dependencies.


* Backported GNU Linker fix.

p(((. 
commit fbc6c6763e70cb2376e2de990c7fc54c0ee44a59
Author: Nick Clifton <nickc@redhat.com>
Date:   Tue Aug 23 09:45:11 2016 +0100
Fix seg-fault in ARM linker when trying to parse a binary file.

* Backported GNU Assembler fix for PR 20364

p(((. 
commit 5fe7ebe5ab43750abf8f490b785d99a1e598e7fd
Author: Nick Clifton <nickc@redhat.com>
Date:   Fri Aug 5 10:37:57 2016 +0100
Fix the generation of alignment frags in code sections for AArch64.

p(((. "https://sourceware.org/bugzilla/show_bug.cgi?id=20364":https://sourceware.org/bugzilla/show_bug.cgi?id=20364


* Performance related backports from the following snapshots have been included: Linaro GCC 6.1-2016.06, Linaro GCC 6.1-2016.07, Linaro GCC 6.1-2016.08, Linaro GCC 6.2-2016.09, Linaro GCC 6.2-2016.10, Linaro GCC 6.2-2016.11, Linaro GCC 6.2-2016.12, Linaro GCC 6.3-2017.01, Linaro GCC 6.3-2017.02, Linaro GCC 6.3-2017.03, Linaro GCC 6.3-2017.04, Linaro GCC 6.3-2017.05, Linaro GCC 6.3-2017.06, Linaro GCC 6.4-2017.07, Linaro GCC 6.4-2017.08, Linaro GCC 6.4-2017.09, Linaro GCC 6.4-2017.10 and Linaro GCC 6.4-2018.04.

p(((. 
See the following Linaro GCC snapshots:

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.06/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.06/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.07/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.07/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.08/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.08/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.09/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.09/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.10/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.10/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.12/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.12/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.01/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.01/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.02/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.02/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.03/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.03/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.04/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.04/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.05/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.05/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.06/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.3-2017.06/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.07/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.07/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.08/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.08/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.09/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.09/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.10/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2017.10/

p(((. "http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.04/":http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.4-2018.04/



h2. Contact Linaro


File bugs at "http://bugs.linaro.org":http://bugs.linaro.org

For Linaro member support see "http://support.linaro.org":http://support.linaro.org

For Linaro community support email "linaro-toolchain@lists.linaro.org":mailto:linaro-toolchain@lists.linaro.org