[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