[fedora-arm] Mandriva and Unity Linux work on armv7 port

Paulo César Pereira de Andrade paulo.cesar.pereira.de.andrade at gmail.com
Sat Jul 30 03:37:40 UTC 2011


Hi,

  In the past few days I made some changes to djdelorie's
bootstrap scripts to adapt it to mandriva, so, I believe I should
at least give some feeback :-)

  I have built two chroots on two panda boards, one with
hardfp that should match current fedora, and another
using --with-float=softfp, as at least for now I think it
would be wiser for me, and available resources to
be able to use a large amount of armv5 packages
made by Matthew Dawkins, for Unity Linux.

 Currently I am connecting to remote panda boards at
jbj.org, so, Jeff is providing the infrastructure (currently
I do not have access to armv7 hardware). The boards are
running:

Linux panda3.jbj.org 2.6.38.8-32.01.fc13.armv7l.omap #1 SMP PREEMPT
Tue Jun 14 22:12:54 EDT 2011 armv7l armv7l armv7l GNU/Linux
[root at panda3 /]# cat /etc/fedora-release
Fedora release 13 (Goddard)

So, for example (and sorry for long email) in fedora,
and my other bootstrap chroot, with objdump I see
the pattern:
00008b68 <__ieee754_atan2>:
    8b68:       e3a01000        mov     r1, #0
    8b6c:       e3471ff0        movt    r1, #32752      ; 0x7ff0
    8b70:       ec532b11        vmov    r2, r3, d1
    8b74:       e3a00000        mov     r0, #0
    8b78:       e0031001        and     r1, r3, r1
    8b7c:       e3470ff0        movt    r0, #32752      ; 0x7ff0
    8b80:       e1510000        cmp     r1, r0
    8b84:       e1a0c003        mov     ip, r3
    8b88:       e92d0030        push    {r4, r5}
    8b8c:       ed2d8b10        vpush   {d8-d15}
    8b90:       e1a05002        mov     r5, r2
    8b94:       e24dd028        sub     sp, sp, #40     ; 0x28
    8b98:       eeb08b41        vmov.f64        d8, d1
    8b9c:       eeb09b40        vmov.f64        d9, d0
    8ba0:       0a000023        beq     8c34 <__ieee754_atan2+0xcc>

arguments in d0, d1

And in the alternate build I see the pattern:

00008d30 <__ieee754_atan2>:
    8d30:       e3a0c000        mov     ip, #0
    8d34:       e347cff0        movt    ip, #32752      ; 0x7ff0
    8d38:       e92d4030        push    {r4, r5, lr}
    8d3c:       ed2d8b10        vpush   {d8-d15}
    8d40:       e3a05000        mov     r5, #0
    8d44:       ec432b18        vmov    d8, r2, r3
    8d48:       e3475ff0        movt    r5, #32752      ; 0x7ff0
    8d4c:       e003c00c        and     ip, r3, ip
    8d50:       e15c0005        cmp     ip, r5
    8d54:       e24dd02c        sub     sp, sp, #44     ; 0x2c
    8d58:       e1a04003        mov     r4, r3
    8d5c:       ec410b19        vmov    d9, r0, r1
    8d60:       e1a05002        mov     r5, r2
    8d64:       0a000022        beq     8df4 <__ieee754_atan2+0xc4>

arguments in r0,r1,r2,r3

  I did not do any performance measures so far, so
forgive me if the extra "vmov d#, r#,r#" or "vmov r#,r#, d#"
is too costly, but I think it should be worth the
compatibility with rpms for armv5 or earlier. It should
have been already discussed at fedora, but I really
do not know the real reason :-)

  Also, as I am still in very early stages, and doing
experiments, so far I am using only the cross compiled
gcc, i.e.:

bash-4.2# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/armv7l-mandriva-linux-gnueabi/4.6.1/lto-wrapper
Target: armv7l-mandriva-linux-gnueabi
Configured with:
/home/pcpa/bootstrap/rpmbuild/BUILD/gcc-4.6-20110722/configure
--prefix=/usr --build=i586-mandriva-linux-gnu
--host=armv7l-mandriva-linux-gnueabi
--target=armv7l-mandriva-linux-gnueabi --enable-werror=no --enable-cxx
--with-cpu=cortex-a8 --with-tune=cortex-a8 --with-arch=armv7-a
--with-float=softfp --with-fpu=vfpv3-d16 --with-abi=aapcs-linux
--enable-languages=c,c++ --enable-threads=posix --disable-libssp
--disable-libmudflap
Thread model: posix
gcc version 4.6.1 20110722 (Mandriva) (GCC)

  But have already rebuilt some of the "bootstrap" mandriva
packages, rpm5, etc, as well as have packages built for
armv5 installed. This way, rebuilding for armv7 is an
"optimization", and have something to start with...

Thanks,
Paulo


More information about the arm mailing list