[U-Boot] GCC 5.x compile errors
Albert ARIBAUD
albert.u.boot at aribaud.net
Wed Jul 1 07:53:39 CEST 2015
Hello ANDY,
On Tue, 30 Jun 2015 22:02:38 +0000, ANDY KENNEDY
<ANDY.KENNEDY at adtran.com> wrote:
> Attempted to build u-boot with gcc 5.x for mipsel 32. Result was that
> I get brokenness around arch/mips/include/asm/io.h and
> arch/mips/include/asm/system.h. The source lines all look something
> like:
>
> extern inline void func()
> {
> func text ;
> }
>
> Question: Is that valid C text? I have never seen such. Also, what
> does this mean from a header file? The way I read this is
>
> extern = the following declare exists in global space (no code here)
>
> inline = use this function definition in line in place of creating a
> text ref section
>
> I would expect these two to be mutually exclusive????
>
> Please enlighten me!
Actually, extern vs static takes a meaning for inline functions
different from the one for traditional non-inline ones.
"If you specify both inline and extern in the function
definition, then the definition is used only for inlining.
In no case is the function compiled on its own, not even
if you refer to its address explicitly. Such an address
becomes an external reference, as if you had only declared
the function, and had not defined it."
See https://gcc.gnu.org/onlinedocs/gcc/Inline.html for all the gory
details on inline functions (this is for the latest version; if you're
working with a specific, older, gcc version, look up the corresponding
page, in case subtle changes were introduced).
> Thanks,
> Andy
Amicalement,
--
Albert.
More information about the U-Boot
mailing list