The Linaro Binary Toolchain
============================
The Linaro GCC 7.1-2017.08-rc1 Release-Candidate is now available.
*Notice*: GCC 7.1 ABI change for arm*-*-* targets, and note for
aarch64*-*-* targets
>From GCC 7.1 release notes:
On ARM targets (arm*-*-*), a bug introduced in GCC 5 that affects
conformance to the procedure call standard (AAPCS) has been fixed. The
bug affects some C++ code where class objects are passed by value to
functions and could result in incorrect or inconsistent code being
generated. This is an ABI change. If the option -Wpsabi is enabled (on
by default) the compiler will emit a diagnostic note for code that
might be affected.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728
GCC 5 and GCC 6 releases will continue to be affected by the ABI bug,
since changing ABI in these releases is not practical. A warning
enabled by -Wpsabi option was added to GCC 5 and GCC 6 toolchains to
diagnose codebases that might be affected by the ABI bug.
Additionally, this same bug was present in AArch64 backend in
development versions of GCC 7. There was no releases of GCC with this
bug present in AArch64 backend, therefore the release notes does not
mention this. However, be advised that any code bases built with
development versions of GCC 7 need to be recompiled with released
version of GCC 7 to conform to ABI.
For an explanation of GCC 7 series changes please see the following
website:
https://gcc.gnu.org/gcc-7/changes.html
For help in porting to GCC 7 please see the following explanation:
https://gcc.gnu.org/gcc-7/porting_to.html
Download release-candidate packages from:
(sources)
http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.1-2017.08-rc1/
(binaries)
http://snapshots.linaro.org/components/toolchain/binaries/7.1-2017.08-rc1/
Previous snapshots and release-candidates are at:
http://snapshots.linaro.org/components/toolchain/binaries/
Previous releases are at:
http://releases.linaro.org/components/toolchain/binaries/
A description of the arm and AArch64 target triples can be found at:
https://collaborate.linaro.org/display/TCWGPUB/ARM+and+AArch64+Target+Tripl…
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.
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.
https://bugs.linaro.org/show_bug.cgi?id=1869
Package Versions
=================
Linaro GCC 7.1-2017.08-rc1
http://snapshots.linaro.org/components/toolchain/gcc-linaro/7.1-2017.08-rc1/
FSF glibc 2.25 (release/2.25)
https://lists.gnu.org/archive/html/info-gnu/2017-02/msg00002.html
Newlib 2.5 (newlib-2_5_0 tag)
https://sourceware.org/ml/newlib/2016/msg01191.html
GNU Binutils 2.28 (linaro-local/linaro_binutils-2_28-branch)
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=bin…
FSF GDB 8.0 (gdb-8.0-branch)
https://sourceware.org/ml/gdb-announce/2017/msg00003.html
Linaro toolchain package git branches are hosted at:
http://git.linaro.org/toolchain
NEWS for GCC 7 (as of Linaro GCC 7.1-2017.08-rc1)
===========================[ANNOUNCE] Linaro Binary Toolchain
Release-Candidate GCC 7.1-2017.08-rc1=======================
* The Linaro GCC 7.1-2017.07 snapshot added prefetching configuration
improvement for AArch64 targets and laid groundwork to enabling
prefetching in more cases.
* 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.
Linaro bugzilla #3040 : CC1 and cc1plus cannot convert UTF-8.
https://bugs.linaro.org/show_bug.cgi?id=3040
* Performance related backports from the following snapshots have been
included: Linaro GCC 7.1-2017.05, Linaro GCC 7.1-2017.06 and Linaro
GCC 7.1-2017.07.
# Progress #
* TCWG-1159,New design of GDB/GDBserver target description. [3/10]
Patches are still not reviewed. Keep going to change x86 target
descriptions. Post two patches to clean up them first.
* TCWG-561, Handle unavailable memory during frame unwinding. [3/10]
Patches are posted.
* PR 21818, GDB crashes with executable for armv5te. [1/10]
Patch is tested, and to be posted.
* Upstream review, [2/10]
** ADI patches review, advice on how to match the output in gdb tests,
** Some disassembly regression caused by my previous patches,
** Help people to triage their GDB issues because I don't have the env
to reproduce them.
* Misc, [1/10]
# Plan #
* TCWG-1162, Test GDB+OpenOCD with AArch64 boards.
Post my newlib patches upstream, and continue to test with
QEMU and OpenOCD respectively.
* TCWG-1159, New design of GDB/GDBserver target description
--
Yao Qi
o Back from vacation Wednesday.
== Progress ==
o Linaro GCC/Validation
* Discussed/checked needs for newlib and binutils to include in binaries
* Preparing RCs (release notes, ...)
* pinged my unreviewed upstream patches
* reviewed infra patches
o Misc
* Various meetings and discussions.
== Plan ==
o 2017.08 GCC 6 and 7 release candidates, backports, ...
== This Week ==
* malloc propagation (4/10)
- Resolved bootstrap comparison failure
- Patch passes validation with and without LTO.
- Working on handling indirect calls.
* type promotion (3/10)
- Created patche for resolving ICE with armv3/armv5t.
- Have got a hack-ish patch to address interference between type promotion and
widening_mul/bswap optimizations, but needs improvement.
* Misc (3/10)
- Meetings
- Visa interview
== Next Week ==
- Continue with malloc propagation, type promotion
# Progress #
* TCWG-1159,New design of GDB/GDBserver target description. [3/10]
Looks people who can review my patches is on holiday, so I committed
7 patches and leave the rest 19 patches there. Need to think about
how to make people more confident on these patches.
* PR 21717, PR 21555, fixed. Pushed to master and 8.0 branch.
[1/10]
* TCWG-1162, Test GDB+OpenOCD with AArch64 boards. [3/10]
I can run gdb regression tests with OpenOCD on HiKey. After I power
cycle the board, the first several tests can run, but the following
tests failed because the board goes to an odd state. Something wrong
in OpenOCD side.
Try GDB aarch64 bare-metal debugging with QEMU, and then find a bug
in newlib which doesn't initialize FPU, so some FPU instruction will
trigger und exception.
* TCWG-561, Handle unavailable memory during frame unwinding. [2/10]
Lear C++ move assignment and move constructor. Finish the code, and
testing the patches.
* Send my GDB target description talk abstract to Linaro SFO17.
* Misc [1/10]
# Plan #
* Mon and Tue off.
* TCWG-561, TCWG-1159.
--
Yao Qi
4 day week.
[TCWG-614] Range Extension Thunks
- Rebased due to upstream refactoring
- Pinged but no upstream review progress
[Compiler-rt]
Clang no longer always uses base PCS for all the builtins it expands
such as the _Complex helpers.
- Added tests to make sure RTABI 4.1.2 Floating Point helpers all use
softfp in Clang D35538 and llvm D35904.
- Reviewer pointed out useful script update_llc_test_checks.py that
can simplify writing of llc tests. Well worth checking out
[LLD]
Looks like lld use in Android may be becoming more likely, major
blocking feature is lack of Cortex-A53 erratum fix 843419.
- I've commented on the upstream PR https://bugs.llvm.org/show_bug.cgi?id=33463
- I've written some test cases and have started a prototype implementation
Submitted Linaro Connect presentation proposal for Functional Safety
and Development tools.
Plans:
In priority order:
- range extension thunks
- Cortex-A53 843419
- Compiler-rt
== Progress ==
* TCWG-1205 - Minor tweaks to Jenkins LLVM jobs [1/10]
- Sent a few patches to make the Jenkins jobs more friendly and/or
fix them for new changes in the upstream release script
* TCWG-1206 - Investigate timeouts on buildbots [1/10]
- Had some mysterious timeouts on some of the buildbots
- Didn't manage to reproduce, will keep an eye out in case it happens again
* TCWG-1199, 1200 - LLVM 5.0.0 for ARM and AArch64 [1/10]
- RC1 is out, there are some failures in some libunwind and
sanitizer tests; reported upstream
* TCWG-1194 - [ARM GlobalISel] Support simple, static globals [4/10]
- Committed some simple stuff and sent a patch for upstream review
* TCWG-1209 - [MIR] Print ARM constant pools [1/10]
- Printing target-specific constant pools is trivial, but testing is
a bit problematic
- All current MIR tests read in and then print out the same MIR,
which means that we'd have to add support for target-specific constant
pools in the parser as well
- This is complicated by the fact that at a first glance the parser
doesn't seem to handle any other target-specific stuff and I'm not
sure it's ok to pull ARMConstantPool into it
* Misc [2/10]
- Mailing lists, code reviews, meetings
== Plan ==
* Figure out what to do about TCWG-1209
* More code reviews and global isel
# Progress #
* TCWG-1159,New design of GDB/GDBserver target description. [1/10]
Commit one patch of v3. No review comments. Usually it means I don't
review patches, so other people don't review my patches.
* PR 21555. [3/10]
Think it again, and fix it with a better approach. Patches are posted.
* PR 21717. [2/10]
Fix a bug on getting/setting FPSCR on VFPv2. I am surprised that we don't
find it before. Testing patches.
* TCWG-1162, Test GDB+OpenOCD with AArch64 boards. [1/10]
Blocked by OpenOCD bugs. Chat with OpenOCD maintainer to make sure
these bugs are opened in the right place.
* TCWG-561, [3/10]
I finish the patches, but not confident because I use copy-and-swap idiom
for the first time. Need more time to bake it, write unit tests, etc. Maybe,
still need to read "More effective C++" further.
* TCWG-1162, Test GDB+OpenOCD with AArch64 boards.
Blocked by OpenOCD bugs. Chat with OpenOCD maintainer to make sure
these bugs are opened in the right place. Matthew (who contributed OpenOCD
AArch64) pinged me on irc, but he lost connection immediately. Probably, he
contact me for the OpenOCD bugs.
* Think about presenting GDB target description work in Linaro SFO17,
may add some SVE stuff if possible, to make it more attractive.
# Plan #
* TCWG-1159,
* PR 21717, 21555,
* TCWG-561,
* Register the presentation for Linaro SFO17,
--
Yao Qi