
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 29.01.2014 20:47, schrieb Tom Rini:
On 01/29/2014 02:41 PM, Andreas Färber wrote:
Am 29.01.2014 19:38, schrieb Stephen Warren:
On 01/29/2014 02:22 AM, Andreas Färber wrote:
Am 29.01.2014 06:42, schrieb Stephen Warren:
The entries in config.mk were needed so that U-Boot could be built with an old version of the Raspberry Pi Foundation's toolchain. Without them, the build would error out with:
...-ld: error: .../libgcc.a(_bswapsi2.o) uses VFP register arguments, u-boot does not
However, none of the 3 toolchains in the latest version of their tools.git, nor the Ubuntu/Linaro ARM compilers in at least Ubuntu Quantal or Saucy, need these options set in order to compile a working U-Boot. Hence, remove the options for simplicity.
Reported-by: Tom Rini trini@ti.com Signed-off-by: Stephen Warren swarren@wwwdotorg.org --- arch/arm/cpu/arm1176/bcm2835/config.mk | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 arch/arm/cpu/arm1176/bcm2835/config.mk
No objection against the patch, but why was arch/arm/config.mk using -msoft-float in the first place?
It wasn't. It was filtering -msoft-float out of the compiler flags, which then left the ABI up to the toolchain default, which was hardfp for one of the Raspberry Pi Foundation's toolchains - the same one that caused the error messages quoted above unless -msoft-float was removed from the compiler options.
You seem to have misread my question, it was not about bcm2835/config.mk but about arm/config.mk, which bcm2835 was filtering.
No, I know what you said.
Tom, I didn't dispute that. But Stephen's statement above was clearly wrong if you look at v2013.10:
http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/config.mk;h=bdabcf407e2c7...
It was in fact using -msoft-float, as you confirm below, and bcm2835 was the one filtering it out.
In v2014.01 -msoft-float gets compile-tested before usage and therefore the bcm2835-specific filtering here can be dropped.
I didn't quite get Tom's response about U-Boot being soft-float. It is what I compile it to be, no? If I compile it with an hardfp toolchain such as openSUSE's, without -msoft-float it is going to be hardfp IIUC. softfp is for compatibility with non-VFP hardware I thought, but U-Boot is clearly built with a per-board config, so it's not portable anyway.
This isn't quite correct. U-Boot is like the kernel. We say how we're built and like the kernel, we are soft float (and unless the board says we need it, we aren't thumb/thumb2 either). That's why arch/arm/config.mk (like arch/arm/Makefile in the kernel) enforces -msoft-float.
OK, thanks for explaining. Our v2013.10 package was carrying a patch dropping the hardcoded -msoft-float for our armv7hl toolchain and it worked okay as far as I could tell. I've dropped that patch now for v2014.01 and things at least still build for me. Question solved and FWIW
Reviewed-by: Andreas Färber afaerber@suse.de
Cheers, Andreas
- -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg