[coreboot] CONFIG_ about which messages to compile in
Mart Raudsepp
mart.raudsepp at artecdesign.ee
Tue Feb 10 18:27:19 CET 2009
Ühel kenal päeval, T, 2009-02-10 kell 18:14, kirjutas Peter Stuge:
> ron minnich wrote:
> > >> The log level is now given with an argument, so it's trickier to
> > >> get the code excluded from the binary completely.
> > >
> > > Maybe split it up then? (But _only_ statics within the printk code!)
> >
> > Actually it's not that hard.
>
> Yep, that's right.
>
>
> > You have a global , MAXLOGLEVEL. Turn printk into something like this:
> >
> > #define printk(a, b, ...) if (a <= MAXLOGLEVEL) print(blah blah)
> >
> > and then let the compiler optimize it all out.
>
> That's what I thought of at first too, but I was discouraged by Mart.
> Do you see a real problem with this, Mart?
Nope. that's similar to what I had in mind.
>
> > >> Likely can coerce gcc to do that with specially crafted code.
> > >
> > > I would prefer to avoid that.
> >
> > This is very non-special
>
> Yep, it's all at cpp time and not at all strange. I would prefer
> avoiding compiler tricks when we can reach the goal just using cpp.
Yeah, and if(0) and the like is coercing gcc :)
However I don't think using cpp for this really flies well if we are
loosing __attribute__((format (printf, 2, 3))) checks then.
Mart
More information about the coreboot
mailing list