[U-Boot] [PATCHv2] powerpc: Minimal private libgcc to build on Debian

Wolfgang Denk wd at denx.de
Wed Apr 13 22:57:57 CEST 2011


Dear Kyle Moffett,

In message <1298479238-22114-1-git-send-email-Kyle.D.Moffett at boeing.com> you wrote:
> Standard Debian powerpc and powerpcspe systems only include hard-float
> libgcc in their native compilers, which causes scary build warnings when
> building U-Boot.
> 
> Debian and other PowerPC-supporting distributions used to provide libgcc
> and other libraries in a "nof" (soft-float) form in the "multilib"
> packages.  As they were completely unused by the distribution and
> therefore tended to be very buggy it was decided to save some time on
> the part of the maintainers and build-servers by removing them.
> 
> Admittedly, right now the linker warnings do not indicate any problems,
> as the included routines do not use any floating point at all.
> 
> The concern is that if floating-point code were ever added it might
> cause hard-float code to be unexpectedly included in U-Boot without
> generating a hard error.  This would cause unexplained crashes or
> indeterminate results at runtime.
> 
> The easiest way to resolve this is to borrow the routines that U-Boot
> needs from the Linux kernel, which has the same issue.
> 
> Specifically, the routines are: _ashldi3(), _ashrdi3(), and _lshrdi3().

Sorry, but I cannot follow your logic.

First, we do not use floating point in U-Boot. We don't. Period.
[The only exception being well-designed and hand-crafted assemby code
where it is unavoidable - for example in the POST code to test the
FPU, or for certain atomic 64 bit stores].

So FP support should never be a reason for such a change.

What confuses me completely is why you then add some shift functions,
which are completely unrelated to FP operations.

[I think I know what you mean, but your explanation is confusing and
should be fixed.]

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 at denx.de
There are 2 Kinds of planes: Fighters, and targets.
There are 2 Kinds of boats: Submarines, and targets.
There are 2 Kinds of 4x4's: Jeeps and SOB's (Some other brand)
There are 2 Kinds of OS's: Unix, and brain-farts.


More information about the U-Boot mailing list