== Progress ==
* Re-wrote gdb.dwarf2/dw2-error.exp and gdb.dwarf2/clztest.exp for arm.
* Investigated catch syscall patch in gdb patches to narrow down changes
required for arm.
* Continued with gathering documentation for future visas.
== Plan ==
* Test and fix failures due to optimization code in gdb.dwarf2/clztest.exp
for arm.
* Figure out a way to generate arm assembly for dwarf2/fission* gdb tests
using gcc.
* Further investigation arm requirements by going through catch syscall
patch for gdb on x86.
* Work with James to start UK and US visas for future visits.
Most of Last week spent on internal AMD work.
== Progress ==
* AArch64 LTO and PGO support.
LTO run for coremark and ran coremark on V8 model with and without the patch.
Ran perf on the model against the both the coremark binaries.
For non LTO, retired instructions seems to be less than the LTO one.
And PGO run for coremark did not emit any gcda file. Need to drill down further.
* AAarch64 testing
GCC runs still on going. Experimenting on spawning subtarget tests to
more than one V8 model.
== Plan ==
* Complete gcc testsuite with runs with trunk and trunk+gprof GCC patches.
* Continue LTO and PGO runs for AArch64
==issues==
* libssp support for AArch64
This work is currently in hold. Needed frame layout changes before
restarting.
== Progress ==
* spec2k comparison between ARM and x86
- Specfp on x86 has some failures in trunk
- Trying 4.8 now
- Analysed some of the benchmarks and documenting them
- continuing with the rest.
== Plan ==
* Continue with spec2k comparison between ARM and x86
== Issues ==
* None
== Progress ==
* Investigate big endian toolchain build in Linaro crosstool-ng.
- Fix an aarch64 triple name issue.
- Add Linaro armeb-linux-gnueabihf, aarch64_be-linux-gnu and
aarch64_be-none-elf configs for big endian builds.
- Please find the reference builds at:
http://cbuild.validation.linaro.org/build/crosstool-ng-linaro-1.13.1+bzr258…
* Design a test case for lp1189445 and revise the patch for review.
* Revise the shrink-wrap related fix for pr57637 and send out for review.
* Investigate lp:1194501 and lP:1194123
- lp:1194501 is confirmed a "tail call" issue, and also in trunk pr57731.
- lP:1194123 seams shrink-wrap related, since the case pass with
option -fno-shrink-wrap.
== Plan ==
* Continue on conditional compare.
Best Regards!
-Zhenqiang
== Progress ==
* Divmod patch
- Trying to regain knowledge about the SelectionDAG infrastructure
- Working with Tim and Joey, got a patch working, but seen some failures
in test-suite
- Will investigate and submit when all is clear
* Lencod in LNT
- Bug is a mix of ByVal with wrong spill offset, teams interacting
- Bug fixed by a side effect of another change, can't guarantee future
stability
* CBuild
- Patch merged, fired another LLVM benchmark, which failed the same way
- Not sure how to proceed here...
- Should I dig deep on the old CBuild?
- Or should I wait for CBuild2?
* Release Maintenance
- Talks about maintenance of old/current releases sparking on the list
- Bots, tests, benchmarks, release process will have to be followed for
those releases
- Binary & API compatibility kept, performance doesn't matter much, only
serious bugs fixed
- This will increase the cost of background duty on our team
* Other
- Reviewing some more patches
- Checking impact of a new alias analysis in the loop vectorizer, all good
- EuroLLVM 2014 meeting
- Long discussions about pre-UAL support in LLVM: Short answer: no.
- Someone else will look at PerfDB analysis, one less thing to do
- Got the Buildbot Pandas home, will look at them next week
== Issues ==
* After using all my RAM all the time, for a week, I found a fault on it
which prompted kernel panic and stopped my laptop from booting. Luckily, it
was just one of the two chips, and even better, it has a lifetime
guarantee! But I'll only get a new one after Connect... :(
== Plan ==
* Finish implementation AEABI divmod/udivmod calls
* Carefully analyse what's the best configuration for the pandas and
produce a pre-packed image
* NOT put them back before they're stable, snapshot a known good
configuration
* But put TWO pandas as self-hosting (and leave Galina's alone)
Time allowing...
* Check why Phoronix result pages are not working
* Write about target-specific tests on TestingGuide.rst
* Write a thing or two about the optimization levels in LLVM for the
official docs
== Progress ==
* Some further work on AArch64 ifunc failure, no progress.
* Add some extra features to cortex-strings plotting capability.
* More memcpy gerrit review.
* Basic framework for testing and benchmarking malloc.
* Extracted glibc malloc from glibc.
* Pushed memcpy performance tweak to cortex-strings and newlib for review.
== Issues ==
* None.
== Plan ==
* Prepare for Connect.
* Resubmit memcpy to gerrit as requested.
* Respin AArch64 ifunc patches against latest head.
--
Will Newton
Toolchain Working Group, Linaro
Progress:
* VIRT-49 closed out (cp15 migration patches committed upstream)
* virtio:
** virtio-mmio patchset v1 now sent out to qemu-devel
* misc:
** fixed some instances of undefined behaviour (mostly shift related)
diagnosed by clang -fsanitize=undefined
** worked through upstream review backlog, sent target-arm and arm-devs
pullreqs
Plans:
* VirtualOpenSystems (sponsored by Huawei) have sent a patchset for
KVM support in QEMU for ARMv8; need to review this and reconcile it
with the Linaro work in progress in this area
* mach-virt
* preparation for Connect
-- PMM
== Issues ==
* None
== Progress ==
* Investigate conditional compare RTL representation.
- Fix new fails when expanding conditional compare to cmp_and/cmp_ior.
* Identify the root cause for pr57637.
== Plan ==
* Continue on conditional compare.
== Issues ==
* None.
== Progress ==
* OE Launchpad bug #1192953
- 4.8 g++ failed to find c++ included headers because of the
combined usage of --with-sysroot and --with-g++-include-dir
- Investigated the issue with Andrew McDermott
- found an existing OE workaround
* LRA on ARM and AArch64:
- Fixed AArch64 failure
- Moved to the new one
* Cbuild Babysitting
== Plan ==
* Merge review
* LRA
== Progress ==
* Started re-writing x86 assembly language gdb test cases for arm.
* Debugging watchpoints code to investigate issues on arm.
* Upgraded chromebook Ubuntu installation to a faster SD card.
* Tried to resolve various travel hurdles. Gathering different kind of
documents for future travel, submitted passport for extension etc.
== Plan ==
* Submit more gdb patches to mailing list.
* Wind up work on translation of gdb test cases in arm assembly.
* Further investigation about watchpoint issues on arm.
* Work on filing US and UK visit visas.
== Progress ==
* AArch64 LTO and PGO support.
Tweaked make file to run coremark on V8/openembedded model
Experimenting with PGO runs for coremark.
* AAarch64 testing
Set up Cross build and test in V8 model for GCC testsuites on one of
workstation in lab.
Completed g++ testsuite with V8 model for gcc trunk. Running gcc tests now.
* Installed Ubuntu 13.04 on Chrome book.
== Plan ==
* Complete gcc testsuite with runs with trunk and trunk+gprof GCC patches.
* Continue LTO and PGO runs for AArch64
* Linaro connect preparation, check VISA status.
==issues==
* libssp support for AArch64
This work is currently in hold. Needed frame layout changes before
restarting.
* Waiting for some inputs from Rob on Bootstrap issue with GCC on V8 model
== Progress ==
* Generate single call to divmod
- Addressed review comments
- Proposed a new patch for discussion
* spec2k comparison between ARM and x86
- Obtained Profile results for both architectures
- Analysing gzip and found some register allocation issues.
* VRP based zero/sign extension
- Still no review for rtl changes
- Pinged again
== Plan ==
* Continue with spec2k comparison between ARM and x86
== Progress ==
* Added support to cbuildv2 to handle merges from GCC trunk.
* Merged backports of 199694 199705 199733 199734 199739
199810 199814 199533 200019 200020 200061 200062 200096
200148 200152.
* Managed to survive making complex travel plans for the next few
weeks.
* Fixed eembc and denbench benchmarks so they work again.
== Plan ==
* Work on benchmarking & testing database, more graphs, write up
presentation.
* Fix running spec2000 benchmark, produce some results.
* Commit backports to svn as merges approved.
* Off on leave Wed till Connect. Will be 100% offline.
== Issues ==
* Backports of 199792, 199959 have major conflicts. Required patches
for these to be merged not in backports list.
* Turns out benchmarks have not worked for several months,
particularly spec2000 still doesn't want to run.
Still having the issue of FM/semi-hosting not catching seg-faults using
2013.06. With "aem-ve.specs", a fault seems to call main() repeatedly.
With "dimon.specs", FM hangs. Any ideas how to properly compile/deal with
faults in semi-hosting mode?
thanks,
Rory
=== hello.c ===
#include <stdio.h>
int
main(int argc, char *argv[])
{
printf("hello.\n");
* ((unsigned int *) 0) = 0; // cause seg-fault
return 0;
}
=== compile/run ===
.../gcc-linaro-aarch64-none-elf-4.8-2013.06_linux/bin/aarch64-none-elf-gcc -specs=aem-ve.specs -march=armv8-a -c hello.c
.../gcc-linaro-aarch64-none-elf-4.8-2013.06_linux/bin/aarch64-none-elf-gcc -o hello -specs=aem-ve.specs -march=armv8-a hello.o
.../Foundation_v8 --image hello --quiet --semihost-cmd=hello
hello.
hello.
hello.
hello.
hello.
...
== Progress ==
* Completed list of backports from trunk to linaro-4.8 for 2013.07
release and sent it to Rob.
* Merged backport of address sanitizer in linaro-4.8 branch
* Aarch64 frame growing downward: checking what really needs to be
changed in GCC. Documentation not very verbose :-)
* Various attemps to resurrect my old testsuite patch to be stricter
at excluding some unsupported configurations.
* Internal support
== Next ==
* Aarch64 frame growing downard.
* Disable peeling: make the vectorizer less aggressive
* Neon intrinsics/vuzip/veor: resume work
* Book hotel/flight for Connect.
== Progress ==
* Release 3.3
- Finally public
http://llvm.org/releases/download.html#3.3http://llvm.org/releases/3.3/docs/ReleaseNotes.html
* Pandaboard
- We lost two bots this week:
- linaro-panda-01: buildslave binary segfaults, needs fresh re-install?
- linaro-panda-02: GCC installation is broken, needs fresh install!!
- This means we need:
- At least two boards for each bot
- At least one extra board of each type, off-line to save power/space
- A standard Image on a gz file to flash & boot quickly, for each type
* Chromebook LNT
- Binary search on patch that broke the buildbot, found the culprit
- Reduced the problem, bug posted, discussing
http://llvm.org/bugs/show_bug.cgi?id=16393
* CBuild
- Built Clang+LLVM in CBuild, need benchmarks, sent a patch, waiting for
merge
* Phoronix results
- Adding them to internal (pw protected) website to avoid public confusion
- The numbers are meaningless for now and we don't want panic within the
general public:
http://people.linaro.org/toolchain-benchmarks/llvm/
- Visualization still broken. Works well only locally on Firefox. Why not
HTML? Why not PNG? Sigh...
* Administrativia / Others
- Lots of patches to review
- Auto-vectorizer now turned on by default on -O2 and -Os!
- Meeting with LLVMLinux folks, good progress, good plans, trying to get
more traction in that direction on Connect
- Trial of "ARM maintenance" backlog item:
http://llvm.org/bugs/show_bug.cgi?id=16387
== Plan ==
* Fix LNT bug
* Implement AEABI divmod/udivmod calls
* Try CBuild benchmark again (when patch merged)
* Carefully analyse what's the best configuration for the pandas and
produce a pre-packed image
* NOT put them back before they're stable
* But put TWO pandas as self-hosting (and leave Galina's alone)
* Check why Phoronix result pages are not working
Time allowing...
* Have a look at PerfDB
* Write a thing or two about the optimization levels in LLVM for the
official docs
== Progress ==
* Reverted AArch64 ifunc change while investiigation continues.
* Created TCWG-177 for gdb.thread testsuite failures.
* Merged new strlen code into cortex-strings and newlib.
* Applied a few more gdb patches upstream.
* Fixed a few bugs and added a few features to cortex-strings benchmarks.
* gerrit review of memcpy change ongoing.
== Issues ==
* None.
== Plan ==
* Reproduce AArch64 ifunc issue.
* Resolve gerrit memcpy review if possible.
* Start work on malloc test and benchmark framework.
--
Will Newton
Toolchain Working Group, Linaro
Progress:
* virtio:
** have some patches that work (including modifying the device tree
to tell the kernel where the virtio transports are)
** more cleanup still required; in particular need to figure out
nice way of having the board model tell boot.c where the transports
are and what the interrupt routing info should look like
** virtio spec needs clarification about what a virtio-mmio transport
with no backend is supposed to look like
* misc:
** fixed linux-user utimensat breakage caused by a patch of mine
from last week
** helped Grant Likely with debugging problems running UEFI on QEMU
(and caught a QEMU bug in the process)
** reviewed another round of LDA/STL patches and a VSEL patch
Plans:
* continue mach-virt/virtio work
-- PMM
The Linaro Toolchain and Platform Working Groups are pleased to announce
the 2013.06 release of the Linaro Toolchain Binaries, a pre-built version
of Linaro GCC and Linaro GDB that runs on generic Linux or Windows and
targets the glibc Linaro Evaluation Build.
Uses include:
* Cross compiling ARM applications from your laptop
* Remote debugging
* Build the Linux kernel for your board
What's included:
* Linaro GCC 4.8 2013.06
* Linaro Newlib 2.0 2013.06
* Linaro Binutils 2.23 2013.06
* Linaro Eglibc 2.17-2013.06 (Aarch64 only)
* Linaro GDB 7.6 2013.05
* A statically linked gdbserver
* A system root
* Manuals under share/doc/
The system root contains the basic header files and libraries to link your
programs against.
Interesting changes include:
* Linaro versions of Binutils, Newlib and Eglibc are included
The Linux version is supported on Ubuntu 10.04.3 and 12.04, Debian 6.0.2,
Fedora 16, openSUSE 12.1, Red Hat Enterprise Linux Workstation 5.7 and
later, and should run on any Linux Standard Base 3.0 compatible
distribution. Please see the README about running on x86_64 hosts.
The Windows version is supported on Windows XP Pro SP3, Windows Vista
Business SP2, and Windows 7 Pro SP1.
The binaries and build scripts are available from:
https://launchpad.net/linaro-toolchain-binaries/trunk/2013.05
Need help? Ask a question on https://ask.linaro.org/
Already on Launchpad? Submit a bug at
https://bugs.launchpad.net/linaro-toolchain-binaries
On IRC? See us on #linaro on Freenode.
Other ways that you can contact us or get involved are listed at
https://wiki.linaro.org/GettingInvolved.
Note: This will likely be the last release built with support for (e)glibc
2.15 on armv7. With future releases, you will have to either use a newer
(e)glibc on the target system, or link statically.
On Thu, Jun 20, 2013 at 2:41 PM, Thomas Petazzoni
<thomas.petazzoni(a)free-electrons.com> wrote:
> Hello,
>
> I'm facing a bizarre problem with an armeb toolchain built by
> Buildroot. I'm also posting this to the crossgcc@ list since there are
> some gcc/binutils experts out there.
>
> First, a little bit of background. ARM Big Endian comes into two
> variants:
>
> * BE32, which was used up to ARMv5, where both the instructions and
> the data are Big Endian.
>
> * BE8, which is used since ARMv6, where the instructions remain
> little-endian and only the data are big-endian.
>
> See
> http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0338g/ch06s0…
> for some details about this.
>
> So, I've built an ARMv7 Cortex-A8 toolchain, with the armeb
> architecture selected. The CROSS-gcc -v shows that it was configured as
> follows:
>
> --target=armeb-buildroot-linux-uclibcgnueabi
> --with-abi=aapcs-linux
> --with-arch=armv7-a
> --with-tune=cortex-a8
>
> Then, I wrote a simple program that contains some data and
> instructions, built it under several conditions, and observed with
> hexdump whether the data and code was little-endian or big-endian.
>
> And the results are somewhat surprising: when I explicitly pass
> -mbig-endian, I get the proper behavior (BE8 code with code in little
> endian and data in big endian), but when I don't pass any flags to the
> compiler, I get an incorrect behavior: both the code and data are big
> endian, as if the BE8 wasn't used (and readelf confirms that it wasn't
> used). See below the detailed results.
>
> Note that the compiler is supposed to automatically use BE8 on
> ARMv6/ARMv7 and BE32 on ARMv5 and earlier cores.
>
> The data is DEADBEEF, and the instruction is E52DB004.
>
> Flags used Observed data Observed code Comment
> ======================= =============== =============== =========================================
>
> -mlittle-endian EFBEADDE 04B02DE5 Code and data in LE -> OK
> -mbig-endian DEADBEEF 04B02DE5 Code LE, data BE, binary marked BE8 -> OK
> no flags DEADBEEF E52DB004 Data BE (ok!), code BE (*NOT* ok) -> NOK
> -march=armv5t -mbig-endian DEADBEEF E52DB004 Code and data in BE, on ARMv5 -> OK
> -march=armv5t DEADBEEF E52DB004 Code and data in BE, on ARMv5 -> OK
>
> As can be seen in this table:
>
> (*) On ARMv5, regardless of whether -mbig-endian is passed or not, the
> code produced is correct (both code and data are big endian, which is
> correct for ARMv5 where the big endian mode is BE32)
>
> (*) On ARMv7 however, the code is different whether -mbig-endian is
> passed or not, even though an "armeb-linux" compiler is supposed to
> generate big endian code by default. When no flags is passed, both the
> data *and* code are big-endian (so it's BE32 like on ARMv5), but
> passing -mbig-endian makes the thing behave properly (code is
> little-endian, data is big-endian).
>
> I'm using binutils 2.23.2 and gcc 4.7.3.
>
> Any ideas?
Hi Thomas,
I added linaro-toolchain to CC as there may be someone there who knows
the answer.
I got an app to compile fine for v8 FM with gcc, but I notice that
seg-faults hang the simulator. Using raise() properly exits FM,
but I can't seem to trap the seg-fault with signal() or do anything
intelligent to know about the seg-fault. Normal execution works well.
int
main(int argc, char *argv[])
{
* (unsigned int *) (0) = 0; // seg-fault hangs FM
return(0);
}
thanks,
Rory
-----Original Message-----
From: linaro-toolchain-boun...(a)lists.linaro.org
[mailto:linaro-toolchain-boun...@lists.linaro.org] On Behalf Of Matthew
Gretton-Dann
Sent: Sunday, May 19, 2013 2:47 PM
To: Padgett Don-B43265
Cc: linaro-toolchain(a)lists.linaro.org
Subject: Re: Semi-hosting on v8 Foundation Model using gnu tools
Don,
On 17/05/13 20:57, Padgett Don-B43265 wrote:
> The v8 Foundation Model User Guide has a bare metal hello world example
> that uses semi-hosting. The Makefile uses ARM tools, however. Is there
> equivalent support for this example using a bare metal version of the
> gnu tools, such as
> gcc-linaro-aarch64-none-elf-4.8-2013.04-20130422_linux.tar.xz? I took
> a look, but didn't see a way to do this.
It is possible but not necessarily easy.
Using the binary tools you've downloaded you will want to do something like the
following:
aarch64-none-elf-gcc -specs=elf-aem-ve.specs ...
The -specs option has to be on all your invocations of GCC and G++. You should
also invoke the linker through GCC with this option.
Then you need to invoke the model, given an image called foo.axf:
Foundation_v8 --image foo.axf --semi-host="foo.axf OPT1 OPT2" --quiet
Note that the first option to --semi-host is the name of the image again.
Thanks,
Matt
You'll have better luck sending bug reports to the linaro-toolchain
mailing list.
On 18 June 2013 11:50, Bernhard Rosenkränzer
<bernhard.rosenkranzer(a)linaro.org> wrote:
> Hi,
> the 4.8-2013.06 tarball built without version overrides reports itself as:
> 4.8-2013.06-0~dev
> Looks like the release flag isn't set in the tarball.
>
> ttyl
> bero
--
Mans Rullgard / mru
== Progress ==
* Merges for linaro-4.8-2013.06:
- investigated why the cross-validation lack libpthread and libdl.
- fixed cbuild to make these libs available in the same dir as ld-linux.so
- not sure why it wasn't necessary several weeks ago when I first
spawn libsanitizer tests: we changed the prebuilt tarball since then,
but the libs are still at the same place; the binutils version changed
though.
* Re-spawned a merge request for libsanitizer, using the updated
cbuild (libpthread/libdl support, qemu flags updated) and the updated
gcc-4.8 (with my patch to cope with qemu's output of /proc/self/maps)
* Merges for linaro-4.8-2013.07: updated list
* Aarch64 frame growing downward: started.
* Disable-peeling: restarting looking at vectorizer.
== Next ==
* Merges for linaro-4.[78]-2013.07: update list
* disable peeling: see how to make the vectorizer less aggressive
* Aarch64 frame growing downward.
* Neon intrinsics/vuzip/veor: resume work
* Book hotel/flight for Connect
== Issues ==
* None.
== Progress ==
* Releases merge reviews:
- Finished reviews for releases.
* Launchpad bug #1187247:
- Closed as invalid since the issue was on an
attempt to access at an invalid address.
* Cbuild Babysitting:
- Fixed 4.8 repository update on toolchain64.
- Recreate ancestors tarballs and re-spawned jobs
- Re-started Calxedas...
* LRA on ARM and AArch64:
- Resumed the task.
- Investigation of AArch64 failure on-going.
== Plan ==
* Mainly LRA
== Progress ==
* libssp support for AArch64
Libssp support needed AArch64 frame to grow downward. But it is
currently defined as growing upward.
This work is currently in hold. Needed frame layout changes before
restarting. Waiting for feedback from Matt.
* AAarch64 testing
Drilling down Boot strap failure with GCC 4.9 trunk on open embedded
image with V8 model. Fails at time xg++ is linking. Not much progress.
Set up Cross build and test in V8 model for GCC testsuites.
Also looking at increasing timeout for individual tests.
* AArch64 LTO and PGO support.
Started on understanding PGO and LTO runs with AArch64.
== Plan ==
* Continue bootstrap testing and push patches to GCC
* Continue LTO and PGO runs for AArch64