

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

_
