shrinks my 3.2.1-compiled kernel text by about 64 kbytes: text data bss dec hex filename 3316138 574844 726816 4617798 467646 vmlinux-before 3249255 555436 727204 4531895 4526b7 vmlinux-after mnm:/tmp> nm vmlinux-before|grep __constant_c_and_count_memset | wc 233 699 9553 mnm:/tmp> nm vmlinux-after|grep __constant_c_and_count_memset | wc 13 39 533 include/asm-i386/string.h | 0 include/linux/compiler.h | 6 ++++++ 2 files changed, 6 insertions(+) diff -puN include/linux/compiler.h~gcc3-inline-fix include/linux/compiler.h --- 25/include/linux/compiler.h~gcc3-inline-fix 2003-03-08 16:04:40.000000000 -0800 +++ 25-akpm/include/linux/compiler.h 2003-03-08 17:48:49.000000000 -0800 @@ -1,6 +1,12 @@ #ifndef __LINUX_COMPILER_H #define __LINUX_COMPILER_H +#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1) +#define inline __inline__ __attribute__((always_inline)) +#define __inline__ __inline__ __attribute__((always_inline)) +#define __inline __inline__ __attribute__((always_inline)) +#endif + /* Somewhere in the middle of the GCC 2.96 development cycle, we implemented a mechanism by which the user can annotate likely branch directions and expect the blocks to be reordered appropriately. Define __builtin_expect diff -puN include/asm-i386/string.h~gcc3-inline-fix include/asm-i386/string.h _