== This week ==
- Successfully submitted crypto using git-review
- Completed merge of ILP backports from trunk to Linaro 4.8 branch: 201164,
201165, 201166, 201167, 201168, 201170 and 201175
- Attended ARM architecture training on Friday
== Next week ==
- Submit ILP backports for review using git review
- New backports
== Future ==
== Progress ==
* Rework QEMU patch for AArch32 ARMv8 16<->64bit VCVT (2/10, TCWG-51)
* Further work on longjmp/setjmp Systemtap probes on ARM (4/10, TCWG-378)
* Research and analysis of malloc workloads for benchmarking (4/10, TCWG-160)
== Issues ==
* None
== Plan ==
* Finish testing setjmp/longjmp changes
* malloc benchmarking and improvements
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* EHABI
- Turning EHABI on by default on non-Darwin ARM
- Had to add some relocations to MCJIT
- Re-enabled EH tests on test-suite
- Check-all, self-hosting and test-suite bots green
* Compiler-RT
- Enabling RT+San libraries to compile on ARM
- Changing Clang to look for the generic libraries (arm, not armv7l)
* MCJIT
- Remote protocol fixed, all tests passing on self-hosting bot
- All tests re-enabled on ARM
* Background
- More IAS, Compiler RT patch reviews
- Buildbot cleaning up before every build (more stable)
- Cambridge LLVM Social
- Rumours that LLVM can compile the kernel with the integrated assembler
on ARM
* Time
- CARD-862 8/10
- Others 2/10
== Plan ==
* FOSDEM
- Talking about LLVM auto-vectorization this Sunday
* EHABI
- ARM detected some conflicts with Dwarf stack unwinding, investigate
Compiler-RT
- Run test-suite, benchmarks, applications with it
* IAS
- Confirm the rumours about the kernel compiling clean
- Pick up some remaining task to implement
I had a look at the missing target hook TARGET_ATOMIC_ASSIGN_EXPAND_FENV
to fix the C11 memory model testcase in regressions in trunk.
I looked at the x86 implementation of this target hooks and x86 has
instructions (FNSTENV,FLDENV,FNSTSW,FNCLEX) for feholdexcept,
feclearexcept and feupdateenv. Does ARM has something similar? Any
pointers/links I can refer to.
Please see the gcc internal documentation for the target hook below.
— Target Hook: void TARGET_ATOMIC_ASSIGN_EXPAND_FENV (tree *hold, tree
*clear, tree *update)
ISO C11 requires atomic compound assignments that may raise
floating-point exceptions to raise exceptions corresponding to the
arithmetic operation whose result was successfully stored in a
compare-and-exchange sequence. This requires code equivalent to calls to
feholdexcept, feclearexcept and feupdateenv to be generated at
appropriate points in the compare-and-exchange sequence. This hook
should set *hold to an expression equivalent to the call to
feholdexcept, *clear to an expression equivalent to the call to
feclearexcept and *update to an expression equivalent to the call to
feupdateenv. The three expressions are NULL_TREE on entry to the hook
and may be left as NULL_TREE if no code is required in a particular
place. The default implementation leaves all three expressions as
NULL_TREE. The __atomic_feraiseexcept function from libatomic may be of
use as part of the code generated in *update.
Thanks,
Kugan
== Progress ==
- releases (3/10)
* GCC 4.7 and 4.8 releases done
* more cbuild2 feedback
- cross-validations (2/10)
* followup
* adding capability to test a patch over a given revision on several
targets/cpu/fpu/runtestflags
- libsanitizer on AArch64 (3/10)
* most tests are now functional
* still some errors in the GCC testsuite, to be analyzed (there are
some timeouts, too despite using SSH multiplexing to the Foundation
model)
- misc (2/10): conf-calls and meetings
== Next ==
- libsanitizer on AArch64: analyze errors, try QEMU
== Future ==
On sick leave starting Feb 11th
== Progress ==
* Libc probes support for Aarch64 (2/10).
Wrote a small patch for setjmp and longjmp LIBC probe.
Requested "will newton" to test them .
* Investigate "PGO" for Aarch64 (3/10).
Bootstap testing GCC with PGO for GCC.
Stage 2, feedback profile in progress.
Ran coremark on foundation model with PGO.
The benchmark builds with profile-generate and runs.
"gcda" files are generated and uses them to profile.
Profile generated runs does not run cleanly.
Cross checking if the generated profile is valid.
* Resubmmited libssp machine description support in GCC (2/10).
* Cbuild2 discussed with rob, ryan on SYSROOT installation while building (1/10)
cross compiler for aarch64. "SYSROOT" is expected to be in
/opt/linaro, but cbuild2 does not do this by default.
Misc (1/10)
-------------
AMD internal meetings and did some investigations
== Plan ==
- Run EMBCC benchmarks with -PGO enabled.
- Follow up upstream libssp GCC discussions.
* 4 days week (university).
== Issues ==
* none
== Progress ==
* LRA on AArch32:
o TCWG-343 : Make LRA the default for the ARM backend (3/10)
- Looking backend places (ARM and AArch64) where reload_in_progress
is used to verify if lra_in_progress is needed as well: Tested lot of
configurations, testsuite results analysis ongoing.
o TCWG-345 : Analyse performance of LRA for ARM. (0/10)
- No progress this week.
* GMP library AArch64 port review: (4/10)
o Analyzing code generated from C generic implementation vs assembly.
* Misc. (1/10)
o Various meetings.
== Next ==
* Child care (chickenpox)
* Still some time spend at university
* Continue on LRA and lib GMP
== Progress ==
* Implemented per process hwbreakpoint and watchpoint cache for arm
native targets.
Also added a reference count for per thread hardware breaks. [TCWG-177] [7/10]
* Travelled to Islamabad for Macau visa application. [3/10]
== Plan ==
* Continue work on forking/vforking hardware breakpoints support for arm-native.
Tweak hardware breakpoint cache and thread breaks reference count to
get it in sync with linux-native. [TCWG-177]
== Misc ==
- Monday 27/01/2014 - Public holiday
== Progress ==
- LP#1191909: gold and -flto always fails with an internal error on
arm-linux-gnueabi* (2/10)
- Reproduced it and Looking into the implementation for best fix.
-c11-atomic-exec-5.c (4/10)
- Issue is due to missing target hook and looking at implementing
-LP#1270789: gcc 4.8: "invalid expression as operand" in aarch64
inline asm (2/10)
- came-up with the patch. Still in the process of testing it. APM1
disc seems to be corrupt and that is holding this.
- Benchmarking (1/10)
- added -pgo for coremark
- Set-up a Linux desktop (1/10)
== Plan ==
- Continue with trunk daily regression
- Fix assigned bugs
== Progress ==
* Improve binary releases produced by Cbuildv2. (6/10 TCWG-383)
* Minor changes to source releases produced by Cbuildv2. (1/10)
* Added support to Cbuild to use lsbcc for binary releases. (1/10)
* Meetings. (1/10)
* Started reviewing Kugan's benchmarking branch of Cbuildv2. (1/10)
== Plan ==
* Build static gdbserver for target via Cbuildv2.
* Add Win32 installer for Canadian cross built binary
releases to Cbuildv2. (TCWG-381)
* Once Jenkins has a node_selector for the new Beagle Board Blacks,
get those working for native builds. (TCWG-379)
* Get QEMU and Foundation Model running on TCWG x86_64 build slaves
so Jenkins can use them for native builds. (TCWG-380)
== Progress ==
* Add support for AArch32 ARMv8 16<->64bit VCVT to QEMU (2/10, TCWG-51)
* Triage and report AArch64 gcc bug when building glibc with SystemTap (1/10)
* Debug and submit patch for ARM libffi issue (1/10)
* Add support for longjmp/setjmp Systemtap probes on ARM (4/10, TCWG-378)
* Ported Python cffi package to AArch64, submitted upstream (1/10)
* Fixed bug building glibc for armv4 (1/10)
== Issues ==
* Broadband down for 3 hours on Wednesday afternoon
== Plan ==
* Follow up QEMU patches and maybe post v2
* malloc
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Compiler-RT
- Changing CMake to make it compile on ARM
- Reviewing long div/mod patches for ARMv4/v5/v6, testing and benchmarking
* EHABI
- Investigating EH code generation (landing pads, jump tables, libs)
- Running test-suite EH tests, some failures
* Background
- Loads of patch reviews on IAS, build attributes, EHABI, compiler-rt
- Planning the 3.4.1 release (the first patch-release of LLVM)
* Time
- CARD-862 8/10
- Others 2/10
== Plan ==
* Continue EHABI tests, try to turn it on by default
* Continue working on RT's CMake for ARM
* Prepare the FOSDEM 14 presentation
== This week ==
- Completed merge of crypto backports from trunk to Linaro 4.8 branch:
- 64-bit backports: 205092, 205383, 205384, 206114, 206115, 206117, 206118,
206149
- 32-bit backports: 206518 AND 206519
- Built and tested 32 and 64-bit compilers with crypto changes
== Next week ==
- Submit backports for review using git review
- New backports
== Future ==
== Progress ==
Deferred US Holiday (MLK day) from Monday to Tuesday
* Debugged what was thought to be a cbuild2 problem but ended up being
due to default enablement of multilib in gcc. (2/10)
* Started working on adding mulit-lib support to cbuild2 (minimal
configuration for installing headers). (8/10) [Jira card forthcoming]
- Moved kernel headers installation to arch based directory in
sysroot and then symlinked appropriate host include directories to
common arch directories.
- Figured out how to build multilib arm libraries for
arm-none-linux-gnueabihf and arm-none-linux-gnueabi.
== Plan ==
* Add cbuild2 scripting to build multilib libraries based on gcc
-print-multi-lib
* Figure out how to get gcc to select the correct multilib headers
directory so that we don't need a merged include directory.
== Issues ==
* None
The Linaro Toolchain Working Group is pleased to announce the
release of both Linaro GCC 4.7 and Linaro GCC 4.8.
As announced at Linaro Connect USA 2013 Linaro GCC is moving to a
pattern of quarterly stable releases, with engineering releases in the
intervening months. This is the first stable release, and contains no
known regressions compared to the 2013.12 release.
The next release of GCC 4.7 will be the 2014.04 stable release. There
will be no engineering releases of GCC 4.7 in 2013.02 or 2013.03.
The next stable release of GCC 4.8 will be the 2014.04 release. Next
month's release - 2013.02 - will be an engineering build.
Linaro GCC 4.7 2014.01 is the twenty second release in the 4.7
series. Based off the latest GCC 4.7.4+svn206380 release, this is the
ninth release after entering maintenance.
Interesting changes include:
* Updates to GCC 4.7.4+svn206380
Linaro GCC 4.8 2014.01 is the tenth release in the 4.8 series. Based
off the latest GCC 4.8.3+svn206350 release, it includes performance
improvements and bug fixes.
Interesting changes include:
* Updates to GCC 4.8.3+svn206350
* Enhanced multilib support
The source tarballs are available from:
http://releases.linaro.org/14.01/components/toolchain/gcc-linaro/4.7http://releases.linaro.org/14.01/components/toolchain/gcc-linaro/4.8
Downloads are available from the Linaro Releases website:
http://www.linaro.org/downloads/
More information on the features and issues are available from the
release pages:
https://launchpad.net/gcc-linaro/4.7/4.7-2014.01https://launchpad.net/gcc-linaro/4.8/4.8-2014.01
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Bugs: https://bugs.launchpad.net/gcc-linaro/
Questions? https://ask.linaro.org/
Interested in commercial support? Inquire at support(a)linaro.org
== Progress ==
* Got got Beagle Board blacks up, installed all necessary
dependencies to build toolchains. (TCWG-379 - 1/10)
* Installed QEMU and Foundation model on all TCWG x86_64 build
slaves. (TCWG-380 - 1/10)
* Minor bug fixes for Cbuildv2 produced source tarballs to be
hopefully now 100% match with what we usually release. (2/10)
* More major bug fixes and some refactoring for Cbuildv2 produced
binary tarballs to match with what we usually release. (3/10)
* Meetings. (1/10)
== Plan ==
* Build static gdbserver for target via Cbuildv2.
* More work on binary tarball building.
* Add Win32 installer for Canadian cross built binary
releases to Cbuildv2. (TCWG-381)
* Once Jenkins has a node_selector for the new Beagle Board Blacks,
get those working for native builds. (TCWG-379)
* Get QEMU and Foundation Model running on TCWG x86_64 build slaves
so Jenkins can use them for native builds. (TCWG-380)
== Issues ==
* I got invited to Mt Everest last week... :-)
* 4 days week (still some times spent at university).
== Issues ==
* none
== Progress ==
* LRA on AArch32:
o TCWG-343 : Make LRA the default for the ARM backend (3/10)
- Most of the issues fixed or about to be fixed by Vladimir :
* iWMMXT issue and Thumb1 udivmoddi4 : fixed.
* Thumb1 code size issue : partial patch proposed.
- Looking backend places (ARM and AArch64) where reload_in_progress
is used to verify if lra_in_progress is needed as well.
Validation ongoing.
o TCWG-345 : Analyse performance of LRA for ARM. (0/10)
- No progress this week.
* Loop specialisation patch review: (1/10)
o Sent feedback to Samsung.
* 2014.01 release: (1/10)
o Branch merge review
* [Bug 1258013] Re: Cannot build arm64 kernel with CONFIG_DEBUG_INFO=y (1/10)
o Issue due to a wrong .align directive in an assembly source file which is
already fixed upstream.
* GMP library sAArch64 port review: (1/10)
o Started to review Anil work.
* Misc. (1/10)
o Various meetings.
== Next ==
* Still some time spend at university
* Continue on LRA and lib GMP.
- 2014.01 releases: (2/10)
* 4.7 ready, 4.8 needed a short daily to include our multilib patch
to support our binary releases.
* retried cbuildv2 and sent feedback. Should be mostly OK by now.
- cross-validations: (2/10)
* followup-up, bugzilla
* thinking about short term Neon intrinsics testsuite use without dejagnu
- libsanitizer (2/10)
* resumed work for aarch64
- misc (2/10): conf-call and meetings
- internal support (2/10)
* issue:
boards used for benchmarking have been off for several weeks. Pending
jobs disappeared from the list, but I got no log.
== Progress ==
* Implement fork over HW breaks support for arm native targets.
[TCWG-177] [6/10]
* ARM Process Record:
- All patches accepted and upstream.
- Spent time making changes to VFP, SIMD etc patch. [2/10]
- Configuration and Git ssh setup for gdb commit rights . [1/10]
* Submitted a new fix and worked with community for the fix. [1/10]
== Plan ==
* Continue to work on fork over HW breaks support for arm native
targets. [TCWG-177]
* Patch updates and submission to all in progress upstream submissions.
* Travel to Islamabad for Macau visa application.
== Progress ==
* Libc probes support for Aarch64.
Testing the patch for "libc" probes support to "__longjump".
Native compiling in openemebedded.
Obtained a Linaro open embedded image with system tap enabled.
Getting Assembler Error during "malloc" module linking in "glibc"
configured with --enable-systemtap.
In libc_mallopt invalid "asm", invalid expression as operand for
LIBC_PROBE call.
Cross compiling.
Tried copying header files from system tap source to SYSROOT for cross
compiling glibc. The cross compiled GCC does not recognize the header
files.
* Investigate "PGO" for Aarch64.
Started bootstap testing GCC with PGO for GCC.
Stage 1 completed. stage profile in progress.
== Plan ==
- Run EMBCC benchmark with -PGO enabled.
- Work on "glibc" probe.
== Issues ==
Waiting for feedback on "libssp" machine descriptions changes.
Misc
------
14-Jan-2014 Local holiday.
== Issues ==
* None.
== Progress ==
* Test Linaro cbuildv2.
- Write a reference script to support windows installer in cbuildv2.
- Do some basic validation work against the binaries built from cbuildv2.
* Reproduce and work out a patch for "ICE when building
linux-linaro-tracking" (lp:1268893, PR59837) .
* Test to merge Linaro local armv4t multilib patch to Linaro 4.8.
* Investigate CCMP chance by taking a Bool_ var as var != 0.
== Plans ==
* cbuildv2 validation
* Tuning ccmp performance
== Planed leaves ==
* Jan. 31 - Feb. 9.
== This week ==
- Completed merge of crypto backports 206128, 206130, 206131, 206132 and
206149 from trunk to Linaro 4.8 branch
- Out sick Friday
== Next week ==
- Build and test crypto backports
- Begin merging aarch64 crypto backport to Linaro 4.8 branch
== Future ==
== Progress ==
* Cbuildv2 fix for *_release() functions which were changing out of
the build directory but then not changing back to the builddir, which
caused problems with paths relative to the builddir. (1/10)
* TCWG-340 Enable Glibc remote testsuite integration - (7/10)
- Working with upstream community on scoping and designing remote
testsuite integration.
- Setting up arm chroot environment on chromebook with documentation
on how to make this reproduceable.
* TCWG-352 AArch64 clone is missing some CFI markup - (2/10)
- Setup aarch64 environment for testing and built static clone tests
to test the patch.
== Plan ==
* Start implementing (code) for glibc remote testsuite integration.
== Issues ==
None