[U-Boot-Users] software FP yada yada yada

Brent Cook bcook at bpointsys.com
Thu Oct 12 23:35:13 CEST 2006


On Thursday 12 October 2006 15:49, Ulf Samuelsson wrote:
> > In message <131AF8573CF31945B5B11E4201D3F1E142BA28 at mail3.Avidyne.com> you 
wrote:
> >> When I got 1.1.4, I get the infamous message about how u-boot needs a
> >> software FP whereas my gcc is set up for hardware fp.
> >>
> >> What I would LIKE to know is why 1.1.2 builds just fine but 1.1.4 does
> >> not.
> >
> > There have been so many changes between 1.1.2  and  1.1.4  that  it's
> > difficult  to  tell  which specific change causes the problem, but if
> > you check the "make" output you can clearly see where the problem  is
> > coming  from  - your compiler fails to provide the required softfloat
> > routines. Which is kind of funny, since there are  not  so  many  ARM
> > systems with FPU around.
>
> 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.

I did notice that the floating point routines used when u-boot is built do not 
come from gcc, but from the libarm routines in u-boot itself. Some FP 
division operations (for instance, when dividing a u32 by a float) cause the 
linker to barf that it's missing a lot of FP routines, but I worked around 
this by just using integer math (didn't care to fixup the softfloat library 
in libarm.)

> > My recommendation is to fix the toolchain
>
> IIRC, An file included by the top makefile defines CFLAGS to include
> -msoftfloat. Removing -msoftfloat from CFLAGS allows you to build U-boot
> with your normal compiler. I did that, and u-boot 1.1.4 compiled fine after
> that.
>
> Personally, I think -msoftfloat should be optional.
> Before Wolfgang start complaining about bloat, I'd like to point
> out that due to segment boundaries in the AT45DB642D
> a total of 256 kB is av ailable for the dataflashboot, u.boot and
> u-boot environment and it is meaningless to save a byte here and there.
>
> It is worth 10s of kB to be able to use a single toolchain to build
> u-.boot, Linux and filesystem
> .
>
> > Best regards,
> >
> > Wolfgang Denk
> >
> > --
>
> Best Regards
> Ulf Samuelsson
>
>
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier Download IBM WebSphere Application Server v.1.0.1 based on Apache
> Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users




More information about the U-Boot mailing list