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

Michal Marek
2013-04-10T10:18:05Z

(Added Andi to CC)

On 10.4.2013 11:24, Geert Uytterhoeven wrote:
[...]
> E.g. gcc turned
>
> strncat(name, "%d", 2);
>
> into a call to strlen() and a 16-bit store, causing a link failure, as
> arch/m68k/include/asm/string.h provides strlen() using a macro:
>
> ERROR: "strlen" [net/ipv4/ip_tunnel.ko] undefined!
[...]
> QUESTION: Should we re-enable -ffreestanding in the main Makefile instead?
>
> It was removed in
>
> commit 6edfba1b33c701108717f4e036320fc39abe1912
> Author: Andi Kleen <ak@suse.de>
> Date: Sat Mar 25 16:29:49 2006 +0100
>
> [PATCH] x86_64: Don't define string functions to builtin

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'?

Michal