Re: [PATCH/RFC] m68k: Add -ffreestanding to KBUILD_CFLAGS

From: Michal Marek
Date: Wed Apr 10 2013 - 08:26:18 EST


On Wed, Apr 10, 2013 at 12:59:44PM +0200, Geert Uytterhoeven wrote:
> On Wed, Apr 10, 2013 at 12:18 PM, Michal Marek <mmarek@xxxxxxx> wrote:
> > On 10.4.2013 11:24, Geert Uytterhoeven wrote:
> > My understanding is, that with -fnobuiltin, the compiler is not allowed
> > to make assumptions about functions if it does not see their definition,
> > even if they resemble standard functions. E.g. on x86_64, strlen() is
> > out-of-line, so gcc would have to assume, that strcmp() has side
> > effects. How about just naming the m68k inline function 'strlen'?
>
> Having an inline function named "strlen" is not sufficient, as it needs an
> (exported) symbol named "strlen" at link time or module load time.

Really? MIPS and Xtensa both have an inline version of strcpy() and no
exported strcpy symbol. An I would naively assume, that if the compiler
sees a static inline definition of a function, then it will not generate
a function call. Although, the C standard does require the standard
library functions be available as external functions, so the compiler
would not be necessarily wrong :-/. Anyway, can you try if this
(untested) patch fixes the issue?

Thanks,
Michal