The Linaro Toolchain Working Group (TCWG) is pleased to announce the
2016.11 snapshot of the Linaro GCC 6 source package.
This monthly snapshot[1] is based on FSF GCC 6.2+svn242371 and
includes performance improvements and bug fixes backported from
mainline GCC. This snapshot contents will be part of the 2017.02
stable[2] quarterly release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 6.2+svn242371
* Linaro BZ #2575: Revert backport from trunk r239561.
Subscribe to the important Linaro mailing lists and join our IRC
channels to stay on top of Linaro development.
** Linaro Toolchain Development "mailing list":
http://lists.linaro.org/mailman/listinfo/linaro-toolchain
** Linaro Toolchain IRC channel on irc.freenode.net at @#linaro-tcwg@
* Bug reports should be filed in bugzilla against GCC product:
http://bugs.linaro.org/enter_bug.cgi?product=GCC
* Interested in commercial support? inquire at "Linaro support":
mailto:support@linaro.org
[1]. Source package snapshots are defined when the compiler is only
put through unit-testing and full validation is not performed.
[2]. Stable source package releases are defined as releases where the
full Linaro Toolchain validation plan is executed.
== This Week ==
* PR78319 (2/10)
- After some investigation, it seems issue is with uninit pass rather
than r241915.
- Committed patch to XFAIL the offending test on arm-none-eabi,
after approval from Richard
* PR78154 (2/10)
- Patch iterations based on upstream review.
* PR78153 (2/10)
- Created patch
- Investigating regression for strlenopt-3.c.
* LTO bootstrap error (1/10)
- Trying to reproduce miscompare, but bootstrap fails for me in stage-2 :(
* Public Holiday (2/10)
* Misc (1/10)
- Meetings
== Next Week ==
- Investigate LTO bootstrap issue
- Benchmark single-partition vs balanced partition LTO for section-anchors
- GCC bugs
- ipa-split pass
== Progress ==
* Rewrite llvm-projs in Python [TCWG-833] [2/10]
- Reorganized the repo and sent a draft for review to get early feedback
* [ARM GlobalISel] Select add instructions [TCWG-925] [3/10]
- Patch in upstream review
* [ARM GlobalISel] Use CC support for lowering args/return [TCWG-946] [2/10]
- Started investigating the existing support for lowering arguments
and return values for various calling conventions
* Misc [3/10]
- Meetings, mailing lists, buildbot monitoring
- Provided some backtraces and other info for PR30735 (tests hanging
on Xenial)
- Another round of review on TCWG-783 (worktree support in tcwg-release-tools)
== Plan ==
* [ARM GlobalISel] Use CC support for lowering args/return [TCWG-946]
* [ARM GlobalISel] Select add instructions [TCWG-925]
* Rewrite llvm-projs in Python [TCWG-833]
The Linaro Binary Toolchain
============================
The Linaro GCC 6.2-2016.11-rc2 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:
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-candidate packages from:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.11-rc2/http://snapshots.linaro.org/components/toolchain/binaries/6.2-2016.11-rc2/
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-rc2
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-rc2
====================================
* 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.
https://review.linaro.org/#/c/15504/
* 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.
* Updated GDB from GDB 7.11 to GDB 7.12.
* 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.
* Copy the libwinpthread DLL into the bin directories so it gets into
the tmp directory before tar is run.
* 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.
https://review.linaro.org/#/c/13723/
* 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
o 1 day off (2/10)
== Progress ==
o Linaro GCC/Validation (4/10)
* ABE and validation jobs reviews
* Binary tarballs size reduction:
- more tests and investigation (mingw in particular)
- investigating compressed debug sections
* BZ #2575:
- Bugfix proposed upstream by Jakub
- Validate it
o Misc (4/10)
* Various meetings and discussions.
* office network issues
== Plan ==
o Branch merge and snaphsot release
o release binaries size reduction
== This Week ==
* PR35691 (2/10)
- Fix committed to trunk for case when LOGICAL_OP_NON_SHORT_CIRCUIT is true.
- Fixed PR78256, caused by the commit.
* PR78335 (2/10)
- Created patch
* PR35503 (1/10)
- Rebased and committed to trunk after validation
* PR78139 (1/10)
- Caused due to r241915 which fixes PR35691
- Perhaps this is a latent issue in uninit pass triggered by the
commit, but I need to investigate
further to confirm that.
* ipa-split pass (2/10)
- Working on patch to pass variables defined in header block to split
function via arguments.
* Misc (2/10)
- GCC Bugzilla list
- Meetings
== Next Week ==
- Benchmark LTO for section-anchors
- GCC bugs: PR78154, PR78139, PR78335
- ipa-split pass
TCWG-901 Investigate lld as a system linker
- Installed lld as the system linker on my Chromebook and attempted to
build and run things to see what breaks
- Only one unknown concrete problem found so far, thunks to undefined
symbols with PLT entries don't work. This seems to be common in python
C extensions that are dlopened from python, and call back to the
interpreter.
-- I have a downstream fix (TCWG-919), with this fixed the test-suite
can run with lld as the linker through the pip install (SQLAlchemy has
C extensions).
- As thought previously, clang is too big to link without thunks.
- Attempted to make a simple add thunks to all branches to see if I
could get clang to link. Sadly this won't work as lld only permits one
thunk per symbol and this might be out of range of the caller as well.
- Some thoughts and experiments on how much of llvm, compiler-rt,
clang and libc++ can be linked with lld. I'm currently thinking of
altering my lld driver to automatically switch to ld.bfd after a
relocation out of range link error. I want to try and get a lld linked
clang + compiler-rt +libc++ system running.
TCWG-683 lld support for branches to unresolved weak references
- Now upstream
Also:
- A lot of rebasing of downstream patches as some refactoring is going
on to make lld more flexible.
- Some inconclusive investigation into weak reference behaviour in GNU
ld. The ARM and AArch64 ld.bfd linkers will put a dynamic relocation
on a got slot generated by for an unresolved weak reference. The x86
linkers do not, they statically resolve the got slot to 0.
- Some inconclusive investigations into trying to work out what
packages to build to test lld. With the exception of very large
programs ld seems to successfully complete the link for all programs.
Whether it has done so correctly or not is another matter.
-- Currently thinking about whether I can build a BSD make world on a
raspberry pi.
Plans for next week:
- Bring TCWG-901 to a close and work out what to work on next.
== Progress ==
* Rewrite llvm-projs in Python [TCWG-833] [2/10]
- Investigated clitest for testing the scripts
- It seems to be a bit unwieldy for our purposes, so in the end it's
probably a better idea to abuse Python's unittest module even for higher
level tests (they'll be in a different directory though)
* [ARM GlobalISel] Select add instructions [TCWG-925] [6/10]
- Committed a patch upstream with all the plumbing necessary for enabling
GlobalISel for ARM
- Working towards selecting an add instruction on i32 types - currently
have some naive support for lowering arguments and selecting return and
copy instructions
* Misc [2/10]
- Meetings, mailing lists, buildbot monitoring
- Python trainings
== Plan ==
* [ARM GlobalISel] Select add instructions [TCWG-925]
- Brush it up and send it upstream
* Rewrite llvm-projs in Python [TCWG-833]
- Start a discussion on the interface / repo layout etc
# Progress #
* TCWG-547. Change software_single_step interface to return a vector of address
Patches are pushed in. Done. [1/10]
* TCWG-923, Use regcache instead of frame in software_single_step. [3/10]
Patches are finished. Tests are needed.
* TCWG-333, Fix gdb.base/func-ptrs.exp fails in thumb mode. [4/10]
Clean up val_print, remove one redundant parameter. Patches are
committed.
Deep diving in the gdb value objects. Much cleanup work should be
done first. Ongoing.
* More patches review, [2/10]
** C++ 11 patches, and learn C++ 11 in parallel,
** Review arm tracepoint patches. Insist that they (Ericsson) have to
fix underlining bugs (intermittent fails) before getting patches
in,
** Discuss on MIPS reconfigurable FP registers. Proposed two ways in
public gdb mail list, MIPS people think the first one is a little
better
** Hold Intel's fortran patch until a bug we found in gfortran is
confirmed.
# Plan #
* TCWG-923,
* Training from Tue to Friday.
--
Yao Qi