== 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