lkml.org 
[lkml]   [2005]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: CONFIG_PRINTK doesn't makes size smaller
    From
    On 263, 09 20, 2005 at 12:48:59AM -0700, Vadim Lobanov wrote:
    > On Tue, 20 Sep 2005, Andrey Panin wrote:
    >
    > > On 263, 09 20, 2005 at 02:14:55PM +0800, colin wrote:
    > > >
    > > > Hi there,
    > > > I tried to make kernel with CONFIG_PRINTK off. I considered it should become
    > > > smaller, but it didn't because it actually isn't an empty function, and
    > > > there are many copies of it in vmlinux, not just one. Here is its
    > > > definition:
    > > > static inline int printk(const char *s, ...) { return 0; }
    > > >
    > > > I change the definition to this and it can greatly reduce the size by about
    > > > 5%:
    > > > #define printk(...) do {} while (0)
    > > > However, this definition would lead to error in some situations. For
    > > > example:
    > > > 1. (printk)
    > > > 2. ret = printk
    > > >
    > > > I hope someone could suggest a better definition of printk that can both
    > > > make printk smaller and eliminate errors.
    > >
    > > What about the macro below ?
    > >
    > > #define printk(...) ({ do { } while(0); 0; })
    >
    > So what does the do-while loop give us in the above case? In other
    > words, why not just do the following...?

    do-while loop eliminates "statement with no effect" warnings from gcc4.

    > #define printk(...) ({ 0; })
    >

    --
    Andrey Panin | Linux and UNIX system administrator
    pazke@donpac.ru | PGP key: wwwkeys.pgp.net
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-09-20 11:38    [W:0.023 / U:60.464 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site