== 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
o 1 day off (2/10)
== Progress ==
o Linaro GCC/Validation (3/10)
* ABE and validation jobs reviews
* Binary tarballs size reduction:
- testing patch
* BZ #2575:
- Investigate and open bug upstream (PR78201)
- Testing current fix and investigating bugzilla feedbacks
o Misc (3/10)
* Various meetings and discussions.
== Plan ==
o Continue on tarball size reduction and BZ
== This Week ==
* ipa mod/ref analysis (2/10)
- Prototype patch now detects modifications to reference parameters
- Working on mod/ref analysis of global variables.
* PR35691 (2/10)
- Patch iterations based on upstream review
* PR35503 (2/10)
- Patch approved by Jason
- Building kernel with patch resulted in two warnings.
* Public Holidays (4/10)
== Next Week ==
- IPA mod/ref prototype
- Bugs
-- Activity --
[TCWG-683] Branch to undefined weak on aarch64 and arm
Fix in upstream review, looks pretty close to being accepted.
[TCWG-828] TLS support for static linking
In upstream review but no comments as yet
[TCWG-829] IFunc support
In upstream review, but will probably need to be rewritten after some
upstream refactoring has finished
[TCWG-911] eglibc requires a SHT_ARM_ATTRIBUTES section for dlopen to work
I have a quick hack to work round this on my Chromebook but a full fix
will take some time as lld doesn't understand build attributes right
now.
[TCWG-901] Investigate lld as a system linker
With downstream fixes, using lld as the system linker on a Chromebook I can :
- Build llvm, lld and run the regression tests successfully
- Use lld as the linker in the lnt tests successfully
- Using lld to build the shared objects used by lnt's python C
extensions was less successful. I have some interesting debugging to
do.
-- Plan --
Debug the python extension problems
Respond to upstream review comments
More use of lld as system linker
== Progress ==
* [ARM] Investigate switching from itineraries to schedule models
[TCWG-824] [4/10]
- Looked at the sched model as well as the old instruction itinerary
interfaces
- There aren't many tests that are specifically testing the scheduler,
but lots of tests break if you make enough changes to it (it's unclear
which of these are breaking intentionally and which are just poorly written)
- First step is probably to try and complete the sched model (TCWG-543),
then hunt down any differences between what we get using itineraries and
what we get with the new model
* Rewrite llvm-projs in Python [TCWG-833] [3/10]
- Reorganized the repo so we can have a separate tests directory
- Added support for parsing command line options
- Almost ready for review
* Misc [2/10]
- Catching up after vacation
- LLVM GitHub move survey
== Plan ==
* Wrap up TCWG-833
* Migrate scripts to Python 3 (TCWG-896)
* Maybe start TCWG-543 as the first step in TCWG-824
# Progress #
* TCWG-547, Change software_single_step interface to return a vector
of address. [3/10]
Patches are reviewed. V2 are posted and committed. Follow-up
patches are being tested.
* TCWG-333, Fix gdb.base/func-ptrs.exp fails in thumb mode. [3/10]
Clean up val_print, remove one redundant parameter. Patches are
being tested.
* Maintain upstream GDB, patches review, [2/10]
* OpenOCD. [2/10] Various IRC chats with maintainer about
** multi-thread support in RTOS, and multi-thread debugging,
** Release 0.10.0 and aarch64 patches merging,
** Understand aarch64 OpenOCD reads DSPSR (32-bit), so don't have to
update GDB target description now.
* Short chat with Peter Griffin on thread ids in linux-kthread.
# Plan #
TCWG-547, TCWG-333.
--
Yao Qi
# Progress #
* Fix GDBserver build on aarch64_be. [1/10]
Done. Patch is pushed in to master and 7.12 branch.
* TCWG-333, Fix gdb.base/func-ptrs.exp fails in thumb mode. [4/10]
Get anther patch and fix all regressions. In the discussion
with ppc64 and mips people on my approach.
* TCWG-518, Range stepping in arm-linux. Done. [1/10]
After pending for several months, patches are approved. Pushed
them in!
* Reproduce the GCC dwarf generation regression. [1/10]
Reported to GCC and Jakub fixed it.
* Sort out the license issue of new OCaml debugging support in gdb.
Help to clarify a little bit. [1/10]
* Discuss with OpenOCD people on supporting thread awareness for
RTOS. [1/10]
* Misc, meeting. [1/10]
# Plan #
* TCWG-333, TCWG-547
* Add new aarch64 target description for 64-bit xPSR.
--
Yao Qi
o 2 days off (4/10)
== Progress ==
o Linaro GCC/Validation (4/10)
* ABE and validation jobs reviews
* Investigating binary tarballs size reduction
o Misc (2/10)
* Various meetings and discussions.
== Plan ==
o Continue on validation
o Complete 4.9 branch merge
* TCWG-72 (2/10)
- Committed to trunk finally!
* ipa mod/ref analysis (6/10)
- Prototype in progress based on Muchnik's text
* Misc (2/10)
- Committed a trivial patch to use VAR_P in arm.c.
- Background reading on paper about virtual-ssa.
- Meetings
== Next Week ==
- Continue with mod/ref analysis
- TCWG-319
- Ping patch for GCC PR35503.
# Progress #
TCWG-845 Static linking missing linker defined symbols
- Now upstream
TCWG-829 Support for ifunc
- Patch sent upstream for review, no feedback yet. This is a bit messy
as ARM is different to other architectures so I expect this to need
reworking several times.
TCWG-828 Static linking and TLS
- Downstream patch implemented and tested, will send upstream after ifunc
TCWG-683 Support for branches to undefined weak references
- Downstream patch implemented and tested
Other:
- Downloaded and built Mozilla and Chromium so I can use them as
performance tests for lld (initially for x86_64).
- Wrote some scripts to make using lld in place of gnu ld a bit more convenient.
# Plan #
- Upstream static linking changes
- Work some infrastructure to test lld more widely on ARM.
o 2 days off (4/10)
== Progress ==
o Linaro GCC/Validation (4/10)
* Completed GCC 5 and 6 branch merges
* Released source 2016.10 snapshots
o Upstream GCC (1/10)
* Investigate PR #78020 (vzip, vuzp implementation).
o Misc (1/10)
* Various meetings and discussions.
== Plan ==
o Two more days off
o Back on 4.9 branch merge and validation.
The Linaro Binary Toolchain
============================
The Linaro GCC 6.2-2016.11-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:
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-rc1/http://snapshots.linaro.org/components/toolchain/binaries/6.2-2016.11-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 6.2-2016.11-rc1
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://sourceware.org/ml/gdb/2016-08/msg00000.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-rc1
====================================
* 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 also added to this binary releases (for linux
targets).
* 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.
* Added __ASSUME_REQUEUE_PI support to 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)
* Added __ASSUME_SET_ROBUST_LIST support to 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
* Added __ASSUME_FUTEX_LOCK_PI support to 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.
* Include 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.
* Copy the libwinpthread DLL into the bin directories so it gets into
the tmp directory before tar is run.
https://review.linaro.org/#/c/13723/
* Include 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
--
Ryan S. Arnold | Linaro Toolchain Engineering Manager
ryan.arnold(a)linaro.org | ryanarn on #linaro-tcwg @ freenode.irc.net
== Progress ==
LTO/IPA
- Committed propagation of nonnull attribute and optimizations
- Committed patch to infer noonull from ADDR_EXPR
- Working on a patch to improve ipa-cp unary expressions pass
through jump-function
* LTO bootstrap is failing in streaming but normal bootstrap working
* Looking into it
== Next ==
- Commit pending patches
- Start LTO benchmarking and analysis
== This Week ==
* TCWG-72 (2/10)
- Updated patch based on Jeff's suggestions.
* Folding optimizations (2/10)
a) PR53979 - fix committed to trunk
b) PR71636 - fix committed to trunk
* TCWG-665 (2/10)
- Rebased patch and done few modifications
- Trying to look for a better solution to workaround a memory leak
issue with patch
with -ffat-lto-objects
* PR35503 (1/10)
- Rebased patch on top of Marek's changes to c-common.c and pinged upstream.
* Validation (1/10)
- Added spec2k and spec2k6 to tcwg-buildapp
- Fixed abe bug 1439
* Misc (2/10)
- Reading up on mod/ref analysis.
- Meetings
== Next Week ==
- TCWG-72, TCWG-665, TCWG-125
- Look into changing user to "benchmark" for tcwg-buildapp job.
== Progress ==
TCWG-610 ARM Exceptions support
Now fully committed upstream. We should now have support for
exceptions in Shared Objects and Executables.
I've diagnosed problems when static linking after staring at a
disassembly for most of a day. With some hacks I've managed to get a
static link working using a recent Linaro sysroot. Next task is to
resolve these in a more principled way.
TCWG-845 Static linking missing linker defined symbols
- lld doesn't use a built in linker script so we need to add in
symbols that libc.a is expecting the default linker script to
generate.
- lld is defining __tls_get_addr as it expects all TLS to be relaxed,
this isn't the case for ARM or Mips so we need to not define it.
TCWG-829 Support for ifunc
For some annoying reason that I can't work out why, ARM requires the
R_ARM_IRELATIVE relocations to be in the .rel.dyn and not .rel.plt
like all the other targets that lld supports including AArch64
TCWG-828 Static linking and TLS
When static linking the TLS dynamic relocations in the .got must be
resolved statically.
- The other architectures that lld supports have the thread control
block (tcb) after the data so the initial-exec relocations don't need
to add the tcb size to the value put into the .got.
- The module index dynamic relocation needs to be 1 and not 0 (LLD
assumes general dynamic is relaxed away at static link-time).
TCWG-683 Support for branches to undefined weak references
LLD doesn't resolve these to the next instruction so they just hang at runtime.
Some feedback and review for Linaro LLVM team processes.
== Plans ==
Work out a proper solution for TCWG-828 then start upstreaming.
TCWG-683 can be worked around by providing an empty definition of the
function, all the others need to be fixed to get a static libc to
link.
# Progress #
* TCWG-333, Fix gdb.base/func-ptrs.exp fails in thumb mode. [4/10]
Get review comments and suggestions. Tried to do what they suggested,
but it doesn't work well due to some reasons. Preparing the the reply to
address their comments.
* TCWG-416, Improve GDB performance in remote debugging. [2/10]
Patches for ARM and AArch64 are ready. Need to measure the
performance improvement.
* OpenOCD. [2/10]
Chat with people working on AArch64 support on irc. Help him
understanding GDB and GDB remote protocol. Patches are there, but
need to figure out how to help to get these patches merged.
* Misc, [2/10]
Meeting, and various discussions.
# Plan #
* Continue all above.
--
Yao Qi