perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Hay <steve.m....@googlemail.com>
Subject Re: [MP2] Nullav undeclared make error
Date Fri, 13 Jul 2012 07:22:51 GMT
On 13 July 2012 01:33, Fred Moyer <fred@redhotpenguin.com> wrote:

> > mod_perl.c:265: error: ‘Nullav’ undeclared (first use in this function)
>
> Hmm, found this in
> http://search.cpan.org/~rjbs/perl-5.16.0/pod/perl5101delta.pod
>
> Uses of Nullav, Nullcv, Nullhv, Nullop, Nullsv etc have been replaced
> by NULL in the core code, and non-dual-life modules, as NULL is
> clearer to those unfamiliar with the core code.
>
> Maybe we need to replace these instances? Torsten/Gozer/SteveHay?? I'm
> not sure if those are backwards compatible with 5.14 at first glace.
>

Not sure what your reference to 5.14 there is? That's the 5.10.1 perldelta
which you've quoted, so 5.14 and 5.16 should be no different in this regard.

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

That will fix the OP's problem, but I think we should also remove the
"optimization" involving PERL_CORE too. I suspect most people nowadays have
large file support enabled and so aren't getting the "optimization" anyway,
but we should never be defining PERL_CORE in mod_perl regardless -- that's
just asking for trouble like this.



>
> On Fri, Jun 22, 2012 at 12:50 PM, David Shultz <dxs@rentrakmail.com>
> wrote:
> > Apache2 src: 2.2.22
> > mod_per src: 2.0.7
> > Installed Perl 5.16.0 hand built as:
> > CFLAGS='-m64 -mtune=nocona' ./Configure -A ccflags=-fPIC \
> > -Dprefix=/usr/local/stow/perl-5.16.0 -Dusethreads \
> > -Accflags=-DPERL_REENTRANT_MAXSIZE=65536 \
> > -Uuselargefiles -Dusemorebits
>

Mime
View raw message