This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] linux/fs.h - Convert debug functions declared inline __attribute__((format (printf,x,y) to statement expression macros


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]