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

Wolfgang Denk wd at denx.de
Wed Dec 7 23:11:23 CET 2011


Dear Kyle Moffett,

In message <1318972602-3352-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.
> 
> While U-Boot does not use floating point at all, it is perfectly legal
> for a hard-float libgcc to use features of the floating point unit to
> implement 64-bit divides and shifts.  Since U-Boot does not set up the
> floating point unit or initialize the registers, that could cause
> crashes or other misbehavior.
> 
> In particular, on e500 systems with SPE extensions, a "hard-float"
> libgcc might use the top half of the "extended" 64-bit registers for
> various 64-bit shifts and other operations, which is probably unsafe.
> 
> To avoid a dependency on "nof" (IE: soft-float) libgcc provided by the
> system toolchain, U-Boot should be able to provide its own copies of the
> necessary routines just like the Linux kernel does.  In particular, this
> resolves build failures on native Debian PowerPC systems which no longer
> provide any soft-float libraries in the system toolchain.
> 
> This patch provides an implementation of USE_PRIVATE_LIBGCC=yes from the
> Linux Kernel that matches what the ARM architecture implements in
> assembly files in arch/arm/lib/*.S
> 
> Specifically, the routines are: _ashldi3(), _ashrdi3(), and _lshrdi3().
> They were borrowed from arch/powerpc/kernel/misc_32.S as of v2.6.38-rc5,
> commit 85e2efbb1db9a18d218006706d6e4fbeb0216213, and are GPLv2+.
> 
> The Makefile framework was copied from the U-Boot ARM port.
> 
> Signed-off-by: Kyle Moffett <Kyle.D.Moffett at boeing.com>
> Cc: Wolfgang Denk <wd at denx.de>
> Cc: Kim Phillips <kim.phillips at freescale.com>
> Cc: Andy Fleming <afleming at gmail.com>
> Cc: Kumar Gala <kumar.gala at freescale.com>
> Cc: Stefan Roese <sr at denx.de>
> 
> ---
> 
> I believe I have addressed all of the previous questions regarding
> this patch with an updated commit message.  Can this be merged?
> 
> Cheers,
> Kyle Moffett
> 
> --
> Curious about my work on the Debian powerpcspe port?
> I'm keeping a blog here: http://pureperl.blogspot.com/
> ---
>  arch/powerpc/lib/Makefile   |   23 ++++++++++++++++++++-
>  arch/powerpc/lib/_ashldi3.S |   45 +++++++++++++++++++++++++++++++++++++++++
>  arch/powerpc/lib/_ashrdi3.S |   47 +++++++++++++++++++++++++++++++++++++++++++
>  arch/powerpc/lib/_lshrdi3.S |   45 +++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 159 insertions(+), 1 deletions(-)
>  create mode 100644 arch/powerpc/lib/_ashldi3.S
>  create mode 100644 arch/powerpc/lib/_ashrdi3.S
>  create mode 100644 arch/powerpc/lib/_lshrdi3.S

Applied, thanks.

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
Marriage is the triumph  of  imagination  over  intelligence.  Second
marriage is the triumph of hope over experience.


More information about the U-Boot mailing list