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

Geert Uytterhoeven
2013-04-10T14:19:15Z

Hi Michal,

On Wed, Apr 10, 2013 at 2:26 PM, Michal Marek <mmarek@suse.cz> wrote:
> 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@suse.cz> 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 for the patch, but modpost still fails with

ERROR: "strlen" [net/ipv4/ip_tunnel.ko] undefined!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds