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
