I've just stumbled on something perplexing. Compiling mod_validator[1], a large C++ module, for 2.1, I found each entry in the command_rec generating a syntax error. They are fine with 2.0.x.
The directives are declared with the conventional form: AP_INIT_TAKE1("ValidatorXSLTBase", (const char*(*)())ValidatorXSLTBase, NULL, OR_ALL, "Base for XSLT files" ) , with the explicit cast of the function to shut C++ up. Using the c++ with the -E option, I see that correctly expanded in 2.0 to { "ValidatorXSLTBase", (const char*(*)())ValidatorXSLTBase, __null, (1|2|4|8|16), TAKE1, "Base for XSLT files" } , but in 2.1, it expands to { "ValidatorXSLTBase", { .take1=(const char*(*)())ValidatorXSLTBase }, __null, (1|2|4|8|16), TAKE1, "Base for XSLT files" } , Anyone know what's causing this? The compiler is gcc-3.3.6. [1] http://apache.webthing.com/mod_validator/ -- Nick Kew