[Apologies for the previous HTML format reply :-( ...]

I've now eliminated our uses of deprecated core perl symbols in commits 
1362399, 1362409 and 1362414, although we'll need to update Apache-Test in 
mod_perl to get the commit which touched that.

This gets mod_perl building again with a perl that doesn't have large files 
support.

I still think we should also remove our usage of PERL_CORE, though...



From: Steve Hay [mailto:steve.m....@googlemail.com] 
Sent: 13 July 2012 08:23
To: Fred Moyer
Cc: d...@rentrak.com; modperl@perl.apache.org; mod_perl Dev
Subject: Re: [MP2] Nullav undeclared make error

Various perl changes removed Nullsv, Nullav etc from the core (e.g. see 
24792b8dab and 3ae1b22641), but left definitions of them for when PERL_CORE is 
not defined, for backwards compatibility with all those CPAN modules out there 
which use them.

The problem here is what Nick hinted at in his comment for 24792b8dab, namely 
that "obviously" nobody outside of the perl core is defining PERL_CORE... It's 
a rather too common and surely always wrong thing to do that, and we're guilty 
of it ourselves: modperl_perl_includes.h defines PERL_CORE as some kind of 
optimization, but only when USE_ITHREADS is defined and USE_LARGE_FILES is not. 
That's not a common configuration, hence we haven't seen this happen before, 
but the last line which I've quoted below does indeed undefine large file 
support, hence PERL_CORE gets defined and the definitions of Nullsv, Nullav etc 
are not provided.

I replaced all uses of Nullxx with (XX*)NULL in my modules some time ago in the 
belief that if it was good for the core then it was good for me, so I will do 
likewise for mod_perl unless anyone objects (or beats me to it).

Reply via email to