From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brent Cook Date: Thu, 12 Oct 2006 16:35:13 -0500 Subject: [U-Boot-Users] software FP yada yada yada In-Reply-To: <011f01c6ee45$0eefaba0$0d68fe51@atmel.com> References: <20061012203005.DB047353BDE@atlas.denx.de> <011f01c6ee45$0eefaba0$0d68fe51@atmel.com> Message-ID: <200610121635.13952.bcook@bpointsys.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thursday 12 October 2006 15:49, Ulf Samuelsson wrote: > > In message <131AF8573CF31945B5B11E4201D3F1E142BA28@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