...are available at:
http://ex.seabright.co.nz/build/gcc-linaro-4.5+bzr99315/
I've also finished reference builds of FSF GCC 4.4.4, 4.5.0, and
4.5.1. According to the GCC testsuite, there are no regressions
between the Linaro and FSF branches and in some ways we're a bit
better:
On x86_64 for FSF 4.5.0 (-) vs linaro-4.5+bzr99315 (+):
=== gcc Summary ===
-# of expected passes 61211
+# of expected passes 61239
+# of unexpected successes 1
-# of expected failures 180
+# of expected failures 179
# of unsupported tests 825
On i686 FSF 4.5.0 vs linaro-4.5+bzr99315:
=== gcc Summary ===
-# of expected passes 62285
+# of expected passes 62309
# of unexpected failures 12
-# of unexpected successes 25
+# of unexpected successes 26
-# of expected failures 192
+# of expected failures 191
# of unsupported tests 533
g++, fortran, and objc are the same between builds.
And, strangely enough, ARM is still building.
-- Michael
Minutes from the Toolchain WG weekly meeting are available at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2010-08-02
A copy, along with activity reports, follow.
-- Michael
= Monday 2nd August 2010 =
== This month's meetings ==
<<MonthCalendar(WorkingGroups/ToolChain/Meetings,2010,08,,,,WorkingGroups/ToolChain/MeetingTemplate)>>
== Attendees ==
||<rowbgcolor="#333333" rowstyle="color: white; font-weight:
bold;"style="text-align: center;">Name ||<style="text-align:
center;">Email ||<style="text-align: center;">IRC Nick ||
|| Andrew Stubbs || andrew.stubbs(a)linaro.org || ams ||
|| Julian Brown || julian(a)codesourcery.com || jbrown ||
|| Michael Hope || michael.hope(a)linaro.org || michaelh ||
|| Richard Earnshaw || richard.earnshaw(a)arm.com || rearnshaw ||
|| Ulrich Weigand || ulrich.weigand(a)linaro.org || uweigand ||
|| Yao Qi || yao.qi(a)linaro.org || yao ||
== Agenda ==
* Review action items from last meeting
* New public call-in number: code 263 441 7169
* Hardware availability
* Next milestone
* Outstanding changes that could be merged
* GCC testsuite failures and what to do about them
* http://ex.seabright.co.nz/helpers/testlog/gcc-linaro-4.4-93543/logs/armv7l-…
||<rowbgcolor="#333333" rowstyle="color: white; font-weight:
bold;"style="text-align: center;">Blueprint ||<style="text-align:
center;">Assignee ||
|| [[https://blueprints.launchpad.net/gcc-linaro/+spec/initial-4.4|Initial
delivery of Linaro GCC 4.4]] || ams ||
|| [[https://blueprints.launchpad.net/ubuntu/+spec/arm-m-cross-compilers|Cross
Compiler Packages]] || hrw ||
== Action Items from this Meeting ==
* ACTION: Michael to organise and spread next Monday's call in number
* ACTION: Richard to ask the GCC developers on IRC what the status of 4.4.5 is
* ACTION: [[LP:500524]] Ulrich to backport to Linaro 4.4
* ACTION: Test failures: Michael to build FSF 4.4.4 as a baseline
* ACTION: Test failures: Michael to compare FSF and Linaro GCC failures
* ACTION: Test failures: All Linaro GCC failures to be ticketed
* ACTION: LTO check on ARM: Michael to reproduce
* ACTION: Ulrich to write up known GDB work
* ACTION: [[LP:598147]]: Michael to reproduce the test failures
* ACTION: [[LP:398403]]: Andrew to reproduce on his IGEP board (has more RAM)
* ACTION: Michael to make sure merge requests are present for work
that has been done
== Action Items from Previous Meeting ==
* ACTION: Michael to organise and spread next Monday's call in number
* DONE: Michael to re-check release dates and suggest something
* Set to the second Tuesday of each month. Lines up with other
Linaro releases quite well.
* DONE: Michael to rename the intermediate milestone
* Set to 2010.08-0. Created 2010.09-0 for the next.
* DONE: Loic to find the Chrome OS contact name for the records
* DONE: Ulrich to confirm PowerPC approach with Matthias
* Confirmed that reverting the PowerPC changes is OK
== Minutes ==
* Reviewed the action items from the previous meeting
* Reviewed the high-priority tickets
* Merging 4.4.5
* Michael is unhappy with merging for next weeks release unless
4.4.5 comes out in the next few days
* Richard went through the announcements. Last was for 4.4.4 on April 30.
* 4.4.5 is due around now
* Expect that the GCC team are focused on 4.5.1 instead
* ACTION: Richard to ask the GCC developers on IRC what the status
of 4.4.5 is
* [[LP:500524]]
* Ulrich has done upstream in 4.4.5
* A small change, unlikely to cause correctness regressions, may
cause performance regressions
* ACTION: Ulrich to backport to Linaro 4.4
* GCC test suite
* Michael asked what level of failures are acceptable
* Richard said that the FSF GCC has never been completely clean on ARM
* Failures may exist upstream
* In the future, should investigate all and fix
* For now, investigate regressions
* ACTION: Michael to build FSF 4.4.4 as a baseline
* ACTION: Michael to compare FSF and Linaro GCC failures
* ACTION: All Linaro GCC failures to be ticketed
* Regressions marked as 'test regression' with Medium severity
* Existing failures to be marked as 'test failure' with Low severity
* Wiki page [[Toolchain/UbuntuRegressions]] has triage from earlier
* Ulrich noted that fixing [[LP:500524]] in Linaro will overlap with
Ubuntu toolchain maintainer's current 4.4.4+svn patch
* Michael said that it is the responsibility of the Ubuntu
toolchain mainter to manage that
* Linaro will notify them on the change
* Discussed LTO
* Michael sees LTO tests fail on gcc-linaro-4.5 on ARM with
--enable-languages=c,c++
* Assumed it was binutils related
* Ulrich: shouldn't be as GCC does most of the work
* ACTION: Michael to reproduce
* Future work
* Focused on GCC at the moment
* Need medium term plan
* Focused on the core toolchain
* GCC
* Binutils
* GDB
* eglibc
* New hire specialises in qemu and will focus on that
* Multiarch is written up, unsure if we've agreed to do the work
* ACTION: Ulrich to write up known GDB work
* Medium severity tickets
* [[LP:598147]]
* May be three issues in one ticket
* Issues due to hardening, now fixed
* Stack crash due to invalid usage
* Extra test failures
* ACTION: Michael to reproduce the test failures
* [[LP:398403]]
* ACTION: Andrew to reproduce on his IGEP board (has more RAM)
* Ongoing work
* ACTION: Michael to make sure merge requests are present for work
that has been done
--- Yao:
== Linaro GCC 4.4 bug fix ==
* LP:604874.
Tried different set of configure/build options to reproduce
segfaults. Ulrich Weigand finally fixed this bug.
* LP:497295
It is about an ICE on maverick/arm. Reproduced ICE on maverick/x86.
ICE goes awy on linaro gcc, so it is not caused by linaro patches.
Finally, I find it is related to gcc-default-ssp.diff in Ubuntu.
Team decide to leave it as won't fix for 4.4, and get fix from
upstreams in 4.5.
* Issue #3314|LP:602288
Understand previous comments on this issue, and read something on
"address cost" in gcc. Looks like not easy to fix this problem.
* LP:612011|GCC PR45094
Create a patch against PR45094, and tested on ARM/QEMU. Post my
patch to gcc-patches first time in my life. A typo is found in my
patch. I fixed typo and submit a new patch again. Suggested to
run regression test again.
* LP:602285|Issue #5157
This bug is caused by our restrictions to the unrolling times.
Proposed two options to fix this bug. Waiting for the feedback from
the team.
== Misc ==
* Try gnu-checkout/gnu-devel/gnu-test for linaro toolchain
* Read doc on ARM ABI and procedure call standard
== This Week ==
* Get patches to PR45094 approved, and backport it for LP:612011.
* Discuss with team and choose one from two options to fix
LP:602285.
* Other bugs on launchpad.
--- Andrew:
== IGEPv2 ==
Continued with IGEPv2 board bringup. The OS that came with the board
proved inappropriate for creating Ubuntu Maverick chroots, so I looked
to updating the board. The IGEP website has tutorials on how to do
this using a tool called "rootstock".
It didn't take to long to get the board running with a more recent
kernel, but using an Ubuntu Lucid rootfs proved more problematic.
Getting a base system installed is not too hard, but that doesn't have
sshd or any other way to get in, and although serial output works,
serial input is broken, and I don't have a USB keyboard (imagine
that!) so using the video console is no good either.
Solved this problem by rebuilding a new rootfs that did have sshd in
it, and getting that setup right. Then installed all the new software
I wanted, set up a maverick chroot on NFS to work with, and gave Yao
and Chung-Lin access.
All was working well, so I took the SD card out, backed it up,
returned it to the board, and now it won't boot, again! To be
continued ....
== GCC 4.5 ==
Applied the first batch of SourceryG++ GCC 4.5 patches to the Linaro
sources, tested them, found them good, and pushed them to launchpad.
Applied another set of patches, and set them testing.
Marked all the patches in the CodeSourcery patch tracker that I
definitely won't be pushing to Linaro.
== Linaro patch tracker ==
Corresponded with Michael Hope regarding the Linaro patch tracker.
== Other ==
Finished getting the CodeSourcery build system to work with Launchpad,
and the Linaro GCC configurations.
-- Ulrich
== GCC ==
* Analyzed and fixed bug #604874 (Firefox fails to build)
- Fixed upstream (mainline, 4.5.2) as PR c++/45112
- Linaro GCC 4.4 branch merge request pending
* Analyzed and fixed bug #500525 (bootstrap failure in stage3)
- Backported mainline fix to upstream 4.4 branch
* Miscellaneous bug analysis / triage / comments on:
#437726, #608125, #607665, #505829, #600209
* Provided patch to revert CodeSourcery PowerPC changes from
Linaro GCC 4.4 (now merged).
== GDB ==
* Continued looking into GDB 7.2 test suite regressions
* Initial implementation of Thumb-2 support in ARM prologue parsing
== Miscellaneous ==
* Provided write-up of multiarch toolchain implications document
== Infrastructure ==
* Ordered IGEPv2 board
CS has this patch in SG++:
http://gcc.gnu.org/ml/gcc-patches/2008-12/msg00199.html
This patch improves code size in a useful, target independent way, but
was not committed upstream. It's not clear why. Since the patch does not
belong to CodeSourcery, we can't upstream it ourselves either.
Is that patch a suitable candidate for Linaro GCC?
It is not upstreamable due to copyright issues, but we have a policy
that we can keep such patches, if we wish.
The principle of not letting Linaro and SG++ diverge too far also
suggests keeping it.
Any thoughts? If nobody objects soon I shall merge it in.
Andrew
As already discussed with Loic, CodeSourcery have a GCC patch that
implements a new optimization: -fremove-local-statics.
Essentially, it transforms code like this:
int foo (void) { static int a = 1; return a; }
into this:
int foo (void) { int a = 1; return a; }
Admittedly, if the code is written like that you might argue that the
auther gets what they deserve, but apparently at least one of the EEMBC
benchmarks does have these, so now we all care about it.
This patch was originally submitted, by RedHat, to gcc-patches here:
http://gcc.gnu.org/ml/gcc-patches/2008-07/subjects.html#00982
Some discussion later, they decided it would be better to implement the
optimization using inter-procedural dead store analysis:
http://gcc.gnu.org/ml/gcc-patches/2008-07/msg01602.html
This doesn't seem to have actually been done. Not yet, anyway.
So basically we're left with this patch that does something we want, but
not in a way that can go upstream. :(
The question is, should I merge this to Linaro, or not? Loic and I
agreed to hold off until I'd done a bit more research and/or tried to
upstream it again, but now I think we need to think again.
Andrew
The agenda for todays call is available at:
https://wiki.linaro.org/WorkingGroups/ToolChain/Meetings/2010-08-02
The call will be on the usual code / numbers - I have the conference
code for doing a fully public call, but not the corresponding dial in
numbers.
See you then,
-- Michael
Hi all,
These are approximate instructions for installing Lucid on an IGEPv2. It
uses the kernel recommended on the IGEP site because this supports the
SD card. I'm sure an ubuntu kernel will be fine later. At the end, you
will have an SD card that will boot the IGEPv2 board with no external
intervention or devices.
This recipe is derived from here:
http://labs.igep.es/index.php/How_to_get_the_Ubuntu_distribution
Andrew
----------------------
sudo apt-get install rootstock uboot-mkimage qemu
[The next step gives you the kernel, initrd, and rootfs all in one.
Ideally I would have it install lxde now, to match the "demo" OS that
came with the board, but I found that it hung. Create minimal install
for now, and install lxde later, once the board is running.]
sudo rootstock --fqdn ubuntu --login jdoe --password letmein --imagesize
2G \
--seed
wget,nano,linux-firmware,wireless-tools,usbutils,openssh-server,openssh-client
--dist lucid \
--serial ttyS2 --components "main universe multiverse" \
--kernel-image
http://www.rcn-ee.net/deb/lucid/v2.6.33.5-l3/linux-image-2.6.33.5-l3_1.0luc…
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n
"Linux" -d vmlinuz-2.6.33.5-l3 uImage
mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d
initrd.img-2.6.33.5-l3 uInitrd
cat > boot.source < EOF
fatload mmc 0:1 0x80000000 uImage
fatload mmc 0:1 0x82000000 uInitrd
setenv bootargs vram=12M omapfb.mode=dvi:1280x720MR-16@60
root=/dev/mmcblk0p2 console=ttyS2,115200n8 fixrtc
bootm 0x80000000 0x82000000
EOF
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot Script" -d
boot.source boot.ini
[Format the SD card with two paritions, mmcblk0p1 small fat-16 (label
"boot"), and mmcblk0p2 large ext3 (label "rootfs").]
cp uImage uInitrd boot.ini /media/boot
sudo tar xzpf armel-rootfs-<date>.tgz -C /media/rootfs/
ln -s ../init.d/ssh /media/rootfs/etc/rc2.d/S01ssh
[Set up /media/rootfs/etc/network/interfaces - you'll need an "auto
eth0" line and something to go with it]
[Boot the target, log in (jdoe/letmein)]
sudo apt-get install lxde gdm
[Actually, I only installed the lxde desktop so I could run it remotely
using Xnest. If you want a graphical login on the video output, only
then do you need gdm also. Not installing gdm means that Xorg doesn't
start at boot time and eat memory and cycles.]