== Progress ==
* gprof mcount support in glibc
Tested the patch and posted in libcports.
* Fix signal handler issue in glibc for profiling
Found issue with time profiling. Time profiling is obtained by setting up
SIG_PROF interrupt and kernal calls signal handler with interrupted pc
address. But in glibc, aarch64 port does not register the signal
handler properly.
Fixed and sent a patch to team for review. Tested the patch and
posted in libcports.
* Linaro connect - VISA application.
Applied VISA online and scheduled interview with US consulate.
* Libssp support for AArch64 TCWG 23:
Timeout issues disappears after increasing TIMEOUTFACTOR
Base glibc test results are captured in wiki
https://wiki.linaro.org/WorkingGroups/ToolChain/ReleaseAndInfrastructure/Cr…
* 1-1 meeting with Matt and Christophe.
== Plan ==
* Post RFC patch for Libssp support for AArch64 in GCC
* Continue testing the patch for Libssp support for AArch64 in GCC
and glibc TCWG-23.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
Misc
------
Tuesday and Wednesday in Chennai to attend US VISA interview.
== Progress ==
* Trying to profile ImageMagick on A9
- perf is broken on Exynos 4, used Panda
- Linaro image doesn't have all PPAs
- Clang code 10% worse than GCC on some operations
- Code doesn't look that bad, but Clang on x86 is faster
- Will look into that next week
Background
- Meetings at ARM, Linaro
- Omair in Cambridge
- Patch review, fixing bots, discussions, etc
- Moved from Ubuntu to Mint 15, using Gnome Shell
== Plan ==
* Finally look into the profiler output
* Increase the profiling to other image operations
* Profile Phoronix results?
Hi,
In building some code (CRIU) that includes linux/if_packet.h for
x86_64-linux-gnu, arm-linux-gnueabihf, and aarch64-linux-gnu, some
discrepancies popped up relating to whether the TPACKET_V3 structures were
defined. It looks like the headers shipped with the 13.08 arm-linux-gnueabihf
toolchain do not define them, implying kernel headers older than October 2012.
The aarch64-linux-gnu toolchain on the other hand does have them defined. If
this analysis is correct, can I expect the kernel headers in the 32-bit
toolchain to be updated in the near future or should I really be generating
and referencing my own kernel headers?
Thanks,
Christopher
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.
== Progress ==
* GDB Record and Replay (TCWG-197)
Debugged code for an exception coming up in gdb code after applying
Thumb32 patch.
* Travel to UK on Wednesday night stopped in UAE for Thursday and Friday.
* Holiday on Thursday and Friday.
== Plan ==
* Working from Linaro Cambridge from Monday till Friday
* GDB Record and Replay (TCWG-197)
Fix issues Submit patch upstream.
* Meetings with team mates in Cambridge and visit to ARM.
== Progress ==
* 4.8 2013.09 backports:
- Finished ongoing reviews.
* LRA:
- Fixed and refactored rtl analyser patch, waiting fro upstream green light
- Reduced AArch64 testcase, and find the root cause of the issue:
Only 64 bits of callee saved registered v8-v15 are preserved, larger values
has to be handle by the caller, which not the case with LRA. Working on
the issue with LRA maintainer.
* LCU'13
- Hotel and flight booked
== Next ==
* Continue on LRA
== Issues ==
* None
== Progress ==
* Prepare Linaro toolchain binary 2013.09 release
- Create linaro-prebuilt-sysroot-2013.09.
- Update local patches and all Linaro samples to use
eglibc-linaro-2.18-2013.09.
* Update Conditional compare (CCMP) according to community comments.
Current method is:
- In fold-const, if HAVE_conditional_compare, set
LOGICAL_OP_NON_SHORT_CIRCUIT to true.
- Identify CCMP during expanding. A CCMP candidate is a BIT_AND_EXPR
or BIT_IOR_EXPR, whose operators are compares.
- Add a new op in optab to expand the CCMP to RTL, e.g.
and_scc_scc/ior_scc_scc in ARM.
- Testing is ongoing.
== Plan ==
* Send out the updated conditional compare patches for review.
== Panned leaves ==
* Sept. 19-21: Mid-Autumn Festival
* Oct. 1-7: National Day of China holiday
== Progress ==
* Set up a GCC git mirror on git.linaro.org. now at
ssh://LOGIN@git.linaro.org/srv/git.linaro.org/git/toolchain/gcc.git. The
two Linaro branches most people are interested in are now
'linaro-4.7-branch' (updated every 30 minutes from launchpad),
and 'linaro-4.8-branch' updated every 10 minutes from subversion.
* Tweaked Cbuildv2 & Jenkins to work with GIT repositories and
branches as well as source tarballs.
* Jenkins now "bootstraps" a cross compiler by building the native
GCC, and then using that to compile the cross GCC.
* Got aarch64-none-elf building with newlib via Cbuildv2.
* Source and binary tarball release support in Cbuildv2 now
works. I've had to change the naming convention to handle daily
automated builds, and added the commit ID of HEAD for git based
builds.
* Almost got Canadian crosses building via Cbuildv2.
* Continued work on Jenkins/Cbuildv2 integration.
* Cbuildv2 now works on Fedora as well as Ubuntu.
* Survived major 100+ year flood. Got to watch a dam overflow, kindof
cool, all the roads in and out of this area have been closed for days,
most of the bridges are gone. Been busy all weekend evacuating
people, car accidents, normal disaster area stuff. I worked Katrina
relief, never thought I'd see a flood in the mountains.
== Plan ==
* Continuing with Jenkins/Cbuildv2/Git integration.
* Get testing results from Jenkins builds imported via Junit conversion.
* Compare automated tarballs with the current release tarballs.
* Get Jenkins to upload binary & source tarballs to
snapshots.linaro.org.
* Add support for using specific commit IDs with Git and Cbuildv2.
* Finish getting Canadian Cross builds working in Cbuildv2.
* Odroids should arrive (when the roads open...) Monday, install
Ubuntu and do some tests to see if it's a good platform.
== Issues ==
* Flooding...
== Progress ==
* Addressing patch review
- Woking on vrp based zero/sign extension elimination based on feedback
- Reworked the patch based and posted the first patch
- Speck2k benchmarking in progress for second patch and will post
once finished.
* spec2k comparison between ARM and x86
- More benchmarks analysed.
- Started with the report. Plan to send in next couple of days.
- Created more reduced test cases.
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Start divmod work
== Progress ==
* Committed glibc realloc test
* Committed glibc malloc integer overflow patches and requested CVE number
* More work on glibc malloc benchmarking
* Investigated AArch64 gdb issue and submitted a patch
* Investigated gas NEON issue and submitted a patch
== Issues ==
* None
== Plan ==
* Visit Linaro in Cambridge from Tuesday to Thursday (see you there!)
* Submit glibc malloc benchmark
* Get benchmark numbers for tweaked memcpy
* Start glibc pointer guard work
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Patches
- Committed lzma fix for cross-compilation
- Split ARMv7 fixes in three patches, committed
- Reviewed many ARM patches
* ImageMagick benchmark
- Using IM's convert to test compiler performance
- LLVM seems pretty good on x86_64, par on A15 and behind on A9
when compared to gcc 4.7
- http://people.linaro.org/~rengolin/llvm/scripts/
* Profiling
- Found a serious bug in LLVM when emitting profile information
- mcount segfaults on prelude, luckily only on x86. :D
* Phoronix
- Found out that our problems with Phoronix were not unique
- Might need a bit more of work to get the build scripts changed
- And A bit more to get the data out of the reports
== Plan ==
* Profile IM's convert on A9 (after finding out why it's not generating
gmon.out)
* Hoping to find low-hanging SLP-vectorizer fruits... fingers crossed!
* Try something on Jenkins, hopefully it'll be easy to get Phoronix and
ImageMagick running on it
Progress:
* "aarch64 preparation" patchset now in upstream QEMU master.
For clarity: this doesn't enable anything by itself, but
it's an important foundation for the work being done by
people including Linaro, SuSE and Virtual Open Systems, and
getting it upstream is both helpful for that work and an
indication of progress.
* posted a new version of mach-virt patchset (with a PL011 UART)
* various planning meetings/calls
* put together a "testing" quality branch that integrates the
"-cpu host", "mach-virt" and OVS work on KVM v8 control:
git://git.linaro.org/people/pmaydell/qemu-arm.git aarch64-kvm
-- PMM
---
Hi all,
The reason for my most recent question on the list was that I was
investigating if gccgo targeting aarch64 would work. It turns out that
it's really close (to building and working for trivial programs, at
least): it depends on libatomic which explicitly does not support
AArch64, but when you try to build it, it appears to work fine. Hence
this patch.
Would it be possible for someone to:
a) test this for me, or
b) explain to me how to test it myself, and/or
c) send this upstream, or
d) offer advice on how to get it upstream myself?
I'd sort of prefer the "explain to me" versions as I also want to run
the gccgo/libgo tests :)
If someone knows why libatomic unsupports aarch64, that'd be even better
(maybe it's just that the sync intrinsics it uses weren't supported by
gcc on aarch64 at the time?).
Cheers,
mwh
libatomic/configure.tgt | 5 -----
1 file changed, 5 deletions(-)
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
index b9e5d6c..7eaab38 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -95,11 +95,6 @@ fi
# Other system configury
case "${target}" in
- aarch64*)
- # This is currently not supported in AArch64.
- UNSUPPORTED=1
- ;;
-
arm*-*-linux*)
# OS support for atomic primitives.
config_path="${config_path} linux/arm posix"
--
1.8.1.2
Hi,
Thanks to the advice from this list I've managed to build GCC targeting
aarch64 (thanks!).
Is there some way I can now run the tests in a Foundation model? I
don't really know how this would work -- I guess using
aarch64-unknown-linux-gnu-gcc etc to build binaries, scp them onto the
model, run them and parse the output. Is this the sort of thing that
people do?
Cheers,
mwh
Short week (2 days off).
== Progress ==
* 4.8 2013.09 backports:
- Reviewed and committed several
* Wiki cleanup:
- Started to review some pages.
* LRA:
- Refactored the two posted patches in one.
== Next ==
* Backports and Releases.
* LRA
* Book hotel/plane for Connect
== Progress ==
* Libssp support for AArch64 TCWG 23:
NFS mounted from build system into the model and ran cross eglibc
tests for a fresh SVN checkout.
Had some failures. Looking at library missing issues.
* Backports
Completed backports and merge requests. Yvan helping out to commit 201411.
== Plan ==
* Post RFC patch for Libssp support for AArch64 in GCC
* Continue testing the patch for Libssp support for AArch64 in GCC
and glibc TCWG-23.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
Misc
-------
9-Sep-2013 AMD Bangalore holiday.
== Progress ==
* spec2k comparison between ARM and x86
- More benchmarks analysed.
- Plan to complete first iteration for spec2k-int benchmarks this week
* Addressing patch review
- Woking on vrp based zero/sign extension elimination based on feedback
- Started addressing comments for divmod optimization
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Wiki Cleanup
== Progress ==
* GDB Record and Replay (TCWG-197)
Completed writing most of gdb process record Thumb32 instruction handling code.
Created test data for various types of Thumb32 instructions
Performed testing fixed some coding mistakes and bugs.
* Visa Application
Filled US visa application online for LCU13.
Prepared US visa documentation to file visa immediately after coming
back from UK.
Made travel arrangement for UK visit.
== Plan ==
* GDB Record and Replay
Integrate gdb process record thumb32 support patch with gdb source and
perform testing.
Submit patch upstream.
* Travel and Visas
Collect travel information and travel to Cambridge UK by Sunday.
* Days Off
Thursday and Friday off for a small visit to Dubai before reaching UK on Sunday.
== Progress ==
* Started setting up a GCC git mirror on git.linaro.org.
* Tweaked Cbuildv2 & Jenkins to work with GIT repositories as well
as source tarballs.
* Jenkins now "bootstraps" a cross compiler by building the native
GCC, and then using that to compile the cross GCC.
* Got aarch64-none-elf building with newlib via Cbuildv2.
* Finished binary tarball release support in Cbuildv2.
* Almost got Canadian crosses building via Cbuildv2.
* Continued work on Jenkins/Cbuildv2 integration.
* Added ccache support to Cbuildv2.
* Cbuildv2 now works on Fedora as well as Ubuntu.
== Plan ==
* Finish setting up GCC git repository with Linaro branches
fetched from svn and bzr.
* Add support for building source tarballs.
* Continuing with Jenkins/Cbuildv2 integration. (waiting for GCC
git repository to be complete)
* Get Jenkins to upload binary & source tarballs to
snapshots.linaro.org.
* Finish getting Canadian Cross builds working in Cbuildv2.
== Issues ==
* Still waiting for Odroid hardware to get shipped.
* Waiting for git-bzr-ng to be installed on git.linaro.org.
* Git-svn is incredibly slow on initial fetch. (fetching the
linaro/gcc-4_8-branch has been running over 24 hours)
== Progress ==
* Worked on getting glibc benchtests into shape for string functions
* More wiki cleanup (done?)
* Backports and release of eglibc 2.18 2013.09
* Booked Cambridge trip for Sept 17th
== Issues ==
* None
== Plan ==
* More improvements to glibc benchtests for strings/malloc if possible
* Get back to malloc and stack guard work
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Backports for 2013.09:
- committed several
- reviewed
- submitted a few new ones
* Wiki pages cleanup
* GCC trunk cross-validation:
- need to work around results instabilities caused by incomplete
threads support in QEMU.
== Next ==
* Release 2013.09 next week after completing the latest backports.
* Resume investigation on perfomance regression with peeling disabled.
* GCC trunk validation: work on reporting
* Book hotel/plane for Connect
== Progress ==
* Cross-compilation
- Cleaning up v7A cores and features in Clang
- Writing document on how to cross-build using Clang/LLVM
- Creating bugs to deal with the issues found
- Adding LZMA library dep to cross-build in LLVM
- https://cards.linaro.org/browse/TCWG-200
* Divmod 64
- Long discussions about libcalls using registers with ARM
- Trying to revive my old patch due to future improvements from ARM
- It should also help future improvements on value_in_regs attributes, as
well as other library calls in registers or with multiple return values
- https://cards.linaro.org/browse/TCWG-199
* Maintenance
- Patch reviews, discussions, as usual
- Investigating breaking test-suite bot
- Added two pandas to the lab for general use
== Plan ==
* See that all patches created this week get through
* Have a look at automating Phoronix (via Jenkins)
* Find SLP-vectorizer regressions on ARM and fix them
Progress:
* rebased and fixed last issues in aarch64 prep patchset, sent it
out with a note that I'm going to put it in a pullreq to be
applied unless any further comments come up in review
* reviewed Christoffer's GIC save/restore patchset
* reviewed and cleaned up toolchain's QEMU wiki pages
-- PMM
### About Linaro eglibc
Linaro eglibc is a release of the eglibc C library with bug fixes and
enhancements for ARM platforms. eglibc is a variant of the GNU libc
designed to work well on embedded systems.
### Linaro eglibc 2.18 2013.09
The Linaro Toolchain Working Group is pleased to announce the 2013.09
release of Linaro eglibc 2.18, the first release in the 2.18 series.
This release is based on the latest upstream eglibc 2.18 stable branch,
but with additional features and bug fixes.
#### Additional Features
* None
#### Bug Fixes
* Fix for clone(2) built for Thumb2.
### Source
#### Release Tarball
* https://releases.linaro.org/13.09/components/toolchain/eglibc-linaro
#### Development Tree
* git://git.linaro.org/toolchain/eglibc.git
This release was built from the `linaro_eglibc-2_18-2013_09_release` tag.
### Feedback and Support
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`
* Questions? [ask Linaro](http://ask.linaro.org/).
* Interested in commercial support? inquire at [Linaro
support](mailto:support@linaro.org)
--
Will Newton
Toolchain Working Group, Linaro
Hi folks,
Since we won't be using Pandas for buildbots any more, I decided to put
them in the lab for general use. This is not LAVA or CBuild managed, and
the purpose is to test, and possibly benchmark, small applications, build
systems, native compilation, generated code, etc, in real hardware. For
this purpose, the Pandas are great, so there you have it.
There is no reservation mechanisms, but the etiquette is to "who" and
"top", and if you're the only active user, go for it. Multiple users can
use a single board if only testing, compiling, running code, but if someone
is benchmarking, would be polite to use the other board.
They're sporting a Linaro 13.03 release with kernel 3.5.0. If you need/want
access to them, just let me know.
cheers,
--renato
== Progress ==
* Backports for 2013.09:
- updated list, assigned some to team members
- submitted several requests
- quite a few of them exposed dependencies, making it necessary to
make several attempts.
* Aarch64 frame layout: posted sample code using large frame on
gcc-patches to get feedback.
* Disable-peeling: resumed regression investigation.
* Wiki pages cleanup
* trunk validation:
- continued to work on internal validation of trunk using our
compute farm (build+cross validation) to help catch regressions early.
== Plan ==
* Finish backports, sort out dependencies problems.
* Disable-peeling: investigate regression
* More wiki pages cleanup
* trunk validation: improve reporting
* install Ubuntu on Chromebook
== Progress ==
* Libssp support for AArch64 TCWG 23:
My approach to Cross testing eglibc from host failed since it needs
the build directories to be shared. Mounting the image in build
system and building eglic will not help as the changes will not be
reflected, in the image booted in V8 model dyanamically. The test
system only issues command via ssh but does not copy binary to the
model.
Need to try creating NFS mount from build system into the model.
* Backports
Lots of back porting and merging.
201624 and 201666 can be back ported together. Merge request submitted.
201406 to linaro branch. Small test case comment change. But the test
case fails in linaro 4.8, but passes in trunk.
It needs other revisions to be back ported, since vectorization
improvement in trunk. I tried back porting all relevant versions
r199402,r200394,r200600, r201282. But still fails since interface of
function get_loop has changed in trunk somewhere.
For 201411 look like need to hand pick and apply changes in arm.md
file. since lot of changes gone in that file and simple merge will not
be good. Also it may need some other revision to backport.
* TCWG-209, Looked at wiki pages, Christophe assigned to me and gave
some comments about updating/deleting them.
== Plan ==
* Post RFC patch for Libssp support for AArch64 in GCC
* GCC patch for gprof accepted, need to post patch in glibc.
* Continue testing the patch for Libssp support for AArch64 in GCC
and glibc TCWG-23. Try NFS mouting into the model.
* Backport 201411 201406 from trunk.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
== Issues ==
* None
== Progress ==
* Conditional compare (CCMP)
- Design tens of test cases to verify the codes.
- Handle CCMP in vrp pass. If the compare in CCMP can be simplified,
CCMP will be converted to a copy, compare or a bit operator.
- Investigating to handle CCMP in jump-thread related optimization.
- Investigating bootstrap issue when expanding conditional compare
to optimized RTL.
. It seams that there are illegal combinations of different
compares since bootstrap OK if the two compares of CCMP have the same
CODE.
. Current check bases on function "arm_select_dominance_cc_mode".
Need narrow down the root cause.
== Plan ==
* Continue on conditional compare.
== Panned leaves ==
* Sept. 3-6: internal meeting.
== Progress ==
* spec2k comparison between ARM and x86
- Initiated discussion and addressing the feedback
- Looking at register allocation (IRA + Reload) for reduced test
case and comparing with x86
- Analysed few more spec2k benchmarks
* Back-porting
- All the back ports are checked and reviewed. Thanks Yvan.
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Wiki Cleanup
== Progress ==
* More work on Jenkins/Cbuildv2 integration.
* Finished reviewing all 81 wiki pages I had to review.
* Added a 'dryrun' option to Cbuildv2 that displays all configure
and make command lines without executing them as a learning aid.
* Added 'make check' to toolchain builds via Jenkins/Cbuildv2.
* Added a simple "Hello World" test case in C++ to toolchain builds
in Cbuildv2 to make sure the fresh build minimally works.
* Added several more sections to the Cbuildv2 Usage wiki page.
* Cbuildv2 can now downloads and builds several projects/ (QT, GTK,
etc...) as a toolchain test.
* Got the LAVA team to make many tweaks to Jenkins and other stuff
to support TCWG needs for Cbuildv2. Now Jenkins does a toolchain
build of all supported architectures for each commit to GCC
upstream.
* Two small wildland fires this week, plus 3 motorcycle accidents.
== Plan ==
* More work on binary releases via Cbuildv2.
* Import test results into Jenkins.
* Continued work on Jenkins/Cbuildv2 integration.
== Issues ==
* Libmudflap, needs -ldl, or make check fails when linking with
--as-needed (used on Ubuntu by default).
* On chromebook using a raring chroot, 'make check' for mpfr has
these three test cases: tasinh, tcot, and tcsc which consume all the
memory and hang when run with the other infrastructure libraries via
Cbuildv2. The ttan and tsinh tests segfault, and tgamma return an
incorrect result. These same test cases all pass if I use Cbuildv2
to only build and test mpfr. Weird...
== Progress ==
* GDB Record and Replay (TCWG-197)
Wrote instruction type decoder code for ARM Thumb32 instructions.
Wrote stub handlers for different type of Thumb32 instructions.
Wrote process record handlers for various type of load/store instruction.
Wrote a testing utility to test record and replay instruction decoding code.
* Visa Application
Received email notifcation for UK visa issuance for upcoming trip to Cambridge.
Filled out US visa application form DS-160, gathering information
required to complete my application.
== Plan ==
* GDB Record and Replay
Continue to write code for decoding and recording thumb32 instructions.
Try to find a way to generate test data of various instructions to
test record and replay code.
* Travel and Visas
Go to UK visa application center to collect my passport back.
Apply for US visa and make an appointment for the interview for the
week of 23rd September.
Prepare for UK travel for the week of 14th September.
== Progress ==
* Investigating Cross-Compilation with LLVM
- Gathering all options necessary to cross-compile
- Cross-compiling Clang+LLVM with Clang to ARM
- Writing down all issues found during the process
* Investigating the Clang Driver
- Refactoring some common decisions about targets
- Adding new CPUs, cleaning a few areas
== Plan ==
* Try to upstream some patches to make cross-compilation a bit easier
* Write a document on how to cross-compile with Clang on LLVM website
== Progress ==
* 4 day week (Bank Holiday Monday)
* Wiki cleanup pretty much done
* More malloc implementation work
* Further investigation of ptmalloc to see if it can be improved
* Fixed gdb build for non-Intel architectures
* Found an issue with clone in glibc 2.18 and committed a fix
* Committed strlen code to glibc
== Issues ==
* None
== Plan ==
* Get glibc patches applied upstream
* More malloc
* Look into stack guard and pointer guard stuff for ARM
--
Will Newton
Toolchain Working Group, Linaro
Hello,
Is there any LLVM cross-compiler built for ARM. If not, then could you
provide some pointers where I could start creating one?
--
Regards,
Pavan
Hi all,
There has been interest from LEG members to ensure that optimal library
routines are used on their platforms. My understanding is that the
"correct" way of doing this these days is to use ifuncs to select the
best implementation for a given system.
I see that glibc 2.18 contains an ifunc-ed version of memcpy. Does the
TCWG have a hit list of other functions that might get the same
treatment? If so, does it have a plan and the resources to implement
them? If it's a matter of resources, I think LEG might be able to help
there.
Cheers,
mwh
Hi,
Apologies in advance for any chinese whispers effects that happen, but
colleagues at Canonical are attempting to backport this change:
https://sourceware.org/git/?p=glibc.git;a=commit;h=ae65139d140ac85808c0666c…
to the (e)glibc in current versions of Ubuntu, 2.17, but are
encountering mysterious segfaults when building. These are the
additional patches being used:
arm/define-sfi_breg-and-PC_OFS.patch
arm/Add-Cortex-A15-optimized-NEON-and-VFP-memcpy-rou.patch
arm/Make-multiarch-memcpy-always-use-NEON-when-compi.patch
arm/Clean-up-__libc_ifunc_impl_list.patch
arm/Make-armv7-memcpy-implementations-SFI-friendly.patch
arm/Use-push-pop-mnemonics.patch
arm/Support-avoiding-pc-as-destination-register.patch
arm/BX_ALIGN_LOG2.patch
arm/Pass-dl_hwcap-to-IFUNC-resolver-functions.patch
-- all grabbed from glibc git. Are we missing something obvious? :)
Cheers,
mwh
== Progress ==
* Got Cbuildv2 building native on Odroid and Wandboard via Jenkins
using the LAVA build farm.
* Improved support for native builds in Cbuildv2.
* Added building binary tarballs for releases.
* Looked at two patches for multilib support.
* Reviewed a bunch of wiki pages, updated some, deleted some,
some were ok as is and still useful.
* Registered for LCU13.
* Ordered Odroid XU & U2 boards.
* Put out 2 lightning caused wildland fires.
* Ran weekend music festival fund raiser for a local non-profit.
== Plan ==
* Review more wiki pages.
* Improve binary tarball support in Cbuildv2.
* Add 'make check' to Jenkins builds.
* Get Jenkins to do automated builds on LAVA build farm.
* Get lava-tool working.
== Progress ==
* spec2k comparison between ARM and x86
- Analysis ongoing
- Preparing to post the results for internal discussions
* Back-porting
- Back ported all the assigned one
- There are some make check failures for thread related test cases
with qemu; investigating it
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Finish the back-ports
== Progress ==
3 day week 21 August unwell and 23-August leave.
* Libssp support for AArch64 TCWG 23:
Sent RFC patch for review.
http://sourceware.org/ml/libc-ports/2013-08/msg00044.html
workign on cross testing eglibc from host.
* Backport 201406 to linaro branch. Waiting for review.
== Plan ==
* Post RFC patch for Libssp support for AArch64 in GCC
* Continue testing the patch for Libssp support for AArch64 in GCC
and glibc TCWG-23
* Backport 201411 201624 201666 from trunk
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
* Waiting for Marcus feedback for Matt comments on gprof patches TCWG-20.
== Issues ==
* none
== Progress ==
* 2013-08 release:
- Released 4.7 and 4.8 .
* 4.8-2013.08 c++ and java reported issues:
- Trying to reproduced the reported failures on x86 and a9hf,
without success for the moment.
* LRA:
- Rebased the ongoing work on updated sources.
- Preparing an upstream request for comment.
== Plan ==
* Review roster
* 4.8 backports
* LRA
== Issues ==
* None
== Progress ==
* 2 day off.
* Conditional compare
- Send out RFC and basic support patches for community review.
- Update and design test cases.
- Investigating bootstrap issue when expanding conditional compare
to optimized RTL.
== Plan ==
* Continue on conditional compare.
== Panned leaves ==
* Sept. 3-5: internal meeting.
== Progress ==
* GDB Record and Replay (TCWG-197)
Studied ARM Thumb32 instruction encoding for thumb32 encoding
Studied existing arm/thumb code for instruction decoding and recording
Setup remote debug environment to debug arm native gdb record/replay code.
* Spent a couple of hours reading gdb wiki pages and identified some
improvement which I will make in coming weeks.
* Prepared US visa application documents.
== Plan ==
* GDB Record and Replay: write code for decoding and recording thumb32
instructions.
On 17 August 2013 14:36, Renato Golin <renato.golin(a)linaro.org> wrote:
> On 17 August 2013 08:36, Michael Hope <michaelh(a)juju.net.nz> wrote:
>>
>> user/real is 3.81 so it was nicely CPU bound. The Wandboard runs at
>> 1.0 GHz vs the U2 1.7 GHz and 142 / 1.7 = 83, which is very close to
>> your 80 minutes.
>
>
> Yes, on release builds, the SATA makes little difference.
(+linaro-toolchain, which I dropped at the start)
I had a hack and set up a chroot on my Tegra 3 OUYA to run distcc.
With the Wandboard driving and a 'ninja make -j12', LLVM 3.3 built in
75 minutes (meh). You really need the 2 GiB of RAM - the 650 MiB left
on the OUYA plus the occasional four 250 MiB g++ hurts.
-- Michael
== Progress ==
* Nice holidays in Brittany.
- Wine, cheese, more wine, some beaches...
* ODroid buildbot still running...
- After a long and hot week with all windows close (room temp > 25C), the
bot has held stable no hotter than 63C and is running self-hosting
(partial+full build) without a single hiccup.
- I'd be very happy with them as buildbots (rather than Chromebooks)
- I'd also be very happy to test the ODroid X2 (octo-A15/A7)
== Plan ==
* Initial investigation on cross-compilation issues
* Liaise with ARM on divmod issue (some ideas on ValueInRegs floating
around)
== Progress ==
* 4 day week (off Thursday)
* Wrote a patch to fix gas NEON addressing mode bug and committed
* Submit and respin of glibc malloc tests and fixes
* Pushed cortex-malloc test and benchmark suite to git.l.o
* More malloc work
* Started wiki cleanup
== Issues ==
* None
== Plan ==
* Further malloc work
* Get glibc patches applied upstream
* Complete wiki cleanup
--
Will Newton
Toolchain Working Group, Linaro
Progress:
* QEMU maintenance:
** versatile-pb PCI: sent kernel patchset, so this is off
my queue now unless there are problems in review
** interviewing candidates for Linaro QEMU position
** sent pullreq for various accumulated QEMU patches now 1.7
development has opened up
** booked travel, hotels for Connect USA, KVM Forum
-- PMM
Hi,
I was trying to build a gcc-linaro that targets AArch64 (mostly
following guides such as http://jk.ozlabs.org/docs/arm64-toolchain/) and
failing, to be short and simple. Unfortunately I don't have the errors
I was encountering to hand, so instead I'll ask: Is the build process
for building aarch64-linux-gnu-gcc and friends documented anywhere?
Cheers,
mwh
== Progress ==
* Spent a couple of days studying existing patches and code changes made
for reverse debug support.
* Evaluated record n replay and reverse debug support by testing these
features in various configuration with few forced code changes.
* Evaluated catch syscall patch by running it on chrome book.
* Finally submitted UK visa application. Spent a couple of days preparing
documents getting them attested and took the trip to UK visa application
center for application submission.
* Independence Day Public Holiday on 14th August.
== Plan ==
* Continue work on Reverse debug on arm major task next week is to study
arm documentation and identify changes required for thumb32 support in
process record and replay feature.
* Review and update TCWG Libraries and Dev tools wiki pages.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Understood the TCB datastructure. Sent a mail to the internal team on the
changes needed and where to put stack gaurd slot in TCB.
Got some comments from Matt. Worked on the changes in eglibc.
Tested a simple stack smashing program in V8 model by moving
the patched run time linker and glibc. Sent the RFC internally for review.
* 4 day week 15-August India naional holiday.
== Plan ==
* Post RFC patch for Libssp support for AArch64 in GCC and glibc TCWG-23
* Continue testing the patch for Libssp support for AArch64 in GCC and
glibc TCWG-23
* Backport and test revision 201406 to linaro branch.
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more.
* Waiting for Marcus feedback for Matt comments on gprof patches TCWG-20.
Misc
------
23-August availing leave.
== Progress ==
* spec2k comparison between ARM and x86
- Trying to reproduce some of the earlier optimization studies
- Set up Acovea Trying milepost gcc
* VRP based zero/sign extension elimination
- Posted the modified patch
== Plan ==
* Continue with spec2k comparison between ARM and x86
* Wiki Cleanup
== Progress ==
* Made it back from the Tetons after a rainy climbing trip
* Helped Vish with #357
* Cbuildv2 improvements for cross builds and binary releases
* Wrote script to for better Jenkins support
* Added more user parameters to Jenkins config page for building
toolchains.
== Plans ==
* More work on Cbuildv2 for building binary releases
* Write more Cbuildv2 docs
* More help on #357
* Start going through Wiki pages
* Investigate lava-tool so Cbuildv2 can use Jenkins slaves remotely
== Progress ==
* Short week (3 days off to move house)
* Submitted outstanding glibc patches after 2.18 release
* Wrote some glibc allocator tests which have exposed some minor issues
== Issues ==
* None
== Plan ==
* Complete glibc allocator tests and submit them
* Get malloc implementation functionally complete
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* 2013.08 4.8 release:
- completed achievable backports (postponed some with problems to
next release)
- created & uploaded release. Will be announced next week along with 4.7
- Matthias a reported a problem in c++/java
* Aarch64 frame layout: submitted sample code for internal discussion.
* Wiki cleanup: started
* trunk validation:
- continued to work on internal validation of trunk using our
compute farm (build+cross validation) to help catch regressions early.
- validating every commit seems too heavy currently
== Plan ==
next week off
== Progress ==
* Connect / LLVM Meeting
- Checking times, booking tickets, etc
* Divmod
- Some more divmod work, SelectionDAG changed enough to break my merge
- Since it's only 64-bit support, we'll postpone implementation for a
later date
- Internal discussions with ARM, trying to approach it in a different way
* Buildbots
- Investigating MCJIT test failure in buildbot
- Some other random breakages
- Testing an ODroid U2 as a buildbot, will leave it running for a week
non-stop
- Checking why ClamAV has different output on Chromebook vs.
ODroid/Panda/x86
* ODroid U2
- Testing ODroid vs. Chromebook / SDCard vs. External HD
- ODroid with SDCard is faster than Chromebook with External HD!
- The huge heat-sink, the possibility of adding a fan and its form factor
make it a really good candidate for a buildbot
* Background
- Meetings with ARM, LLVMLinux
- Interviewing potential candidates
- Reviewing & committing patches, discussions, etc.
* Cross-compilation
- Preparing the terrain to start investigation
== Plan ==
Another week off! :D
Progress:
* v7 mach-virt upstreaming:
** sent out an RFC patchset implementing '-cpu host' for QEMU for v7 CPUs
* QEMU maintenance:
** versatile-pb PCI issues came up again; testing kernel patches etc
-- PMM
Is there a way to generate A32 code with the gcc-linaro-aarch64- compilers? I looked at the bare metal and linux 2013.07 versions, but didn't see a way to do this.
Also, the compiler doesn't complain about -mcpu=cortex-a53 or -mcpu=cortex-a57, but I get unknown cpu errors from the assembler for these options. It looks like it is the case today that there is just generic v8 code generation and more specialized code generation will come later. Is that right?
Thanks, Don
== Issues ==
* None
== Progress ==
* Investigate and close lp:1208945 and lp:1210713.
- For lp:1208945, libc.so.6 should be at /lib/arm-linux-gnueabihf.
- For lp:1210713, aufs is not a part of standard linux kernel release.
But aufs is supported by Ubuntu release. So maybe need it for future
releases.
* Conditional compare
- Enhance reassoc pass to handle conditional compare
- Investigating bootstrap issue when expanding conditional compare to
optimized RTL.
* Investigate LDTS tickets about multilib build issues.
- Local builds are OK for Linaro GCC 4.7 and 4.8.
== Plan ==
* Send out the conditional compare patches for review.
== Panned leaves ==
* Aug. 19-20: annual leaves
* Sept. 3-5: internal meeting.
Folks,
This week I acquired an ODroid U2, which is an Exynos4 (quad-core A9 at
1.7GHz each), 2GB RAM, and a massive heat-sink (which even has power supply
for a fan).
I ran some ball-park compilation time benchmarks, comparing to the
Chromebook, and the results are interesting. The ODroid with an SDCard
(32GB Sandisk Ultra HC-1) is faster than the Chromebook with an external
USB 3.0 / SATA hard-drive.
LLVM Build Times (min)ChromebookODroidODroid-USBBuild1008180Check-all545
Test-suite424038
The test-suite and check-all results are statistically equivalent, but the
build time is better because of the number of CPUs, but not twice better.
Disk is more of an issue on the test-suite, which can be clearly seen above
(-j2 for Chromebook, -j4 for ODroid, but same time).
My USB stick is not the best, so that doesn't mean much. Also, I can't get
the ODroid to even recognize the SATA disk when I plug in because of the
power it needs. So, we'll have to do with those numbers. I'm using the
ODroid Ubuntu image (based on 13.04), which worked out of the box (except
the SATA disk and HDMI).
I'll let the board run for a week at home (room temperature ~ 25C) as a
buildbot, with the fan on all the time and see if it copes with constant
load for such a long time. Pandas couldn't do that, Chromebooks can.
Since the ODroid U2 is a dev board, which has a small form-factor, can be
turned on/off remotely and won't sleep when the lid is closed, has a decent
Ethernet port (Chromebook's wired adapters are *horrible*, and having
dozens of Wireless clients in the lab is just not possible), and don't have
the risk of being turned off by someone else, like the Calxedas, I'd say
that it might end up as the best buildbot yet. (The new XU is an Exynos5
octo-core monster, might be even better).
After the initial week load test, if all goes well, I want to bootstrap GCC
and run some tests on it, so I'll be calling for volunteers to help me.
cheers,
--renato
== Progress ==
* 2013.08 4.8 release:
-- merged many backports
- sorted a few dependencies problems between patches
- spawned all intermediate jobs (ie merge commits) to make sure
there was no regression
* 2013.08 4.7 release:
- made a trial branch merge to confirm that all builds succeed
(Matthias reported a build failure for aarch64)
* trunk validation:
- continued to work on internal validation of trunk using our
compute farm (build+cross validation) to help catch regressions early.
== Plan ==
* 2013.08 4.8 release:
- final backports
- actual release
* Resume work on aarch64 frame layout.
* Resume work on disabling peeling.
Last week
* tried cbuildv2 and sent Rob some bug fixes, bug reports, and feature requests
* ported previous testsuite fixes to trunk
This week
* send patch to gcc-patches
* find the next thing to fix
Issues
* need to take desktop PC back to supplier to fix CPU overheating
== Progress ==
* Finished gdb catch syscall support work and performed testing on ARM
and x86. Trying to eliminate a couple of testsuite failures on arm.
* Short week due to Eid Holidays.
== Plan ==
* Evaluate arm catch syscall support patch recently submitted by some
other developer.
* Work on reverse debug support on arm.
* Independence Day Public Holiday on 14th August.
* Getting documents ready and attend UK Visa appointment on 15th August.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Patch was tested for aarch64-none-elf and passed. Sent for internal review.
Looking at supporting stack guard in glibc. Understanding TCB data structure
and looking at ports on how they initialize the stack guard in th TCB.
* TCWG-20 gprof support patches.
Reply to Marcus comments and rework and code mcount routine in assembly.
Ref: http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00148.html
== Plan ==
* Continue Libssp support for AArch64 in GCC and glibc TCWG-23
* Update review comments and upstream gprof patches
== Issues ==
* LTO/PGO work stopped now since libssp support priority is more
Misc
------
15-August Public holiday in India.
== Issues ==
* No idea to fix eglibc backtrace issue.
== Progress ==
* Commit (FSF 4.8 and trunk) the fix for lp: 1189445/1208676.
* Enhance Linaro crosstool-ng:
- Fix gcc respin version issue in README.
- Update big-endian multiarch triplet name.
* Investigate eglibc backtrace issue:
- Test case: linaro-crosstool-ng/contrib/linaro/tests/misc/sort.c.
- gdb report: Backtrace stopped: previous frame identical to this
frame (corrupt stack?)
- Try to rebuild eglibc with gcc 4.7 and -gdwarf-2. But still not work.
* Conditional compare
- Send for Linaro internal review.
- Workaround a new fail case.
- Test the prototype on x86-64 port.
== Plan ==
* Conditional compare RFC review.
== Panned leaves ==
* Aug. 19-20: annual leaves
* Sept. 3-5: ARM internal meeting.
== Progress ==
* spec2k comparison between ARM and x86
- Read papers/documents that list gcc optimization/problem for arm
- Acovea runs fails in Chromebook; Looking into it
- continuing with analysing individual results
* VRP based zero/sign extension elimination
- Final checks ongoing before posting the patch
== Plan ==
* Continue with spec2k comparison between ARM and x86
* post VRP based zero/sign extension elimination patch
== Misc ==
* Was on Leave Thursday/Friday (3 Day week)
* Watched Cauldron 2013 archives
== Progress ==
* Lots more malloc work, slowly progressing
* Created a patch queue in preparation for glibc coming out of freeze
* New strlen code
* Other bugfixes and minor improvements
== Issues ==
* None
== Plan ==
* Move house (Wednesday and Thursday off)
* Submit glibc patches
* Get malloc implementation functionally complete
--
Will Newton
Toolchain Working Group, Linaro
Progress:
* v7 mach-virt upstreaming:
** sent out mach-virt patchset for v7
** thinking/discussions about how to handle the host maybe not being
able to provide a guest CPU; this has converged on a sensible design
based around using "-cpu host" to mean "please give me a VCPU that's
the same as the host's CPU"
** review of the OVS v2 aarch64-kvm-support patchset
* QEMU maintenance:
** rebased qemu-linaro on upstream master
** fixed some minor bugs revealed by clang warnings
** wrote and sent out a cleanup patchset which removes the now
unnecessary 'arm_pic' shim around the CPU
** implemented debug logging of exceptions/interrupts for ARM TCG
(helpful for identifying when a guest has gone into an infinite
loop of taking exceptions)
-- PMM
== Progress ==
* Cbuildv2 can now do a full cross toolchain build ala crosstool-ng.
* Cbuildv2 integrated to work under LAVA team's Jenkins for
automated cross builds.
* Cbuildv2 now allows one to select the version of each toolchain
component.
== Plans ==
* Add support to Cbuildv2 to run 'make check' and create XML files
for MySQL and Junit (which Jenkins uses).
* Add newlib building support to Cbuildv2 as part of "--build all".
== Leave ==
* Off to climb Grand Teton in Wyoming, taking long weekend.
- rob -
When the OMAP I2C controller is operated in master mode, setting the
STP bit in the CON register instructs the controller to generate an I2C
stop condition only after the programmed number of bytes has been sent
on the I2C bus. The current code in QEMU ends the I2C transfer without
first sending the pending data instead.
Fix the above issue, and let the I2C transfer be ended in
omap_i2c_fifo_run(), after the count of bytes to send has reached zero.
Signed-off-by: Francesco Lavra <francescolavra.fl(a)gmail.com>
---
Without this patch, the controller driver in Linux is unable to send
data on the I2C bus, and when the controller triggers an IRQ after
having started an I2C transfer, the XRDY flag in the STAT register
remains always asserted, leading to an endless loop which eventually
results in a kernel oops.
hw/i2c/omap_i2c.c | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/hw/i2c/omap_i2c.c b/hw/i2c/omap_i2c.c
index cfaac07..17d4037 100644
--- a/hw/i2c/omap_i2c.c
+++ b/hw/i2c/omap_i2c.c
@@ -521,10 +521,6 @@ static void omap_i2c_write(void *opaque, hwaddr addr,
omap_i2c_fifo_run(s);
}
omap_i2c_interrupts_update(s);
- } else if (value & 2) { /* STP, but not STT */
- i2c_end_transfer(s->bus);
- s->control &= ~0x0602; /* MST | TRX | STP */
- s->count_cur = s->count;
}
}
break;
--
1.7.5.4
Last week
* Wrote up notes on gcc cross-compiler building (WIP:
https://wiki.linaro.org/WorkingGroups/ToolChain/BuildingGNUToolchains)
* started looking at gcc test suite
This week
* produce at least one fix for a gcc testsuite test problem
* book LCU13
* with luck, receive new laptop
== Progress ==
* 2013-08 4.8 release:
- Reviewed merge requests sent by Yvan.
A few instabilities in x86/x86_64: re-spawned jobs came back clean.
Unexpected improvements in a9: actually the reference had
unexpected regression; re-spawned reference job came back clean.
- prepared another series of backports; had to dig history to find
missing dependencies.
== Plan ==
* 2013.08 4.8 release:
- merge approved backports
- merge fsf-4.8 branch
* 2013.08 4.7 release:
- merge fsf-4.7 branch
* Resume work on aarch64 frame layout.
* Resume work on disabling peeling.
== Progress ==
* Generated arm syscall xml file for gdb and made few code changes in
arm-linux-tdep for catch syscall support on arm TCWG-182.
* Ran reverse debugging test suites on arm with arm/thumb and mix mode.
== Plan ==
* Short week due to EID holidays
* Try to Complete code changes and perform testing on arm/x86 for gdb
catch syscall support for arm TCWG-182.
== Progress ==
* Libssp support for AArch64 TCWG 23:
Basic support is enabled by default when frame is made to grow downwards.
Wrote machine descriptions for stack_protect_set and
stack_protect_test to override this default behavior.
Testing the patch internally.
Plan is to emit instructions as RTL instead of template and see
which approach is better.
* Look at builtin return address behavior in the absence of frame pointer:
For X86_64 usage if __builtin_return_address(n) n>0 and
-fomit-frame-pointer results in undefined behavior.
Discussed with Marcus and Andrew (mail chain) and decided not to
touch __builtin_return_address(n) where n>0.
Decided to leave it as return 0 for frame number other than current frame.
* TCWG-20 gprof support patches.
Re-implemented gprof patches without builtin_return_address usage
for frame number n >0.
The "mcount" in glibc needs two arguments. The "mcount" routine
will be emitted by GCC with an argument to previous frame return
address.
And in the glibc "mcount" routine will be modified to use
builtin_return_address(0) for the second argument.
http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00148.html
Waiting for comments.
Matt suggested to try and return a label address inside the function
while generating mcount. But profiling code is expanded before any
local labels are generated.
Also need to research more on this approach. So stopped and decided
to use simpler approach.
== Plan ==
* Continue Libssp support for AArch64 TCWG-23
* Update review comments and upstream gprof patches
==issues==
* LTO/PGO work stopped now since libssp support priority is more
Misc
------
09-August Public holiday in India.
== Progress ==
* Worked on integrating Cbuildv2 with Jenkins, an automated build
system used by the LAVA team.
- Uses cbuildv2 to fetch, configure, build, and install a C
toolchain
cross or native build.
* Wrote a script to convert DejaGnu sum files into Junit format, which
can be imported into Jenkins for viewing. Initial test is online at:
https://ci.linaro.org/jenkins/view/toolchain/job/junit-parsing/.
A work
in progress, and Jenkins is a bit limited in the allowed test
results.
* Did expense reports for Connect - Cauldron trip.
== Plans ==
* Refactor how cbuildv2 dependencies for packages are handled so
they work more than one level deep.
* Have cbuildv2 build C++ after eglibc.
* More Jenkins integration.
* Work on wiki pages.
- rob -
== Progress ==
- Addressed VRP based zero/sign extension elimination review comments
- Make check passes but spec2k gcc fails in results comparison;
investigating it
- Started again with spec2k comparison for ARM to see potential
optimization opportunities
- Installed libacovea in Chromebook with some tweaks to study affects
of optimization options
== Plan ==
- post the VRP based zero/sign extension elimination patch
- continue with pec2k comparison for ARM
== Misc ==
- Was on holiday until 29th (4 day week)
== Issues ==
* None
== Progress ==
* Validate and release Linaro toolchain binaries 2013.07.
* Commit the fix for pr57637.
* Revise patch and test case for lp1189445.
* Separate conditional compare changes to small patches and test.
* Send out the patch of "Reassociate X == CST1 || X == CST2 if
popcount (CST2 - CST1) == 1 into ((X - CST1) & ~(CST2 - CST1)) == 0"
for internal review.
* R/M toolchain internal release work.
== Plan ==
* Send out the conditional compare patches for review.
== Planned leaves ==
* Aug 19-20.
== Progress ==
* Divmod 64
- Got generic lowering working, with an ugly hack
- Working on custom lowering with new node types
* Testing the SLP vectorizer on O3 and O2
- Found some regressions, need to investigate
- It's going to be on by default on O3 from now on
* SLP vectorizer introduced by default on O3
- Lots of failures in ARM test-suite due to illegal vector types
- Fixed on patch r187658
== Issues ==
Had a bit of a problem with my tooth, had to stay away for a while... put
me away from working on divmod properly... :(
== Plan ==
HOLIDAYS!!!
Progress:
* v7 mach-virt upstreaming:
** implemented architected timer support for TCG, sent patches
** nearly finished cleanup of mach-virt including adding virtio support
** ran into an odd bug where putting RAM not at address zero results in
the kernel not booting -- need to debug
** once that is fixed should just need to do final testing and send patches
Plans:
* look at OVS' v2 a8-kvm-support patches
-- PMM
== Progress ==
* Libssp support for AArch64 TCWG 23
Discussed with Matt and decided to assume "glibc" will export canary
guard variable in TCB, for aarch64.
It will export it as global variable for 32 bit. Working on top of
Christophe patch that make frame grows downward.
* Look at builtin return address behavior in the absence of frame pointer.
For X86_64 usage if __builtin_return_address(n) n>0 and
-fomit-frame-pointer results in undefined behavior.
In Ubuntu 12.04 the native GCC 4.7.1 resulted in segmentation fault
on x86_64 machine for such a test.
Currently planning to close this as undefined behavior in aarch64 as well.
Discussing with Marcus on this.
* TCWG-20 gprof support patches.
Re based with latest trunk and regression tested.
http://gcc.gnu.org/ml/gcc-patches/2013-07/msg01352.htmlhttp://gcc.gnu.org/ml/gcc-patches/2013-07/msg01333.html
Misc
* Tuesday spent on Internal (AMD) work.
== Plan ==
* Continue Libssp support for AArch64 TCWG-23
* Update review comments and upstream gprof patches
==issues==
* LTO/PGO work stopped now since libssp support priority is more.
== Progress ==
* Completed initial investigation on catch syscall support on arm TCWG-182.
* Looked into dwarf assembler to generated architecture independent
debug information for dwarf2 test cases.
* Resolved some gdb.mi configuration issues due to which some test
cases were failing.
* Review status of GDB testing on arm and filled up JIRA with proposed
future work.
== Plan ==
* Continue work on gdb catch syscall support for arm TCWG-182.
* Background task: Understanding dwarf assembler to generate dwarf2
debug information for architecture test cases.
* File UK visa for meetings in September after receiving invitations.
== Progress ==
* Produced spec2000 benchmark data on panda for fsf-4.7, fsf-4.8,
gcc-linaro-4.7, and gcc-linaro-4.8.
* Helped Charlie get stared with building the toolchain.
* Found "experimental" option that got crosstool-ng actually working.
* Got cbuildv2 now doing much of the process crosstool-ng does for
a complete stage1 build.
* Improved native and cross toolchain builds via cbuildv2.
== Plans ==
* Continue working on cbuildv2 till it's usable by others.
* Looks like I have a pile of new wiki pages to write.
== Progress ==
* Induction and set up work environment
* Started investigating how to build gcc cross compilers, so that it can be
documented clearly [TCWG-190 <http://cards.linaro.org/browse/TCWG-190>]
* I can build a working arm-none-linux-gnueabi crosscompiler, and
understand each of the steps involved
* Using the same method, aarch64-none-linux-gnu does not build
== Issues ==
* None
== Plan ==
* Write up knowledge gained so far
* Find out why aarch64 doesn't work
* Find out more about other build variations (multilib/multiarch etc) and
how that affects what I've done so far
== Progress ==
* Backported aarch64 string functions and ARM gcc 4.8 fix in eglibc.
* Released eglibc 2.17 2013.07-2.
* Forward ported binutils AArch64 IFUNC patches to HEAD so Marcus can test them.
* Closed stack guard JIRA card and made a new one for pointer guard.
* More malloc benchmarking, reading etc.
* Started work on malloc code.
* Booked flights for LCU13!
== Issues ==
* None.
== Plan ==
* Deal with any test feedback on IFUNC patches.
* malloc
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Looking at 64-bit divmod on two fronts:
- Clean, but intrusive on target-independent code
- Dirty and duplicated, but restricted to target-specific code
* Long discussion about the purpose of the IR on the LLVMLinux list
* Watching some GNU Caldron videos
== Plan ==
* Continue looking at divmod for 64-bit values
* Start investigating cross-compilation issues
* When Rob is ready, have a look at CBuild2 for LLVM+Benchmarks
Progress:
* started on getting v7 mach-virt into shape for upstreaming:
doesn't currently work on TCG due to missing architected timers emulation
* sent fixes for some minor bugs in virtio-mmio noticed by reviewers
* support for various people for "I tried to boot linux in QEMU/KVM
and nothing happens" issues. This is usually because of a misconfigured
kernel which is either not sending serial output to the right place
or stopped with an error before the point where serial is set up.
However it's pretty awkward for users to debug especially compared
with x86 which doesn't generally have these issues because all x86
hardware is sufficiently the same that console and/or earlyprintk
just about always works.
* started the conversation on kvmarm about what the CPU in a KVM VM
ought to look like (always same as host? always an A57? always some
"generic VM CPU"? do we care (does the OS care?) that it has a GICv2
when the same CPU in h/w has a v3)
* came up with a clever hack for making QEMU QOM object struct fields
be only accessible to the object's implementation and not its users,
using gcc's "deprecated" attribute and some CPP macros.
-- PMM
### About Linaro eglibc
Linaro eglibc is a release of the eglibc C library with bug fixes and
enhancements for ARM platforms. eglibc is a variant of the GNU libc
designed to work well on embedded systems.
### Linaro eglibc 2.17 2013.07-2
The Linaro Toolchain Working Group is pleased to announce the 2013.07-2
release of Linaro eglibc 2.17, the second release in the 2.17 series.
This release is based on the latest upstream eglibc 2.17 stable branch,
but with additional features and bug fixes.
#### Additional Features
* Faster ARM memcpy implementation for hardware with NEON or VFP support.
* Optimized string functions for AArch64: memcmp, memset, memcpy, memmove,
bzero, strcmp, strlen, strnlen, strncmp.
#### Bug Fixes
* None
### Source
#### Release Tarball
* https://releases.linaro.org/13.07/components/toolchain/eglibc-linaro
#### Development Tree
* git://git.linaro.org/toolchain/eglibc.git
This release was built from the `linaro_eglibc-2_17-2013_07-2_release` tag.
### Feedback and Support
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`
* Questions? [ask Linaro](http://ask.linaro.org/).
* Interested in commercial support? inquire at [Linaro
support](mailto:support@linaro.org)
--
Will Newton
Toolchain Working Group, Linaro
Hi,
I am new to the linaro toolchain and have two questions don't find an
explicit answer. Help you experts can help.
1. Can I use linaro arm toolchain to build application for armv5t core?
My box is a arm926ejs.
2. Does anyone has experience in making linaro current version work with
buildroot? I tried, but got a lot of strange error. (maybe it is the
same problem as question 1, since I set my cpu as arm925t in buildroot).
Thanks in advance.
--
I can't go back to yesterday - because I was a different person then
The Linaro Toolchain Working Group announce the 2013.07-1 Linaro GCC
4.8 release. This is a respin of the 2013.07 release because of an
issue with internal memcpy and -mno-unaligned-access.
The source tarball is available from:
https://launchpad.net/gcc-linaro/+milestone/4.8-2013.07-1
Please find the original 2013.07 announcement below.
The Linaro Toolchain Working Group is pleased to announce the release
of both Linaro GCC 4.8 and Linaro GCC 4.7.
Linaro GCC 4.8 2013.07 is the fourth release in the 4.8 series. Based
off the latest GCC 4.8.0+svn200355 release, it includes performance
improvements and bug fixes.
Interesting changes include:
* Updates to GCC 4.8.1+svn200355
* Address Sanitizer support for ARM.
* New -mrestrict-it option support.
* Backport of support for further AArch64 instructions.
* Backport of support for further ARMv8 AArch32 instructions.
* Reverted recent changes to shrink-wrapping and tail-calls.
Linaro GCC 4.7-2013.07 is the sixteenth release in the 4.7
series. Based off the latest GCC 4.7.3+svn200408 release, this is the
third release after entering maintenance.
Interesting changes include:
* Updates to GCC 4.7.3+svn200408
The source tarballs are available from:
https://launchpad.net/gcc-linaro/+milestone/4.7-2013.07https://launchpad.net/gcc-linaro/+milestone/4.8-2013.07
Downloads are available from the Linaro GCC page on Launchpad:
https://launchpad.net/gcc-linaro
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Bugs: https://bugs.launchpad.net/gcc-linaro/
Questions? http://ask.linaro.org/
Interested in commercial support? inquire at support(a)linaro.org
== Progress ==
Was on vacation most of the week Mon - Wed leave (Thursday half day).
* Libssp support for AArch64 TCWG 23
Restarted the work. Looked at how X86 GCC generated code. Looking at
per thread support for libssp and compiler support.
== Plan ==
* Continue Libssp support for AArch64 TCWG-23
* Look at builtin return address behaviour in the absence of frame pointer.
==issues==
* LTO/PGO work stopped now since libssp support priority is more.
== Issues ==
* None.
== Progress ==
* Attended linaro Connect (Wk 28)
* OE Launchpad bug #1200620 :
[ICE while building Exynos5 kernel with current 4.8 branch]
- Issue due to a bad usage of unaligned load/store in HI mode
- Fix approved and committed upstream
- Release respin ongoing.
* Launchpad bug #1186218 :
[kernel doesn't boot on Arndale/Nexus with Linaro GCC 4.8]
- Discussed the issue at Connect
- Waiting for a reduce testcase from the kernel team.
* LRA on AArch64:
- Some regressions in the testsuite
- Debugging ongoing.
* LRA on AArch32:
- Still some issues with libgcc build in Thumb
- Back on this issue.
* 2013-08 4.8 release:
- Backports from trunk ongoing.
== Plan ==
* 4.8 Backports
* Summer break
== Progress ==
* Debugged gdb.mi and linux-nat code to investigate issues on arm.
* Cleared pending gdb patches.
* Listened to Connect sessions and key notes on youtube
* Follow up on travel hick ups and UK/US visa application
== Plan ==
* Review GDB current status and fill up JIRA with proposed future work
* Windup work on gdb test suite updates and submit remaining patches.
* Follow up on gdb patches
* Clear/Update JIRA cards
* File UK visa for meetings in September.
== Progress ==
* Attended Connect, did presentation and other stuff.
* Left Connect early to attend the Gnu Tool Cauldron. Ran BOF on
testing the toolchain, attended many talks including the one on
Graphite.
* Worked on modularizing cbuildv2 package parsing into functions so
bzr,svn,git URLs and tarball snapshots from toolchain64 work the
same.
* Added LLVM support to cbuildv2, Clang and the testsuites only work
if built separately for now.
* Reproduced build problem Viswanath was having with crosstool,
Zhenqiang knew the missing package(s) that kept C++ builds from
working.
* Built fsf 4.7 and 4.8 as well as Linaro GCC releases for July on Panda
board.
* Got spec200 benchmarks working on panda, ran them for the above
branches and releases.
== Plans ==
* Help Charlie come up to speed on building GCC.
* Run more benchmarks on the above branches and do graphs on
performance.
* See why for me on a panda, all the tests fail with make check.
* Find time to work on cbuild2 so Charlie can beta test it sometime
soon.
- rob -
== Issues ==
* None
== Progress ==
* Enable multi-arch for Linaro aarch64-linux-gnu build.
- Configure gcc with --enable-multiarch.
- Backport eglibc patches for rtlddir.
- Configure eglibc to set libdir, slibdir and rtlddir.
* Follow up the patch for pr57637.
* Reassociate X == CST1 || X == CST2 if popcount (CST2 - CST1) == 1
into ((X - CST1) & ~(CST2 - CST1)) == 0.
- Test is ongoing.
* Rebase conditional compare changes to trunk.
== Leave ==
* July 17.
== Plan ==
* Send out the conditional compare changes for Linaro internal review.
== Progress ==
Short week (3 days)
* Divmod
- Finished most of the work, patch upstream (r186390)
- Trying to lower remainder as divmod without sacrificing the div+mod
merge during legalization
* Buildbots
- One panda fails even at 920MHz, replaced with a new one
- Using decent power supplies now, should work a whole week
- Lab config is messed up, need to start from scratch
- Failed at 920MHz with decent power supply
- Giving up on Pandas as buildbots...
* Background
- Not many code reviews last two weeks, as Connect and the Pandas took
most of my spare time
- Test-suite's Lencod bug fixed upstream, no more need of dirty hacks on
stack offset calculation
== Plan ==
* Continue on divmod lowering, finding a way to merge Custom with Expand
lowering, so not to break the div+rem merge during legalization, but still
lower divmod as Custom. 64-bit types still use them.
* Study cross-compilation issues in Clang and LLVM, prepare a document on
how it works (or not), and what paths we can take to make it better in the
short/medium term.
* Follow up on Phoronix results and CBuild2 benchmarks, time allowing
== Progress ==
* Investigating glibc stack guard support
* Developed initial patches
* Raised ABI issue
* More malloc work
* Integrated tcmalloc into benchmark framework
* Improved benchmark repeatability
* Added Python benchmark script and graphing script
* Respin and commit gdb TLS testsuite patch (my gdb patch queue now empty)
* Committed two of Omair's gdb patches
== Issues ==
* None.
== Plan ==
* Produce some malloc benchmark graphs
* Progress the stack guard work
* Start writing some malloc code
--
Will Newton
Toolchain Working Group, Linaro