[U-Boot] [PATCH 1/2 v6] Make libgcc inclusion from common Makefile overridable by platform config file

Wolfgang Denk wd at denx.de
Sun Jul 12 20:17:14 CEST 2009


Dear Dirk Behme,

In message <4A5A0B5B.2010408 at googlemail.com> you wrote:
> 
> > Of course it it nice if we can also provide a workaround for them, so
> > they can update at a point in time that is convenient to them. But the
> > implementation of such a workaround should be clean, and eventually be
> > used only for systems that really need it.
>  >
> > In no case we should make the use of such a workaround for broken
> > setups the rule which has to be used by all systems (and eventually
> > all architectures, even those that never had such problems in the
> > first place).
> 
> Ah, I understand, most probably we are not aligned about what we talk, 
> sorry. Yes, I know, there was some discussion about the Makefiles and 
> that there are some requests to change them. Unfortunately, I'm no 
> Makefile expert.
> 
> So I'm only talking about ARM systems/architecture. If the Makefiles 
> discussed previously touch other systems/architectures, too, then this 
> is not what I'm talking about.

Note that this is not a question of ARM versus  other  architectures.
On  ARM  the  use  of  libgcc should be the default like on all other
architectures - only if needed it should be possible to switch  on  a
don't-use-libgcc  mode,  but  this  should  then  be  independent  of
architecture, either.

> > This is why I really hesitate to apply these patches - they make  the
> > workaround for a few broken systems the rule, instead of making clear
> > that this is an exception needed only by some (broken) systems.
> 
> For me the broken systems are in a first step ARM tool chains. Nothing 
> more. Not sure if we can limit it to a sub-group of ARM systems, 
> though? E.g. would it possible to have a CONFIG_SYS_DONT_RELY_ON_LIBGCC?

That would be a board specific thing, which is inappropriate,  as  it
does  not  depend on a specific board. The selection could be done by
passing some argument or environment variables to "make", though.

> > This is  in  no  way  a  question  of  optimization.  If  we  provide
> > replacements  for  the  libgcc  functions, _we_ will have to maintain
> > these and make sure they work correctly with all versions of GCC that
> > exist in the multiverse and with all of their possible and impossible
> > configurations. 
> 
> It was my understanding that Jean-Christophe copied this code from 
> kernel? Like we do with some other systems, e.g. MTD? So it's 
> maintained by kernel developers? Sorry if I missed something here.

Even if it's maintained in Linux, we still have to follow any changes
there, and port these to U-Boot, and analyse each new problem popping
up by future uses of C statements that cause GCC to generate libgcc
calls - that may or may not be covered by the kernel provided code.

No matter where we get the code from, an ongoing effort will be
needed to maintain this.

> Yes. I talk about "broken tool chains == ARM tool chains". Nothing 

This is where I disagree. Why should we automatically assume that
there are no sane ARM toolchains?

We should always assume to have a usable toolchain  first,  and  only
fall  back  on the workaround if it's really necessary - no matter if
it's ARM or anything else.

Binding this to ARM is IMHO inherently wrong.

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
That said, there may be good reasons for what you did beyond obsequi-
ous sycophantic parody. Perhaps you might be so kind as to elucidate.
         -- Tom Christiansen in <5ldjbm$jtk$1 at csnews.cs.colorado.edu>


More information about the U-Boot mailing list