[armedslack] EABI

David F. Carlson dave at chronolytics.com
Wed Jul 8 11:45:05 UTC 2009


What a mess.  I am not sure the thumb interworking is worth the hassle.  But the 5 or 6 different floating points all determined at compile time -- oi what a mess.

Nice debian article though.  Thanks.

This is my gcc build spec:

Target: arm-none-linux-gnueabi
Configured with: ../configure -v --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-clocale=gnu --enable-mpfr --disable-libssp --disable-libmudflap --disable-libgomp --enable-checking=release --enable-nls --enable-threads=posix -with-gnu-as --with-gnu-ld --disable-libstdcxx-pch --enable-__cxa_atexit --build=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --host=i686-pc-linux-gnu --enable-multilib --disable-libunwind-exceptions --with-arch=armv6 --with-tune=arm1176jzf-s --with-float=softfp --with-fpu=vfp --disable-sjlj-exceptions --enable-languages=c,c++
Thread model: posix
gcc version 4.2.2

It seems to work (for me :-).

I downloaded the existing 12.2 tree.  I can't get it to build.  Lots of scripts that know where you build ($HOME, etc).  I have not built very much slackware from source and crossdev seems even trickier.

Whining aside, I would be glad to be build armv6 if you can get the build scripts to work EABI-style.

According to Stuart Winter:
> 
> > The hassle with this (if I am correct) is that the EABI supports FPE and
> > VFP -- but at compile time only.
> 
> I was checking the Debian gcc build script for gcc
> http://ftp.de.debian.org/debian/pool/main/g/gcc-4.3/gcc-4.3_4.3.3-13.diff.gz
> zcat gcc-4.3_4.3.3-13.diff.gz|patch -p1
> less debian/rules2
> 
> And we'll find:
> 
> ifneq (,$(findstring arm-vfp,$(DEB_TARGET_GNU_CPU)))
>   CONFARGS += --with-fpu=vfp
> endif
> 
> ifneq (,$(findstring arm-linux-gnueabi,$(DEB_TARGET_GNU_TYPE)))
>   CONFARGS += --disable-sjlj-exceptions
>   ifeq ($(distribution),Ubuntu)
>     CONFARGS += --with-arch=armv5t --with-tune=cortex-a8
>     #CONFARGS += --with-float=softfp --with-fpu=vfp
>     #CONFARGS += --enable-multilib
>   endif
> endif
> 
> If you look at the actual build log:
> https://buildd.debian.org/fetch.cgi?&pkg=gcc-4.3&ver=4.3.3-13&arch=armel&stamp=1246174992&file=log
> 
> we can see that Debian armel isn't build using vfp.
> Does this then mean that Debian's only armel port does not work on your
> armv6 cpu?
> 
> This is how I'm currently configuring gcc-4.3.3 for -current EABI:
> 
> case $ARCH in
>    arm)     export SLKCFLAGS="-O2 -march=armv4t"
>             # "--with-arch" sets the gcc defaults
>             export ARCH_CONFARGS="--disable-libssp --disable-sjlj-exceptions --enable-mpfr --with-arch=armv4t"
> 
> TARGET=$ARCH-slackware-linux-gnueabi
> 
> # build gcc
>   mkdir gcc.build.lnx
>   cd gcc.build.lnx
>   BOOT_CFLAGS="$SLKCFLAGS" \
>   STAGE1_CFLAGS="$SLKCFLAGS" \
>   CFLAGS="$SLKCFLAGS" \
>   CXXFLAGS="$SLKCFLAGS" \
>   LIBCFLAGS="$SLKCFLAGS" \
>   LIBCXXFLAGS="$SLKCFLAGS" \
>   GCJFLAGS="$SLKCFLAGS" \
>   ../gcc-$VERSION/configure $ARCH_CONFARGS \
>        --prefix=/usr \
>        --libdir=/usr/lib$LIBDIRSUFFIX \
>        --enable-bootstrap \
>        --enable-checking=release \
>        --with-system-zlib \
>        --disable-libunwind-exceptions \
>        --enable-shared \
>        --enable-languages=c,c++,fortran,java,objc \
>        --enable-threads=posix \
>        --enable-__cxa_atexit \
>        --with-gnu-ld \
>        --verbose \
>        --host=$TARGET \
>        --build=$TARGET \
>        --target=$TARGET || failconfig
> 
> > armv5el
> > armv5el-vfp
> > armv6el-vfp
> >
> > That is a lot of work though...
> >
> > Are there any other vfp people on the list that will be "lost" if the armedslack is fpe only?
> 
> I was reading this and starting to understand it a little:
> http://wiki.debian.org/ArmEabiPort
> 
> >From what I understand, this isn't a problem?  It may be that the
> distribution isn't optimised as a whole, but particular packages can be if
> necessary?
> 
> I certainly can do one port, but not maintain any more than 1 -- the old
> ABI port stops (apart from security fixes) at Slackware 12.2.
> 
> 
> -- 
> Stuart Winter
> www.armedslack.org
> 

David F. Carlson    Chronolytics, Inc.  Rochester, NY
mailto:dave at chronolytics.com            http://www.chronolytics.com

"The faster I go, the behinder I get." --Lewis Carroll




More information about the ARMedslack mailing list