Re: __STRICT_ANSI__ checks in headers

From: Kyle Moffett
Date: Sat Oct 07 2006 - 03:26:27 EST


On Oct 06, 2006, at 04:26:22, David Woodhouse wrote:
On Thu, 2006-10-05 at 11:16 +0300, Ismail Donmez wrote:
The problem shows itself in the modpost, somehow __extension__ clause seems to foobar module CRC. I am not yet successfull on making modpost ignore
__extension__ .

Any ideas appreciated.

Something like this (and build with GENERATE_PARSER=1) _ought_ to do it,
but doesn't work:

@@ -269,7 +270,7 @@ cvar_qualifier_seq:

cvar_qualifier:
CONST_KEYW | VOLATILE_KEYW | ATTRIBUTE_PHRASE
- | RESTRICT_KEYW
+ | RESTRICT_KEYW | EXTENSION_KEYW
{ /* restrict has no effect in prototypes so ignore it */
remove_node($1);
$$ = $1;

Well it's actually technically not a cvar_qualifier; it's a pseudo- arbitrarily attached keyword that can be stuck on any number of GCC- only constructs, like nested code: "__extension__ ({ foo(); 1; })" for example.

Probably the simplest thing to do is actually to just convert it into a nonexistent or whitespace token, or if there's a preprocessing step just #define it to the empty string.

Cheers,
Kyle Moffett

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/