Hello,
In an effort to provide a longer quality control window for quarterly
releases the Linaro Toolchain Working Group will be making some changes to
the release process starting with the forthcoming 2015.04 products.
Little will change for the consumers of TCWG products.
The current monthly source release of the 'stable' Linaro GCC source
archives posted to releases.linaro.org will move to snapshots.linaro.org
and will be designated 'monthly snapshots'.
The exact location will be announced when the 2015.04 Toolchain component
source archive release notes are posted to this mailing list.
These monthly snapshots will continue to have branch merges, performance
fixes, security fixes, and correctness fixes applied on a monthly basis.
They will also continue to have validation across a variety of common ARM
targets performed (per backport) against them.
TCWG will introduce the concept of a 'release candidate source archive' and
'release candidate binary toolchain archive' six weeks before the projected
release date of the Quarterly Binary Toolchain Release. For example, the
2015.05 Quarterly Binary Toolchain and Quarterly Source Archive will be
based upon the 2015.04 source archive snapshot.
Release candidate source and binary archives will be posted to
snapshots.linaro.org.
This release candidate will receive the scrutiny of internal and external
stakeholders for six weeks and give an opportunity to evaluate the
forth-coming Quarterly Binary Toolchain Archive and Source Archive
Release. Problems found with the release candidates will result in the
availability of incremental release candidate archives.
The official quarterly release will be posted to releases.linaro.org.
Please direct any questions or concerns to this mailing list or to me
directly.
--
Ryan S. Arnold
Linaro Toolchain Working Group - Engineering Manager
www.linaro.org
Benchmark automation - TCWG-360 [5/10]
* Flushed the rest of the easy stuff from my 'small fixups' to my
'staging' branch
* Started rolling generic patches from my backport-benchmark branch into gerrit
* Prodded at the prototype backport-benchmark job until the pieces worked
** Ran out of time to try an end-to-end run
* Thought a little about permissions for access to source/results
* Use of nc.traditional appears to have introduced a race condition
catomics - TCWG-436 [2/10]
* Tried a run on A15 - same story as A57, good improvement on g8 libc
ubenchmark that doesn't translate into SPEC subset
* Performance counting the ubenchmark suggests variation around cache
accesses on the catomic vs not-catomic code, didn't have any time to
think about what, if anything, this means
Misc [3/10]
* Featuring an unusual level of ARM interruption
* Especially concerns about change from multiarch to non-multiarch
sysroot in binary releases
=Plan=
Confirm backport benchmarking working, roll remaining generic patches
into gerrit
Investigate the nc.traditional race
Add a retry loop around LAVA boot (occasionally see LAVA-fail here)
Create unit tests
Follow up on (non-)multiarch sysroot issue
=== Progress ===
* Get TSAN building for Aarch64 on 42-bit VMA systems. (4/10) (-pie mode only)
Expected Passes : 253
Expected Failures : 2
Unsupported Tests : 1
Unexpected Failures: 13
The failures are categorized into three types.
(1) setjmp and longjmp implementation in assembly needs to written for Aarch64 .
ThreadSanitizer :: longjmp.cc
ThreadSanitizer :: longjmp2.cc
ThreadSanitizer :: longjmp3.cc
ThreadSanitizer :: longjmp4.cc
ThreadSanitizer :: signal_longjmp.cc
(2) FATAL: ThreadSanitizer: failed to intercept pthread_cond_init. I
need to debug and see why this happens.
ThreadSanitizer :: bench_mutex.cc
ThreadSanitizer :: cond.c
ThreadSanitizer :: cond_cancel.c
ThreadSanitizer :: cond_race.cc
ThreadSanitizer :: cond_version.c
ThreadSanitizer-Unit :: rtl/TsanRtlTest/Posix.CondBasic
(3) TLS descriptions ThreadDescriptorSize (), GetTls () and ThreadSelf
() defintions are needed for aarch64.
tls_race.cc
tls_race2.cc
Some ptrace defintions are needed PTRACE_GETREGS, PTRACE_SETREGS
PTRACE_GETFPREGS, PTRACE_SETFPREGS for sanitizer, but they are not
implemented for Aarch64. I am planning to switch off that code in
TSAN.
* ASAN/TSAN documentation. ASAN documentation complete. TSAN in progress. (4/10)
* Emails, meetings. (2/10)
* Linaro 1-1 with christophe, Ryan.
* AMD meetings/event, 1-1 with AMD manager, status meeting.
* GCC mailing list.
===Plan ===
Complete TSAN documentation.
Analyze remaining failures for TSAN.
Push LLVM tree to git.linaro.org for handover.
* Backports (3/10)
- Backports validated and commited to SVN for April release
- 219724 - Add a new scheduling description for the ARM
Cortex-A57 processor
- 219746 - Fix broken 219724
- 220103 - A57 pipeline model
- 220399 - Add support for -mcpu=cortex-a72 and
-mcpu=cortex-a72.cortex-a53
- 220413 - Add support for -mcpu=cortex-a72
* Illness (6/10)
* Misc (1/10)
- Conference calls
== Next week ==
- Begin backports for May release
- Continue TCWG 110 investigation
== This Week ==
TCWG-619:
* Compiled chromium on ARM without LTO with following hack to resolve
error: undefined reference to 'clock_gettime', version 'GLIBC_2.17'
- chromium uses prebuilt sysroot in
src/chrome/installer/linux/debian_wheezy_arm-sysroot
and it has libc-2.13.so, libc.so.6 is symbolic link to libc-2.13.so in
the sysroot. However it appears minimum libc-2.17 is required (version
'GLIBC_2.17'). I replaced libc-2.13.so by abe-built
libc-2.20-2014.11-1-git.so, and symlinked libc.so.6 to
libc-2.20-2014.11-1-git.so and that worked (for non LTO build).
Curiously I didn't require to do this for building chromium with
linaro prebuilt toolchain.
* Found a way to disable LTO for building lib/libblink_web.so by manually
removing -flto from web_blink.ninja and Webkit/source/core/*.ninja,
which worked.
* Chromium non LTO build issues on ARM:
a) Fails with gcc-5 due to error in chromium:
https://code.google.com/p/chromium/issues/detail?id=340312
To compile chromium, I applied a patch to cp/typeck2.c to shut
narrowing conversion errors (ideally the fix should be to chromium).
b) ld.bfd (linaro branch) fails with undefined references to many functions
in libattr1: http://pastebin.com/ju4SCDSE
Not sure if this is ld.bfd bug, or me building it wrongly.
Haven't tested yet with trunk ld.bfd.
Works fine with gold.
* Target independent Chromium LTO issues with trunk
a) Top-level asm and LTO (PR57703) - This appears to be not supported.
* Chromium LTO issues on ARM with trunk:
a) ICE in lib/libblink_web.so (PR65576).
b) Target specific builtin not available: http://pastebin.com/2ANsEyMn
Seems related to:
https://code.google.com/p/chromium/issues/detail?id=408997
c) ICE during LINK chrome: http://pastebin.com/DpjJ5M7g
d) GNU ld appears to segfault compiling in LTO mode.
* Chromium LTO issues with linaro-4.9 branch:
a) ICE elf section out of range (PR57208) - fixed in trunk
b) gold - Ran out of file descriptors: fixed in trunk.
Seems the following patch which is in trunk but not in linaro branch fixes it:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=blobdiff;f=gold/…
I tried to backport it but got errors, possibly depends on other commits.
* v8 ARM LTO issues:
- Assembly error - offset out of range (PR65778). Possibly invalid bug.
== Next Week ==
- Create reduced test case for PR65576
- Figure out how to disable LTO for building lib/libblink_web.so in .gyp files
- PR49551
- Exams on 20th and 24th April.
# Progress #
* arm gdb, [6/10] many fails are fixed in the last two weeks.
1034->153 FAILs of -marm, 1008->143 FAILs of -mthumb, and 627->71
FAILs of -mfloat-abi=soft/-marm/-march=armv4t. There are 367 FAILs
in total, and 205 FAILs are about reverse debugging, which has been
broken for many years.
** TCWG-769, patch is committed upstream.
** TCWG-567, two patches are committed, and another two patches are in
progress. Existing HW watchpoint resource counting in GDB doesn't
work well on arm boards which doesn't have HW watchpoint support.
** TCWG-509, many arm gdb test fails are fixed. In progress.
* FSF GDB patch review. [3/10]
Test Pedro's "all-stop on top of non-stop" patch series V3 on both arm
and aarch64. Results are much better.
* Misc, meeting. [1/10]
# Plan #
* Fix test fails for arm and aarch64 gdb.
* Upstream patches review.
--
Yao