perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <>
Subject Re: [mp2] t/modperl/util hangs on Linux
Date Wed, 15 Dec 2004 21:03:36 GMT
Markus Wichitill wrote:
> Stas Bekman wrote:
>>> Déjà-vu:
>> But I want to know why does this happen on your build and I can't 
>> reproduce it here. That what bugs me. In case you have some time to 
>> look at it, 
> Well, I haven't written any C/C++ in a while and I've never had to deal 
> with macro hell, but as far as I can see, newSVpvf is defined in Perl's 
> embed.h:
> #define newSVpvf        Perl_newSVpvf
> If I add that line to the top of ModPerl__Util.h manually, it works. If 
> I add
> #ifndef newSVpvf
> #error newSVpvf not defined
> #endif
> to the end of embed.h and compile, it seems that newSVpvf doesn't get 
> defined. But I have no idea how to trace through that horrible, 
> generated #ifdef jungle. To quote embed.h:
> /* (Doing namespace management portably in C is really gross.) */
> /* By defining PERL_NO_SHORT_NAMES (not done by default) the short forms
>  * (like warn instead of Perl_warn) for the API are not defined.
>  * Not defining the short forms is a good thing for cleaner embedding. */

It goes like this:



#include "mod_perl.h"

which includes:

#include "modperl_common_includes.h"

which includes:

#include "modperl_perl_includes.h"

which includes:

#include "perl.h"

which finally includes:

#  include "embed.h"

which defines:

#define newSVpvf                Perl_newSVpvf

but of course this doesn't include possible #ifdef branching. so you want 
to check that.

Also there is:

cd WrapXS/ModPerl/Util
make Util.i

now you will find all the macros expanded in Util.i. I see:

  SV* Perl_newSVpvf( PerlInterpreter *my_perl __attribute__((unused)), 
const char
* pat, ...)

w/o the patch that was applied to fix this for you.

Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker     mod_perl Guide --->

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message