All,
During Connect the suggestion was made that each working group should have
its own IRC Channel for discussions and topics relating to the group in
particular (as opposed to #linaro which is 'generic' Linaro conversations).
Therefore I have just set up #linaro-tcwg on Freenode for the Toolchain
Working Group.
This channel is public and open to anyone who wants to talk with the TCWG
group about anything toolchain related.
Thanks,
Matt
--
Matthew Gretton-Dann
Toolchain Working Group, Linaro
== Progress ==
- Posted a revised patch for PR78365
- Fixed ICE and Spec2006 benchmarked type promotion pass
* There are couple of mis-compares that needs fixing
- Setup perf in r1-a12 and analyzing for type promotion and lto
- Documented tasks within reassoc
== Plan ==
- Perf analysis of LTO
- Type promotion pass
- Work on upstream bugs
== Progress ==
o Linaro GCC/Validation (6/10)
* Created regression detection job [TCWG-936]
* Fought with infrastructure / jenkins plugins issues
* Start to look at re-association [TCWG-955]
o Misc (4/10)
* Various meetings and discussions.
== Plan ==
o Improve regression detection job
o Improve linaro gcc integration validation
o Continue re-association learning
# Progress #
* TCWG-923, Use regcache instead of frame in software_single_step. [1/20]
Patches are pushed in. Done.
* TCWG-333, Fix gdb.base/func-ptrs.exp fails in thumb mode. [3/10]
Another three preparatory patches are approved. Ongoing.
* TCWG-416 Improve GDB performance in remote debugging. [3/10]
Prologue analysis performance on arm-linux is improved a lot (from
39s to 12s in one case), but no change on aarch64-linux. Looks GDB
doesn't recognise "str x19, [sp, #-48]!" as part of the prologue.
* TCWG-965 Unit test in GDB. [2/10]
Investigate how to do unit test to prologue analysis in GDB, to
address the bug above. We can embed some test code in GDB, and invoke
them by a special command. It is a little big ugly, but better than
nothing. Need some refactor to aarch64 backend for unit test.
* Patches review, [1/10]
** Reviewed two new GDB ports, RISC-V and OpenRISC.
** Chat with Antoine on ptrace atomicity, and insist that he should
refactor 'struct tracepoint' before add arm-linux tracepoint
support.
# Plan #
* TCWG-333
* TCWG-416
* TCWG-965
--
Yao Qi
== This Week ==
* GCC bugs (6/10)
a) PR78154: Fix committed to trunk.
b) PR78153: Fix committed to trunk.
c) PR78501: Committed to trunk, which fixes ada bootstrap but didn't
fix profiledbootstrap.
d) TCWG-957: Submitted patch upstream, Richard rejected the transform
to be done in copyprop.
Looking at handling this in VRP instead.
e) TCWG-963: Submitted patch upstream, reviews by Richard and Jeff.
* GCC cleanup patches (1/10)
- Committed r242888 to move initialization of ptrdiff_type_node to middle-end.
* TCWG-971 (2/10)
- Working on prototype patch to re-materialize local variables in the
split function that were derived
from arguments.
* Misc (1/10)
- Meetings
== Next Week ==
- ipa-bits-propagation: save types in jump fn instead
- TCWG-971
- GCC bugs
The Linaro Binary Toolchain
============================
The Linaro GCC 6.2-2016.11 Release 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:
https://gcc.gnu.org/gcc-6/changes.html
For help in porting to GCC 6 please see the following explanation:
https://gcc.gnu.org/gcc-6/porting_to.html
Download release packages from:
http://releases.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11/http://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/
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 6.2-2016.11
Linaro glibc 2.23 (linaro/2.23/master)
https://www.sourceware.org/ml/libc-alpha/2016-08/msg00212.html
Linaro newlib 2.4-2016.03 (linaro_2.4-branch)
Linaro binutils 2.27 (linaro_binutils-2_27-branch)
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blob_plain;f=bin…
Linaro GDB 7.12 (gdb-7.12-branch)
https://lists.gnu.org/archive/html/info-gnu/2016-10/msg00007.html
Linaro toolchain package git branches are hosted at:
http://git.linaro.org/?a=project_list&s=toolchain%2F&btnS=Search
NEWS for Linaro GCC 6.2-2016.11
================================
* 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.
* Removed GCC patch for revision 239561 as it was causing an upstream
regression
commit 03850689f4c165e88cec81696d9d722e76a86c85
Author: Yvan Roux <yvan.roux(a)linaro.org>
Date: Wed Nov 9 21:56:21 2016 +0100
Revert backport from trunk r239561.
This reverts commit 11879870dc041028bcb8d078d9ddbd7e400dd03f.
* The GDB version was upgraded from GDB 7.11 in the 6.1-2016.08 release
to GDB 7.12 in 6.2-2016.11.
* 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.
* Basic tuning support for the Qualcomm qdf24xx was added to the Linaro
GCC 6.2-2016.10 snapshot and will appear in this release.
* 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.
commit 022bd2995640626d9efb6a839884c5e1c7c5e133
Author: Christophe Lyon <christophe.lyon(a)linaro.org>
Date: Wed Oct 19 14:11:50 2016 +0200
Re-enable malloc_lock for newlib-nano
* Backported rawmemchr patch into Linaro newlib 2.4.
commit 5357441171f2409fb759112bc6a00d3e672374d9
Author: Christophe Lyon <christophe.lyon(a)linaro.org>
Date: Wed Oct 19 14:09:51 2016 +0200
Add rawmemchr
* Backported strlen fix when using Thumb-2 and -Os -marm into Linaro
newlib 2.4.
commit f194ff4d5e1e304ac2a8d438d7abcbffd2dba757
Author: Christophe Lyon <christophe.lyon(a)linaro.org>
Date: Wed Oct 19 14:05:23 2016 +0200
Fix strlen using Thumb-2 with -Os -marm
* Backported fix for semihosting ARM when heapinfo not provided by
debugger into Linaro newlib 2.4.
commit bda499cb9d2b97075f74df9bfb38b23ff4d12ac2
Author: Christophe Lyon <christophe.lyon(a)linaro.org>
Date: Wed Oct 19 13:59:52 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.
commit 2d20c3bf918cd94ebd4106693adb3a5c9272baba
Author: Adhemerval Zanella <adhemerval.zanella(a)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.
commit bb8f09d72756186a3d82a1f7b2adcf8bc1fbaed1
Author: Adhemerval Zanella <adhemerval.zanella(a)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.
commit e48b4e7fed0de06dd7832ead48bea8ebc813a204
Author: Adhemerval Zanella <adhemerval.zanella(a)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.
commit fbc6c6763e70cb2376e2de990c7fc54c0ee44a59
Author: Nick Clifton <nickc(a)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
commit 5fe7ebe5ab43750abf8f490b785d99a1e598e7fd
Author: Nick Clifton <nickc(a)redhat.com>
Date: Fri Aug 5 10:37:57 2016 +0100
Fix the generation of alignment frags in code sections for AArch64.
https://sourceware.org/bugzilla/show_bug.cgi?id=20364
* Performance related backports from Linaro GCC 6.1-2016.06, Linaro GCC
6.1-2016.07, Linaro GCC 6.1-2016.08, Linaro GCC 6.2-2016.09, and
Linaro GCC 6.2-2016.10 have been included.
See the following Linaro GCC snapshots:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.06/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.07/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.1-2016.08/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.09/http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.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 | Linaro Toolchain Engineering Manager
ryan.arnold(a)linaro.org | ryanarn on #linaro-tcwg @ freenode.irc.net
== Progress ==
* [ARM GlobalISel] Use CC support for lowering args/return [TCWG-946] [5/10]
- Sent a patch upstream for extracting some target-independent
functionality from the AArch64 GlobalISel
- Working on lowering i32 args for non-vararg functions (most of the
functionality is ready, currently adding more tests)
* Rewrite llvm-projs in Python [TCWG-833] [2/10]
- Added more tests, brushed it up and sent it for review
* Misc [3/10]
- Meetings, mailing lists
- Rebasing [ARM GlobalISel] Select add instructions [TCWG-925]
- OOO on Monday
== Plan ==
* OOO on Wednesday through Friday
* [ARM GlobalISel] Use CC support for lowering args/return [TCWG-946]
- Brush up patch for more complex lowering of i32 args (vararg)
* Follow up on TCWG-925 and TCWG-833 if necessary
Progress:
[TCWG-940] LLD test failures on libcxx and libcxxabi
- Reported bug upstream. Upstreamed a patch to LLD to add a sentinel
value. This will mean that lld linked executables won't trigger the
bug.
[TCWG-901] Investigate LLD as a system linker on ARM
- All the llvm and lld test failures were down to me forgetting to
initialise a single bitfield member that I'd added. I can now
confidently say lld can link itself and the other llvm executables
from a clean build.
- Closed out the investigation to concentrate on upstreaming my changes.
[TCWG-829] Ifunc support
- ARM does ifunc differently to all the other Targets (uses .got and
.rel.dyn instead of .got.plt and .rel.plt) I have an old downstream
patch that is essentially if (ARM) do this else do that; which is far
too messy.
- LLD has now been refactored a bit to make its linker generated
sections more flexible. I'm currently trying to rework the design to
use these. Not yet found an approach I'm happy with.
Plans:
Upstreaming priority:
[TCWG-829] Ifunc support
[TCWG-828] Static TLS support
I've got downstream patches for these but I need to extend lld and
rewrite them in a more general way to get them accepted upstream.
[TCWG-919] Thunks to undefined symbols, such as when a Shared Object
is dlopened and calls back to the executable (not yet posted
upstream).
Progress:
[TCWG-940] LLD test failures on libcxx and libcxxabi
I think this is a latent bug in libunwind's .ARM.exidx table entry
search that happens to be exposed by lld. Will try and make a
reproducer using ld.bfd and report upstream if I'm correct.
[TCWG-901] Investigate LLD as a system linker on ARM
- Found 6 test failures in libcxxabi and 41 test failures in libcxx
tests. I think these are likely to be all related to TCWG-940
- I cannot build working llvm tools from clean using LLD as the
linker. Everything links but the resulting binaries are unstable,
llvm-tablegen is the first to fall over, giving incorrect results.
Other tools segfault when run on certain inputs.
Much rebasing of downstream patches to account for refactoring.
Refactoring will soon be at a point that I can start rewriting the
downstream patches.
Wrote a python script that can glue together the output of
llvm-objdump, llvm-readobj to give me a better view of the plt, got
and exception tables.
Plans for next week:
- Close out TCWG-940, find out what is wrong that is preventing lld
from linking the llvm-tools.
- Rewrite some of my downstream patches using the refactored framework.