On Tue, Dec 14, 2004 at 03:24:30PM -0500, Stas Bekman wrote:
Joe Orton wrote:
Just make the generated export stub code #ifndef'ed?
#ifndef modperl_io_apache_init
const void *modperl_hack_io_apache_init = (const void *)modperl_io_apache_init;
#endif
if the symbol is a macro then there's no point in generating a stub for it anyway...
It's not a macro normally, it's a macro only on certain setups. Here it is again:
#ifdef PERLIO_LAYERS MP_INLINE void modperl_io_apache_init(pTHX); #else #define modperl_io_apache_init(pTHX) #endif
So that trick of #ifndef, won't work when PERLIO_LAYERS is not defined, right? Since modperl_io_apache_init is always defined but something it's a real symbols at other times it's a macro to keep some compilers happy.
I'm not sure what you're asking; the preprecessor doesn't know about C function declarations, it only cares about preprocessor directives. In the above case, the CPP macro "modperl_io_apache_init" is only defined in the case that PERLIO_LAYERS is not defined. So the fragment:
#ifndef modperl_io_apache_init const void *modperl_hack_io_apache_init = (const void*)modperl_io_apache_init; #endif
only expands in the case that PERLIO_LAYERS *is* defined, which is the desired outcome, right?
I think so. I wasn't aware that that preprocessor won't see C function declaration.
-- __________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
-- Report problems: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html List etiquette: http://perl.apache.org/maillist/email-etiquette.html