== This week ==
Backported Launchpad 1234146 - Bad Neon intrinsics code gen when using
ld4/st4 on AArch64 (2/10)
Bug Investigations (4/10)
Launchpad Bug 640521 - Incorrect function prologue with Thumb-1
high register variable
Launchpad Bug 1318831 - Invalid unpoisoning of stack redzones on ARM
Launchpad bug 771832 - bogus reference to unused symbols
Launchpad cleanup (4/10)
- 1305042 - Changed status to invalid
- 634731 - Marked as won't fix for older releases. Improved code
generated for 4.8 and 4.9
- 637882 - Marked as won't fix for older releases. Improved code
generated for 4.8 and 4.9
- 638687 - Changed status to invalid. Code for alloca is correct
and alignment is necessary
- 1312931 - Could not verify.
- 772085 - Marked as won't fix for older releases. Fixed in 4.8 and 4.9
- 1225317 - Marked as incomplete due to lack of test case
== Next week ==
Vacation
== Future ==
No Plans.
== Issues ==
* None
== Progress ==
* CARD-1162 : Linaro GCC 4.9 and CARD-1355 : stabilization and
optimization effort for ARMv8-a (8/10)
- Put the backporting script on https://git.linaro.org/toolchain/backflip.git
(documentation still needed)
- FSF branch merges for 4.9 and 4.8
- Backported requested fixes in 4.9
- Validate merges and some backports in cbuildv1
- Looked at the different results we have in cbuildv2 and cbuildv1
- Still some issues in Jenkins (build crash or are stuck)
- 40 backports stiil need validation
* Misc: (2/10)
o Various meetings.
== Next ==
* Complete FSF branch merges and release 4.9-2014.06
* Document backporting script usage
* Continue feedback and help with the validation
== Issues ==
* None.
== Progress ==
* One day off.
* Clean up and test loop2-invariant heuristic tune patches (TCWG-469, 6/10).
* Rebase conditional compare patches and split them into smaller ones
(TCWG-488, 2/10).
== Plans ==
* Send out loop2-invariant heuristic tuning patches for review.
* Rework on the conditional compare patches.
== Progress ==
* Toolchain (CARD-862 0/10)
- Some investigations on LLVM Linkers
* Background (10/10)
- Code review, meetings, discussions, etc.
- Cleaned up the rack, drown a map
- Jenkins Chromebooks with native Arch Linux
- Failures and problems ensued...
- More time wasted on APMs, but some progress was made
- All Chromebooks had I/O errors on SD cards, starting over
== Plan ==
Spend the weekend and the next week re-flashing Chromebooks
== Progress ==
* GCC trunk cross-validation (CARD-647) (6/10)
- recent LRA change to fix AArch64 compiler causes huge memory consumption.
- this has caused my validations to crash several servers, and I had
to stop them
until I could restart reliably.
- so far unable to restore them
- trying to test LRA tentative fix separately, but results are unreliable too
- tested Thomas Preud'homme patch (bswap-2.c), luckily before
everything became unstable.
* GCC 4.9 branch cross-validation (CARD-647) (1/10)
- validation scripts needed some adaptations to handle the 4.9-branch
- not running yet, until the trunk problems are solved
* Neon intrinsic tests (CARD-????) (1/10)
- submitted patch series containing 40 test files (total will be 136)
* AArch64 libsanitizer support (TCGW-58)
- qemu still needs a patch of mine which I thought had been
committed since February..
- once patched, the sanitizer tests now start executing but lead to
SEGV+timeout
* Misc (meetings, conf-calls, ...) (2/10)
== Next ==
* short week (Monday off, lots of external constraints)
* GCC cross-validation:
- hopefully fix unstability and restore the automatic validations of
trunk + start those of 4.9 branch
- try to actually start mail-driven robot to validate patches
* Neon intrinsics tests: handle feedback
* AArch64 libsanitizer support: look at why tests fail
== Progress ==
* Holiday Monday and Tuesday (4/10)
* Write some scripts to graph malloc app benchmark results (1/10, TCWG-418)
* Patch review and testing (2/10)
* Released eglibc 2.19 2014.06, binutils 2.24.0 2014.06 and gdb 7.7.1
2014.06 (3/10)
== Issues ==
* None
== Plan ==
* Get wg boards running for validation
* More malloc benchmarking
--
Will Newton
Toolchain Working Group, Linaro
== Week of June 2nd ==
- Toolchain testing improvements (CARD-1378, 8/10)
-- Implemented schroot testing inside cbuild2. This will allow both Jenkins automation and developers to use schroot testing approach.
-- Automated board configuration for schroot testing.
-- Started cleaning up and committing my testing changes to cbuild2 and dejagnu.
- Various discussions (1/10)
- NZ public holiday (2/10)
- Celebrated! My! Happy! Birthday!
--
Maxim Kuvyrkov
www.linaro.org
== Week of May 26th ==
- Toolchain testing improvements (CARD-1378, 8/10)
-- Prototyped parallelization of testing across several ARM board. Turns out that striping tests across target boards does not give much as host is the bottleneck in our setups.
-- Prototyped testing using GCC's shared libraries and newly-built sysroot (instead of using system libraries on the target).
-- Prototyped testing using schroots -- this appears the way to go about our toolchain testing. For each test run a schroot session is started on the board, complete with a dedicated SSH server and freshly-built sysroot. After testing is done schroot session is closed and everything is cleaned up including disk files and stray processes.
- Various discussions (2/10)
--
Maxim Kuvyrkov
www.linaro.org
== Week of May 19th ==
- TCWG development environment (TCWG-483, 2/10)
-- Followed up on various package requests and backup settings.
- STREAM performance regression (TCWG-388, 3/10)
-- Tested, posted upstream and committed first batch of patches.
- Toolchain testing improvements (CARD-1378, 4/10)
-- Discussed testing design and approaches with the team.
-- Prototyped various approaches to testing.
- Various discussions and bits of administrivia.
--
Maxim Kuvyrkov
www.linaro.org
Hi,
I'm trying to follow
https://wiki.linaro.org/WorkingGroups/ToolChain/Using/GCCNative but it
looks like it is outdated? Can someone confirm?
E.g.:
configure: WARNING: unrecognized options: --disable-bootstrap,
--with-mode, --with-arch, --with-tune, --with-fpu, --with-float
--
João M. S. Silva
== Issue ==
* None.
== Progress ==
* Commit the fixes for pr61220, 61278 and part of 61225. The patch to
fix other part of 61225 is still in review (2/10).
* Loop invariant heuristics tuning. Tests are ongoing. (7/10, TCWG-763)
* Rebase conditional compare patches. Tests are ongoing.
* Prepare UK visa.
== Plans ==
* Send out loop-invariant heuristic tuning patches for review.
* Rework on the conditional compare patches.
== Leaves ==
* June 2.
== This week ==
- Memorial day holiday Monday (2/10)
- Investigated launchpad 1295738 - [4.8 Regression] unable to find a
register to spill in class 'LO_REGS' [CARD-300](2/10)
- Will mark as unlikely to fix (reload error); works with LRA and/or
with -fomit-frame-pointer
- Investigated launchpad 757427 - gconftool-2 segfaults on arm
[shrinkwrap] [CARD-300](2/10)
- Segfault not reproducible in linaro 4.8 or 4.9
- Shrinkwrap bug not reproducible in linaro 4.8 or 4.9
- Investigating launchpad 1225317 - gcc mis-compiles (large-value) jump
tables with -fPIC or thumb2 [CARD-300](1/10)
- Investigating launchpad 1234146 - Bad Neon intrinsics code gen when
using ld4/st4 on AArch64 [CARD-300] (2/10)
== Next week ==
- Resolve Launchpad bugs 1225317 and 1234146
== Future ==
No Plans.
== Planned holidays ==
Possible vacation June 16th - June 20th
== Progress ==
* Meetings and Misc (3/10)
- Upgraded my Samsung Chromebook to boot Ubuntu trusty instead of
using crouton. Works much better for native builds now.
* Worked on perfecting building binary tarballs in a 32bit chroot
that run on any platform. (TCWG 383 - 7/10)
- Added zlib to infrastructure so libz.so.1 can be found at runtime.
- Force libgloss to build for bare metal.
- Fixed minor issues with Canadian cross builds.
== Plan ==
* Figure out why Canadian cross builds fail on the TCWG build farm,
but work on my local machines.
* Continue improving building binary releases.
* Get D01 board setup and working.
* Get back to test result verification automation.
- rob -
== Progress ==
* GDB arm v8 record/replay
-- Support for recording advance SIMD load store instructions.
[TCWG-403] [4/10]
-- Code cleanup and patch creation. [2/10]
-- Investigation of patches failing in native configuration. [TCWG-484] [2/10]
* Miscellaneous
-- Sick day off on Monday [2/10]
== Plan ==
* GDB arm v8 record/replay
-- Bug fix issues stalling patch submission upstream.
-- Submission of patches upstream.
-- Bug fixing to reduce failures.
* Run gdb testsuites on arm/x86 in native/remote for latest feature parity.
* Day out of office on Thursday to collect passport from UK visa office.
Short week (2 days off) (4/10)
== Progress ==
* GCC trunk cross-validation (CARD-647) (2/10)
- reported 2 new compiler build failures and 2 regressions
- tested one proposed patch, which did not fix the regression
- trunk now builds OK again
* Neon intrinsics tests (1/10)
- cleaned branch to prepare submission
- working on Cumulative Saturation Neon flag support for AArch64
* aarch64 libsanitizer support
- resumed work: libsanitizer no longer builds with recent glibc,
will need to patch it upstream before bringing it back to GCC.
- testing will be difficult using qemu since libsanitizer reserves a
huge chunk of memory at startup (8GB) which may not be available on
the host machine
* Misc (meetings, conf-calls, ....) (3/10)
- 1:1 calls, weekly calls
- backports review
== Next ==
* GCC trunk cross-validation:
- test Kugan's patch before submission
- evaluate effort to develop a mail-driven support for testing
patches vs trunk befiore submission
- add support for validation of FSF-4.9 branch
* Neon intrinsics tests
- add support for Cumulative Saturation Neon flags on AArch64
* AArch64 libsanitizer
- discuss how to make cross-testing more practical
Short week (3 days)
== Issues ==
* None
== Progress ==
* CARD-1162 : Linaro GCC 4.9 and CARD-1355 : stabilization and
optimization effort for ARMv8-a (4/10)
- Enhanced my backporting script
- Looked at the merge process (4.9, 4.8 and 4.7 merge are comming)
- 40 backports stiil need validation
* Misc: (2/10)
o Various meetings.
o Discussed schroot testing
== Next ==
* FSF branch merges
* Document backporting script usage
* Continue feedback and help with the validation
== Progress ==
* Zero/sign extension elimination (TCWG-15) (7/10)
- regression tested and fixed all the issues
- final bootstrap and regression testing for arm and x86_64 are ongoing
- will post the patch for comment after checking the results
* benchmarking (TCWG-468) (1/10)
- Set-up chrome-book for a15 release benchmarking
* SAH1 performance (TCWG-413) (2/10)
- Christophe noted regression for aarch64_be due to clean-up patch.
- register_move_cost hook in aarch64 does not handle all the cases
(CORE_REGS and POINTER_REGS) and due to this, it calculates FP2FP cost
for these classes . With CORE_REGS gone, costs for register classes are
now different. Cost table needs adjustment.
* FENV for C11 TCWG-447
- Committed ARM part.
== Plan ==
* Benchmarking.
* Upstream zero/sign extension elimination activities.
* sha1 performance.
== Progress ==
* Kernel (CARD-1246 2/8)
- Fixed edge cases for named registers
- http://llvm.org/PR19841
- http://llvm.org/PR19837
* Background (6/8)
- Code review, meetings, discussions, etc.
- TCWG Rack re-org
- Trying to set up native Chromebooks
- Trying to set up APM
- Trying to add Compiler-RT to our buildbots
== Plan ==
* Continue rack re-org
* Continue RT support on current bots
* Try libc++ bot
* Have a look at sanitizer bot
== Progress ==
* Bank Holiday Monday (2/10)
* Got a postgresql malloc benchmark running (4/10, TCWG-441)
* Started refactoring malloc microbenchmark based on review (2/10, TCWG-160)
* Patch review and testing (2/10)
== Issues ==
* None
== Plan ==
* Holiday Tuesday and Wednesday
* Finish refactoring malloc microbenchmark
* Work on results plotting code for benchmarks
--
Will Newton
Toolchain Working Group, Linaro
Hi,
I've been having this issue with latest binary Linaro 2014.04 toolchain from
http://releases.linaro.org/14.04/components/toolchain/binaries/gcc-linaro-a…
It comes with own sysroot, but linker fails to locate /lib/ld-linux-armhf.so.3
$ make
arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o nvs.o nvs.c
arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o misc_cmds.o misc_cmds.c
arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o calibrator.o calibrator.c
arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o plt.o plt.c
arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o wl18xx_plt.o wl18xx_plt.c
arm-linux-gnueabihf-gcc -I/tmp/include/libnl3/ -DCONFIG_LIBNL32 -c -o ini.o ini.c
arm-linux-gnueabihf-gcc -L/tmp/lib/ nvs.o misc_cmds.o calibrator.o plt.o wl18xx_plt.o ini.o -lm -lnl-3 -lnl-genl-3 -o calibrator
/opt/linaro-2014.04/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: cannot find /lib/ld-linux-armhf.so.3
collect2: error: ld returned 1 exit status
Makefile:26: recipe for target 'all' failed
make: *** [all] Error 1
And when I pass my own sysroot, it works fine.
Is it supposed to work as a standalone toolchain with its own bundled sysroot?
Thanks.
--
Denys
I've been digging through test logs, and for gcc 4.9.1 native x86_64
tests, all the libsanitizer test cases fail to link due to unresolved
symbols from libpthread and libdl. Does anybody know more about this
bug, or care to fix it ? :-) It still exists in gcc trunk.
- rob -
== This week ==
- Completed GCC Launchpad bug dispositions [CARD-300][2/10]
- Backported PR61202 - gcc generated invalid sqdmulh instruction
[TCWG-485](2/10)
- Triaged and investigated Launchpad bug 1295738- Unable to find a
register to spill in class 'LO_REGS' [Card 300](3/10)
- Triaged and investigated Launchpad bug 1248752 - ARM assembly
instruction compile error [Card-300](3/10)
== Next week ==
- Resolve Launhpad bugs 1295738 and 1248752
- Triage and investigate other bugs as time warrants
== Future ==
No Plans.
== Planned holidays ==
No Plan
== Progress ==
* Worked on building binary tarballs from Jenkins. (TCWG 383 - 4/10)
* Continuing work on regression test analysis and reporting. (TCWG
448 - 3/10)
- now copying the check.log from make check to toolchain so
tcwgweb.sh can scan it for build errors in the test cases.
- Got the delimiter for concurrent Jenkins builds changed, now
glibc build problems are gone.
- Track down and try to fix testsuite build issues.
* Meetings and Misc. (3/10)
- Worked on making remote testing go faster. Setting
ControlPersist seems to help.
- Much debugging of Jenkins related issues.
== Plan ==
* Continuing work on validating test results and fixing testsuite
build issues. (TCWG 448)
* Probably more work on binary tarballs. (TCWG 383)
* More tracking down and fixing Jenkins related issues.
== Issues ==
* For some reason libgloss isn't getting built for *-elf via
Jenkins/Cbuildv2.
Hi,
I have tried out a prototype of using binfmt_misc, and it does not appear to be a worthwhile solution at this point.
Bottom line: with a nice fast multi-core x86 server and a pool of ARM boards we can test GCC in ~20min.
Testing setup:
- Core i3 2-core host
- Chromebook 2-core target, SSD disk
- WiFi network
- GCC mainline built from sources with same flags both natively and cross: C, C++, Fortran.
General observations about testing ARM toolchains:
- When testing natively target is busy 100%: around 50% of time is spent compiling testcases, 40-45% in dejagnu/expect, 5-10% on actual test execution. Target is the bottleneck.
-- 21633.22user 4400.13system 4:13:11elapsed
- With testing cross using standard rsh_prog=ssh, rcp_prog=scp, target is busy 40% of the time: 30% on ssh, 10% on actual test execution. Host is the bottleneck.
--
- When testing cross (using method below) target is busy only 15-20% of the time: 10% on ssh and 10% on actual test execution. Host is the bottleneck.
-- 9490.16user 2882.54system 1:10:57elapsed
I've got a prototype implementation of parallelized cross-testing of GCC that I'm happy with using rsh_prog and rcp_prog dejagnu wrappers:
General observations on dejagnu cross-testing process:
- All communication with the target is done by Dejagnu via rsh_prog and rcp_prog hooks. These are normally defined to ssh and scp respectively.
- Dejagnu copies every testcase to /tmp/ on the target with scp.
- Dejagnu executes every testcase via ssh off target's /tmp/. In total there is 1 scp and 3 ssh invocations per testcase.
The idea of below scripts is to assume shared filesystem between host and a pool of target boards, and skip copying executables to target's local filesystem. Since there is no longer local state (local state == contents of /tmp) on the target boards, testcases can be executed on any of the boards in the pool. This happens transparently to dejagnu: dejagnu issues "rsh_prog chromebook-pool ./test" and then rsh_prog converts this to "ssh chromebook-XX ./test", where XX chosen at random.
Script implementation notes:
- For some unholy reason there is no way of correctly parse command line from dejagnu and give it to bash. The reason why myssh script ssh'es onto host itself is because that's the only way I've found to reliably execute the command. Hey! The command line was intended for ssh anyway!
- Myssh script translates hostname of foobar-pool-01-03-08 into foobar01, foobar03 or foobar08 chosen at random. If there is no "-pool-" mentioned in hostname, then it is used verbatim.
--
Maxim Kuvyrkov
www.linaro.org