
On Thursday 12 October 2006 16:44, Ulf Samuelsson wrote:
According to the crosstool documentation at www.kegel.com:
Most combinations of gcc 3.x.x and binutils fails when you try to build a softfloat toolchain All tested combinations of gcc-4.x.x and binutils fails if softfloat is enabled. If you want to use gcc 4, you cannot build u-boot as is.
FYI, I have successfully used GCC 4.1.1 and binutils 2.16.1 to build not only a working armv5teb softfloat toolchain (with glibc 2.4 to boot), but also build and use u-boot 1.1.4 and the latest git head with no problems at all.
Granted, I built the toolchain from scratch - it takes a number of tweaks to build correctly, all of which are not in crosstool.
Is there any true benefit of using a softfloat toochain? The number of floating point operation is surely minimal in U.boot. Anyone got an idea if there is any code saving.
Best Regards Ulf Samuelsson
It's pretty darn minimal in u-boot. If you build Linux with this toolchain however, and have a non-trivial number of floating point operations in your application code, you could end up causing a lot of processor exceptions, which get caught by the kernel and run through the FP emulator. The gist would be that userland code has to do a context switch to the kernel for every FP operation if you build with a hard-float toolchain. With a soft-float toolchain, it stays in userland, and is a bit faster and more efficient (as efficient as soft floating point can be.)
- Brent