[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).