On Tue, 26 Feb 2008, Matthew Wilcox wrote: > On Tue, Feb 26, 2008 at 08:02:27PM -0800, Joe Perches wrote: > > Converting inline __attribute__((format (printf,x,y) functions > > to macros or statement expressions produces smaller objects > > > > before: > > $ size vmlinux > > text data bss dec hex filename > > 4716770 474560 618496 5809826 58a6a2 vmlinux > > after: > > $ size vmlinux > > text data bss dec hex filename > > 4716706 474560 618496 5809762 58a662 vmlinux > > > -static inline void __attribute__((format(printf, 1, 2))) > > -__simple_attr_check_format(const char *fmt, ...) > > -{ > > - /* don't do anything, just let the compiler check the arguments; */ > > -} > > +/* don't do anything, just let the compiler check the arguments; */ > > + > > +#define __simple_attr_check_format(fmt, args...) \ > > + do { if (0) printk(fmt, ##args); } while (0) > > That's very interesting. It's only 64 bytes, but still, it's not > supposed to have any different effect. Could you distill a test case > for the GCC folks and file it in their bugzilla? > I'm not seeing any change in text size with allyesconfig after applying this patch with latest git: text data bss dec hex filename 32696210 5021759 6735572 44453541 2a64ea5 vmlinux.before 32696210 5021759 6735572 44453541 2a64ea5 vmlinux.after Joe, what version of gcc are you using? David - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html