So, to keep people in the loop:

* We have deployed speedrpm in devel:toolchain and it seems to work
fine. Hardfp patches doesn't seem to kill anything, devel:base was
sanity checked on armv7l side.

* We have just started speedrpm in devel:base to verify there.

* We're still exploring the KVM issue, which doesn't seem to be
related to build package version according to Martin Mohring

* Submitted three glibc patches to devel:toolchain/glibc:

# - BMC#12448 - ARM: glibc does not export neon hwcap
# - BMC#12517 - ARM: glibc wastes time checking for half-precision and
fast-mult HWCAP libraries
# - BMC#12518 - ARM: default to FPU RunFast mode

BMC#12448 is interesting since it meant that all the ARM software that
used /proc/self/auxv to detect NEON capability of the device, did not
detect NEON. Since a large bunch of things, such as Qt, pixman, orc,
etc, used this detection, a speedup on N900 is hoped to be seen with
this.

* Linaro 2010.12 did not solve the -O3 -mfpu=neon issue

* QEMU >= 0.13 is needed for building armv7hl images.

* Upstream Qt had a bug where it would use NEON on non-NEON systems
and when applying upstream fix, it stopped building when mfpu=neon
wasn't default in compiler.

Patch can be seen at
https://build.meego.com/package/rdiff?opackage=qt&oproject=Trunk%3ATesting&package=qt&project=devel%3Ahardfp%3Atestrun
- upstream fix is QTBUG-15163.patch  , my fix to that is
QTBUG-15163-fix.patch

* armv7nhl:

- It turns out that due to rpm autodetection and rpm-x86, rpm --eval
'%{arch}' returns i586 on builds.

This means that we can not use BuildArch: armv7nhl in packages, for instance.

I have worked around this, with a package cross-armv7nhl-trick, which
adds /etc/rpm/platform containing 'armv7nhl-meego-linux' to builds.
This means that we can target armv7hl (--target) and armv7nhl in
BuildArch, to make 'i686' like packages.

In OBS, this would require a %ifarch armv7hl, Requires:
cross-armv7nhl-trick in prjconf.

Examples can be found in
http://download.meego.com/live/home:/cvm:/branches:/devel:/hardfp:/testrun-armv7nhl/standard/
, where we have built same package for armv7hl and armv7nhl.

The script used to make a 'armv7nhl' package, precheckin.sh:

#!/bin/bash
for x in *.spec; do
        if [[ $x == *armv7nhl* ]]
        then
                echo "Ignoring $x"
        else
                echo "Processing $x"
                ARMNAME=`basename $x .spec`
                ARMNAME="${ARMNAME}-armv7nhl.spec"
                cat > ${ARMNAME} << EOF
# THIS IS AUTO-GENERATED. Run sh precheckin.sh after changing original
.spec file
%{expand:%%global optflags %(echo "%optflags"|sed -e s/vfpv3-d16/neon/)}
ExclusiveArch: armv7el armv7hl armv7nhl
BuildArch: armv7nhl

EOF
                cat $x >> $ARMNAME
        fi
done

And then linkpac package to package-armv7nhl.

Remaining:

* Make armv7nhl packages for things that have use for it, such as qt
and perhaps glibc and pulseaudio-modules-meego, which utilizes NEON.
Proposals welcome.

* Hardfp + speedrpm patches making it into Trunk:Testing (currently in
devel:base)

* Speedrpm activated in T:T and Trunk when T:T works.

* OBS patch to add armv7hl scheduler TBA (who's on this?)

* Build a copy of Trunk:Testing when scheduler is activated for armv7hl (me)

* Update prjconf for hardfp

* Seed Trunk:Testing armv7hl scheduler with those (build.meego.com admins)

* Watch it build, hopefully ;)

/Carsten
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev

Reply via email to