Ubuntu rebuilt with hardfp float-abi -blog archive

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Ubuntu rebuilt with hardfp float-abi -blog archive

1,466 Views
KonstantinosMar
Contributor I
Ok, first post to the site. Congrats for a very good looking community site!

So, after a few problems and delays, We now have a working autobuilder that's building ubuntu packages (karmic for now, will switch to lucid soon). The difference with the default Ubuntu ARM repository, is that all packages are built using 2009q3-67 CodeSourcery compiler -now switched mid-process to the newer 2010q1-202 [1]. Both are packaged as Ubuntu .deb packages as complete replacements for the default packages. We will also provide an optional compiler installed in /opt, for those who do not want to replace the default Ubuntu. Though that's only for the default softfp Ubuntu installations, as the default is useless as it doesn't support hardfp at all.

So, with that compiler, we rebuilt all packages with -float-abi=hard -mfpu=vfp. So far we're at 2500 packages and the list grows. We had to do this as right now, the two ABIs (softfp/hard) are incompatible and there is not (yet) any way to run both binaries on the same system. This might change, but we did not want to wait as the new hardfp ABI is supposed to build faster executables at least in the case of fpu-intensive applications (it saves up to 20 cycles when calling a function with fp arguments, should make a difference, eg. in 3D). We will provide benchmarks soon.

So, what we will deliver in the following days:

1. An basic image of 2GB size to install on your SD card and use on your Efika MX directly.
2. A hardfp repository and an autobuilder -rebuildd-based
3. Benchmarks comparing softfp and hardfp performance to see if it's worth the effort.

Finally, unrelated to this, I am close to reaching the first alpha status for the new libfreevec, which will include ARM NEON, AltiVec and (preliminary) SSE support. Results for NEON will follow soon.

[1] Here's the proof:

# gcc -v

Using built-in specs.

Target: arm-linux-gnueabi

Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-cs+genesi2 (Sourcery G++ Lite 2010q1-202, Genesi ARM Native 20100517)' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv6 --with-tune=cortex-a8 --with-float=hard --with-fpu=vfp --disable-werror --enable-checking=release --build=arm-linux-gnueabi --host=arm-linux-gnueabi --target=arm-linux-gnueabi

Thread model: posix

gcc version 4.4.1 (Ubuntu 4.4.1-cs+genesi2 (Sourcery G++ Lite 2010q1-202, Genesi ARM Native 20100517))



Tags (1)
0 Kudos
3 Replies

878 Views
KonstantinosMar
Contributor I
hm, true I missed that, I'll fix it in the next version. Thanks!
0 Kudos

878 Views
MartinKrastev
Contributor I
Now that the kind of news I love reading ; ) btw,--with-arch=armv6 --with-tune=cortex-a8 Is that arch the best this compiler currently knows? (i.e. it says 6, whereas A8 is v7)
0 Kudos

878 Views
bbrv2
Contributor I
Nice work Konstantinos!
0 Kudos