Subject: [patchset] inline functions related debloating, -V2 this patchset (for the 2.6.16 tree) consists of 4 loosely related patches (which can be applied in any order): gcc-no-forced-inlining.patch gcc-unit-at-a-time.patch gcc-mark-forced-inline.patch uninline-capable.patch the purpose of these patches is to reduce the kernel's .text size, in particular if CONFIG_CC_OPTIMIZE_FOR_SIZE is specified. The effect of the patches on x86, using a generic .config is: text data bss dec hex filename 3286166 869852 387260 4543278 45532e vmlinux-orig 3194123 955168 387260 4536551 4538e7 vmlinux-inline 3119495 884960 387748 4392203 43050b vmlinux-inline+units 3051709 869380 387748 4308837 41bf65 vmlinux-inline+units+fixes 3049357 868928 387748 4306033 41b471 vmlinux-inline+units+fixes+capable i.e. a 7.8% code-size reduction. Using a tiny .config gives: text data bss dec hex filename 437271 77646 32192 547109 85925 vmlinux-orig 452694 77646 32192 562532 89564 vmlinux-inline 431891 77422 32128 541441 84301 vmlinux-inline+units 414803 77422 32128 524353 80041 vmlinux-inline+units+fixes 414020 77422 32128 523570 7fd32 vmlinux-inline+units+fixes+capable or an 5.6% reduction. x86 allyesconfig gives: text data bss dec filename 24190215 6737902 1775592 32703709 vmlinux-allyes-speed-orig 20096423 6758758 1775592 28630773 vmlinux-allyes-orig 19223511 6844002 1775656 27843169 vmlinux-allyes-inline+units+fixes+capable or a 4.5% reduction ontop of the 20.4% that CC_OPTIMIZE_FOR_SIZE gives. i've also done test-builds with CC_OPTIMIZE_FOR_SIZE disabled: text data bss dec hex filename 4080998 870384 387260 5338642 517612 vmlinux-orig 4084421 872024 387260 5343705 5189d9 vmlinux-inline 4010957 834048 387748 5232753 4fd871 vmlinux-inline+units 4010039 833112 387748 5230899 4fd133 vmlinux-inline+units+fixes 4007617 833120 387748 5228485 4fc7c5 vmlinux-inline+units+fixes+capable or a 1.8% code size reduction. Ingo