[U-Boot] GCC 5.x compile errors
Daniel Schwierzeck
daniel.schwierzeck at gmail.com
Wed Jul 1 16:43:54 CEST 2015
Am 01.07.2015 um 07:53 schrieb Albert ARIBAUD:
> 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).
>
the kernel changed it all to "static inline" long time ago. We should do
the same. I'll send a patch to fix it.
--
- Daniel
More information about the U-Boot
mailing list