[PATCH] BUILD_BUG_ON: make it handle more cases
Stephen Rothwell
sfr at canb.auug.org.au
Thu Nov 5 11:20:20 EST 2009
Hi Rusty,
On Tue, 20 Oct 2009 14:15:33 +1030 Rusty Russell <rusty at rustcorp.com.au> 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 at canb.auug.org.au
http://www.canb.auug.org.au/~sfr/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20091105/71f94b78/attachment.pgp>
More information about the Linuxppc-dev
mailing list