
Sent: Tuesday, August 11, 2009 11:58 PM Subject: Re: [U-Boot] "raise" not defined, when compiler uses its own div0
Dear Ulf Samuelsson,
In message 4A81E724.3070205@atmel.com you wrote:
Try setting USE_PRIVATE_LIBGCC=yes in your envrionment, like
USE_PRIVATE_LIBGCC=yes make ...
I have done two fixes to make it build with openembedded.
- Define "raise" in libarm/board.c which calls hang.
Did you use "USE_PRIVATE_LIBGCC=yes", and it still needed raise(), or did you implement that workaround instead of using "USE_PRIVATE_LIBGCC=yes".
Normally no raise() should be needed when using USE_PRIVATE_LIBGCC=yes
Instead, since I think it is ugly. If I build u-boot from the u-boot dir outside the buildsystem, it also means a lot of typing - If I remember to do it...
Why not make it a default mode? Then there is no problem anywhere and the patch is not needed.
- Changes mapi to "-mapi=aapcs-linux" in cpu/arm926ej-s/config.mk Some toolchains want to keep apcs-gnu I guess.
I wonder why we enforce a specific API at all - would it not be better to use the toolchain provided default settings?
I tried that, but that did not work with openembedded. ' I suspect that the openembedded libraries are built with -mapi-aapcs-linux. -mapi=apcs-gnu is not a problem with buildroot.
A similar thing: For ARM, "-msoftfloat" is enforced, and I think that should be removed. AFAIK there are no floating point stuff in u-boot, and why then enforce something which might or might not work for an arbitrary toolchain.
Is there any toolchain that will not work, if -msoftfloat is removed?
Best regards,
Wolfgang Denk
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de Single tasking: Just Say No.
Best Regards Ulf Samuelsson ulf@atmel.com Atmel Nordic AB Mail: Box 2033, 174 02 Sundbyberg, Sweden Visit: Kavallerivägen 24, 174 58 Sundbyberg, Sweden Phone +46 (8) 441 54 22 Fax +46 (8) 441 54 29 GSM +46 (706) 22 44 57