The Linaro Binary Toolchain
============================
The Linaro GCC 4.9-2017.01-rc1 Release-Candidate is now available.
This is a courtesy toolchain. The Linaro GCC 4.9 toolchain is officially
out of maintenance. This release is being provided in order to merge in
the last FSF GCC 4.9 branch changes into the Linaro GCC 4.9 release.
Notice: All Linaro GCC 4.9 series toolchain users should migrate to the
latest version of the Linaro GCC 4 toolchain in order to mitigate
potential security exposure to CVE-2015-7547. See the NEWS section
below for details.
Download release-candidate packages from:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/4.9-2017.01-rc1/http://snapshots.linaro.org/components/toolchain/binaries/4.9-2017.01-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/
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 4.9-2017.01-rc1
FSF eglibc 2.19 (linaro_eglibc-2_19)
Linaro newlib 2.1.0-2014.09 (linaro_newlib-branch)
Linaro binutils 2.24 (linaro_binutils-2_24-branch)
FSF GDB 7.10 (gdb-7.10-branch)
Linaro toolchain package git branches are hosted at:
https://git.linaro.org/toolchain
NEWS for GCC 4.9 (as of Linaro GCC 4.9-2017.01-rc1)
==================================================
* The soft-float targeted toolchains have switched to -mfloat-abi=soft
from -mfloat-abi=softfp.
This makes arm-linux-gnueabi and armeb-linux-gnueabi toolchains use
“soft” FP ABI instead of “softfp”.
Historically, TCWG’s toolchains provided both “soft” and “softfp”
multilibs, but when switching from crosstool-ng to cbuildv2/abe (which
support a single multilib) “softfp” multilib was choosen. Using
“-mfloat-abi=soft” is a better choice for a gnueabi toolchain, since
it doesn’t require cores to have a floating-point unit.
This change should not break compatibility for toolchain users since
the ABI will stay the same. The compiler and glibc libraries will not
refernce FP instructions.
* Removed .la files from binary installation as these files break
autotools builds.
https://bugs.linaro.org/show_bug.cgi?id=2764
* 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 830M to 480M for
aarch64-linux-gnu target with the gcc-4.9-branch.
* The armv8l-linux-gnueabihf targetted toolchain is now built using
--with-mode=thumb (like all of the other cross toolchains) rather than
the default which is ARM mode.
* Applied fix for CVE-2015-7545 - A stack-based buffer overflow in
glibc's getaddrinfo() was corrected in glibc 2.23 and backported into
Linaro eglibc 2.19 (linaro_eglibc-2_19).
https://sourceware.org/ml/libc-alpha/2016-02/msg00416.html
* See the following Linaro GCC snapshot:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/4.9-2015.10/
Contact Linaro
===============
File bugs at http://bugs.linaro.org
For Linaro member support see http://support.linaro.org
For Linaro community support email linaro-toolchain(a)lists.linaro.org
--
Ryan S. Arnold | Director - Linaro Core Technology and Tools
ryan.arnold(a)linaro.org | ryanarn on #linaro-tcwg @ freenode.irc.net
o Teaching activity (4/10)
== Progress ==
o Linaro GCC/Validation (5/10)
* GCC 4.9 2017.01:
- prepared source and binaries for RC1
- release notes to be finalized for publication
* GCC 5.4 2017.01
- Rebuilt binaries for the release
- Release notes almost completed
* Reviews
* Back to tree reassociation
o Misc (1/10)
* Various meetings and discussions.
== Plan ==
o GCC 4.9 release
o Backports review
o Tree reassociation
=== This Week ===
LLDB ARM/AArch64 hardware breakpoints [TCWG-717] [6/10]
-- Fixed hardware breakpoints routines in LLDB AArch64 register context.
-- Code tweaks in NativeProcessLinux/NativeThreadLinux/ProcessGDBRemote
-- Hardware breakpoint working with single threaded applications
-- Submitted a fix for LLDB AArch64 android gcc build failure
-- Wrote single and multi threaded test applications for test hardware
breakpoints.
Monitor LLDB buildbot for minimum down time. [TCWG-712] [2/10]
-- Investigate random test failures on Arm and add them to flakey tests.
-- Buildbot down due to UPS failure
-- Got UPS fixed. Restart builders and testers.
Miscellaneous Activities [2/10]
-- Meetings, Emails etc.
-- Hungary visa passport collection
-- Background study about GDB Linux Kernel awareness
=== Next Week ===
LLDB ARM/AArch64 hardware breakpoints [TCWG-717]
-- Continue work on hardware breakpoint register context routines Arm/AArch64
-- Find a way to install hardware breakpoints on multiple threads.
# Progress #
* TCWG-984, PR 20939, GDB aborts if there is an error in disassembly.
Done. All patches are committed to mainline. [3/10]
* Patch reviews, a lot, [5/10]
** Hold one of ILP32 BFD patch because it may affect aarch64 GDB,
Reviewed ILP32 GDB patch, and convince them not to add new target
descriptions for ILP32, to make our life easier in the future.
Otherwise, we need two copies of target description for each new
hardware feature, such as v8.3, SVE, etc.
** Try to hold one disassembler options patch, which affects ARM and
GDB. Gave some comments on the interface design, but looks I am
late.
** Finish the review on DW_OP_implicit_value. Met some grey area in
DWARF spec.
* Atomicity of concurrent modification on ptrace. [1/10]
It is unclear weather debugging can modify memory for one thread while
other threads are running. After the discussions with some kernel guy,
PTRACE_POKETEXT is atomic, but GDB use it in a non-atomic way when
writing 2-byte aligned 32-bit thumb-2 instruction. Suggested a
workaround upstreams.
* Misc, meeting [1/10]
# Plan #
* ILP32 patch review.
* Carefully read IBM's kernel debugging patches.
* Set up AArch64 bare debugging with GDB, OpenOCD, JTAG and
HiKey. Soldering is needed.
--
Yao Qi
[TCWG-614] Range extension thunks
- LLD now uses synthetic sections for Thunks.
ARM Thunks now have symbols and mapping symbols.
As a side-effect we can now create local symbols in synthetic sections
so I've added them to the ARM PLT sections.
[Misc]
- Wrote 3 lines of lld 4.0 release notes for ARM
- Some upstream patch review in rtdyld and ilp32 support in the assembler
- Presented my personal Linaro objectives to the TCWG leads.
Plans for next week:
- Complete Fosdem presentation, will be leaving early Friday to catch
the Eurostar
- Respond to any post commit review comments on Thunks
- Start work on range extension thunks, the previous commits to use
synthetic sections were pre-requisites to range extension thunks, but
added little new user-visible functionality.
Planned absences:
- Fosdem 2017 will need to leave early on Friday 4th Feb
- Holiday 21st Feb to 1st March
- Linaro Connect 6th to 10th March Euro LLVM 27-28 March (Linaro's
request and cost-code)
== Progress ==
* National holiday on Tuesday [2/10]
* [AArch64] Investigate PR30225 [TCWG-1021] [2/10]
- This was a bug related to the code alignment factor for the debug frame
- Decided it was not a correctness issue and the size savings for
using a different factor are probably not noticeable in practice, so I
closed the bug
* [ARM GlobalISel] Add support for integers < 32 bits wide [TCWG-980] [1/10]
- Committed all 3 patches upstream, reworked the third one a bit
* [ARM GlobalISel] Add support for pointers [TCWG-1028] [1/10]
- Started working on a patch
* Misc [4/10]
- Mailing list, code reviews, meetings
- Buildbots: reverted 2 sets of patches, noticed an issue with some
buildbots (which Renato ended up investigating)
- FOSDEM slides
== Plan ==
* [ARM GlobalISel] Add support for pointers [TCWG-1028]
=== This Week ===
Investigate LLDB testsuite failures on Pine64 target (AArch32 and
AArch64 modes) [TCWG-1012] [4/10]
-- Capture tests leaving behind runaway processes, found 3 so far.
-- Capture random failures and mark them flakey.
ARM/AArch64 hardware breakpoints [TCWG-717] [5/10]
-- Code review and prepared debug environment
-- Looked into Android Arm64 build failure with debug info.
Miscellaneous Activities [1/10]
-- Meetings, Emails etc.
=== Next Week ===
ARM/AArch64 hardware breakpoints [TCWG-717]
-- Fix hardware breakpoints routines in LLDB AArch64 register context.
Investigate LLDB testsuite failures on Pine64 target (AArch32 and
AArch64 modes) [TCWG-1012]
-- Keep and eye on tests marked flakey or any new random failures.
o Teaching activity (2/10)
== Progress ==
o Linaro GCC/Validation (5/10)
* GCC 4.9 snapshot:
- completed snapshot process
- waiting for linaro bug #1118 status before
releasing or re-spinning the snapshot.
https://bugs.linaro.org/show_bug.cgi?id=1118
* Made an published GCC 5.4 RC2, preparing the release
o Misc (3/10)
* Various meetings and discussions.
== Plan ==
o GCC 4.9 snapshot and binaries
o GCC 5.4 release
== This Week ==
* TCWG-1005 (malloc attr propagation) (4/10)
- Extended for pointer comparisons
- Patch review from Kugan
- Removed some cruft from the patch
* TCWG-1010 (bitwise dce propagation) (4/10)
- Started working on prototype
* Misc (2/10)
- Looked at Wheader-guard
- Building chromium with gcc
- Meetings
== Next Week ==
- TCWG-1005, TCWG-1010