[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