Re: [patch 7/7] Make "inline" no longer mandatory for gcc 4.x

Kurt Wall
2006-01-07T19:05:43Z

On Fri, Jan 06, 2006 at 11:45:09AM +0100, Arjan van de Ven took 0 lines to write:
> Subject: when CONFIG_CC_OPTIMIZE_FOR_SIZE, allow gcc4 to control inlining
> From: Ingo Molnar <mingo@elte.hu>
>
> if optimizing for size (CONFIG_CC_OPTIMIZE_FOR_SIZE), allow gcc4 compilers
> to decide what to inline and what not - instead of the kernel forcing gcc
> to inline all the time. This requires several places that require to be
> inlined to be marked as such, previous patches in this series do that.
> This is probably the most flame-worthy patch of the series.

Hmm. This failed when using -Os while linking vmlinux (gcc 4.0.2):

AS arch/x86_64/lib/putuser.o
CC arch/x86_64/lib/usercopy.o
AR arch/x86_64/lib/lib.a
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
arch/x86_64/kernel/built-in.o(.text+0x506a): In function `fix_to_virt':
: undefined reference to `__this_fixmap_does_not_exist'
arch/x86_64/kernel/built-in.o(.text+0xbffd): In function `fix_to_virt':
: undefined reference to `__this_fixmap_does_not_exist'
arch/x86_64/kernel/built-in.o(.text+0xdba0): In function `fix_to_virt':
: undefined reference to `__this_fixmap_does_not_exist'
arch/x86_64/kernel/built-in.o(.text+0xdc1c): In function `fix_to_virt':
: undefined reference to `__this_fixmap_does_not_exist'
arch/x86_64/kernel/built-in.o(.text+0xdde8): In function `fix_to_virt':
: undefined reference to `__this_fixmap_does_not_exist'
make: *** [.tmp_vmlinux1] Error 1

This patch was applied on top of the previous 6 in the series from
Arjan. NB that it _did_ build with 3.4.4 and -Os enabled. I'm
rechecking, but this is the second time I've encountered this failure.

Kurt
--
Sauron is alive in Argentina!