This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] linux/fs.h - Convert debug functions declared inline __attribute__((format (printf,x,y) to statement expression macros
- From: David Rientjes <rientjes at google dot com>
- To: Matthew Wilcox <matthew at wil dot cx>
- Cc: Joe Perches <joe at perches dot com>, LKML <linux-kernel at vger dot kernel dot org>, Linus Torvalds <torvalds at linux-foundation dot org>, linux-fsdevel at vger dot kernel dot org, gcc at gcc dot gnu dot org
- Date: Tue, 26 Feb 2008 21:44:50 -0800 (PST)
- Subject: Re: [PATCH] linux/fs.h - Convert debug functions declared inline __attribute__((format (printf,x,y) to statement expression macros
- References: <1204081722.19319.405.camel@localhost> <1204084947.19319.411.camel@localhost> <20080227041316.GA23188@parisc-linux.org>
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