[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <4AC318450200007800017355@vpn.id2.novell.com>
Date: Wed, 30 Sep 2009 07:35:17 +0100
From: "Jan Beulich" <JBeulich@...ell.com>
To: "Hollis Blanchard" <hollisb@...ibm.com>
Cc: <sfr@...b.auug.org.au>, <akpm@...ux-foundation.org>,
<linuxppc-dev@...ts.ozlabs.org>, <kvm-ppc@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-next@...r.kernel.org>
Subject: Re: linux-next: tree build failure
>>> Hollis Blanchard <hollisb@...ibm.com> 30.09.09 01:39 >>>
>On Tue, 2009-09-29 at 10:28 +0100, Jan Beulich wrote:
>> >>> Hollis Blanchard 09/29/09 2:00 AM >>>
>> >First, I think there is a real bug here, and the code should read like
>> >this (to match the comment):
>> > /* type has to be known at build time for optimization */
>> >- BUILD_BUG_ON(__builtin_constant_p(type));
>> >+ BUILD_BUG_ON(!__builtin_constant_p(type));
>> >
>> >However, I get the same build error *both* ways, i.e.
>> >__builtin_constant_p(type) evaluates to both 0 and 1? Either that, or
>> >the new BUILD_BUG_ON() macro isn't working...
>>
>> No, at this point of the compilation process it's neither zero nor one,
>> it's simply considered non-constant by the compiler at that stage
>> (this builtin is used for optimization, not during parsing, and the
>> error gets generated when the body of the function gets parsed,
>> not when code gets generated from it).
>
>I think I see what you're saying. Do you have a fix to suggest?
The one Rusty suggested the other day may help here. I don't like it
as a drop-in replacement for BUILD_BUG_ON() though (due to it
deferring the error generated to the linking stage), I'd rather view
this as an improvement to MAYBE_BUILD_BUG_ON() (which should
then be used here).
Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists