[U-Boot] [PATCH] ARM: enable CONFIG_USE_PRIVATE_LIBGCC by default (re-send to the correct address)

Wolfgang Denk
2015-07-03T09:59:04Z

Dear Daniel,

In message <559532A4.30900@gmail.com> you wrote:
>
> > Why would that be the case? We do not use any floating point stuff in
> > U-Boot...
>
> the toolchain need to provide a binary libgcc.a for each combination of
> Endianess and FPU variant otherwise you will get errors on linking
> libgcc.a to U-Boot. U-Boot needs at least BE/SoftFloat and LE/SoftFloat.
> But you only have multiple libgcc.a binaries in a dedicated multilib
> toolchain. AFAIK only CodeSourcery and Yocto-based ELDK supports this.

I agree so far.

From here, different approaches are possible:

- silently accept our fate, and have myultiple projects all work aound
the issues, copying libgcc code again and again, leaving many copies
in usually ill-maintained state.
- tell the upstream folks about our needs and have them provide us
with tools that actually can be used for our purposes.

The second approach may take longer, but in my opinion is still the
much better approahc. CONFIG_USE_PRIVATE_LIBGCC is intended to be a
workaround until we get such improved tools from upstream, not as a
permanent solution - it does not solve the rpoblem, it just papers
over it.

> The simplest and safest way is to bundle the SoftFloat implementation of
> the few GCC functions needed from libgcc in U-Boot. That code will be
> compiled then in the correct Endianess dependend on the board config.

I read "simplest and safest way" as "quick and dirty hack".

> The problem only occurs with buildman or bare-metal toolchains. The
> toolchains do not need to be broken.

Hm... when I cannot use a tool for the intended purpose I tend to call
it broken, or at least unsuitable.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
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
"Today's robots are very primitive, capable of understanding only a
few simple instructions such as 'go left', 'go right', and 'build
car'." - John Sladek