Hi Rusty, On Tue, 20 Oct 2009 14:15:33 +1030 Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote: > > +#ifndef __OPTIMIZE__ > +#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) > +#else > +extern int __build_bug_on_failed; > +#define BUILD_BUG_ON(condition) \ > + do { \ > + ((void)sizeof(char[1 - 2*!!(condition)])); \ > + if (condition) __build_bug_on_failed = 1; \ > + } while(0) > +#endif > +#define MAYBE_BUILD_BUG_ON(condition) BUILD_BUG_ON(condition) > + I decided to try this in linux-next, but an x86_64 allmodconfig build gave this (gcc 4.4.0): ERROR: "__build_bug_on_failed" [drivers/net/virtio_net.ko] undefined! ERROR: "__build_bug_on_failed" [drivers/block/virtio_blk.ko] undefined! I assume that this is caused by the "MAYBE_BUILD_BUG_ON(fbit >= 32)" in virtio_has_feature() (in include/linux/virtio_config.h) which is called all over the place. Unfortunately, virtio_has_feature() gets uninlined in those two files ... I have taken the patch back out again for today. -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx http://www.canb.auug.org.au/~sfr/
Attachment:
pgp7OvbYAp599.pgp
Description: PGP signature