You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Fred Moyer <fr...@redhotpenguin.com> on 2012/07/13 02:33:24 UTC

Re: [MP2] Nullav undeclared make error

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

On Fri, Jun 22, 2012 at 12:50 PM, David Shultz <dx...@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
>
>> perl Makefile.PL MP_USE_STATIC=1 \
> MP_AP_PREFIX=/home/dxs/code/httpd-2.2.22 \
> MP_AP_CONFIGURE="--with-mpm=prefork"
>
> works fine
>
>> make
>
> produces the following error:
>
> cd "src/modules/perl" && make
> make[1]: Entering directory `/home/dxs/code/mod_perl-2.0.7/src/modules/perl'
> cc -I/home/dxs/code/mod_perl-2.0.7/src/modules/perl
> -I/home/dxs/code/mod_perl-2.0.7/xs
> -I/home/dxs/code/mod_perl-2.0.7/../httpd-2.2.22/include
> -I/home/dxs/code/mod_perl-2.0.7/../httpd-2.2.22/srclib/apr/include
> -I/home/dxs/code/mod_perl-2.0.7/../httpd-2.2.22/srclib/apr-util/include
> -I/home/dxs/code/mod_perl-2.0.7/../httpd-2.2.22/os/unix -D_REENTRANT
> -D_GNU_SOURCE -fPIC -DPERL_REENTRANT_MAXSIZE=65536 -fno-strict-aliasing
> -pipe -fstack-protector -I/usr/local/include -fPIC
> -DPERL_REENTRANT_MAXSIZE=65536
> -I/usr/local/stow/perl-5.16.0/lib/5.16.0/x86_64-linux-thread-multi-ld/CORE
> -DMOD_PERL -DMP_COMPAT_1X -O2 -c mod_perl.c
> mod_perl.c: In function ‘modperl_startup’:
> mod_perl.c:265: error: ‘Nullav’ undeclared (first use in this function)
> mod_perl.c:265: error: (Each undeclared identifier is reported only once
> mod_perl.c:265: error: for each function it appears in.)
> make[1]: *** [mod_perl.o] Error 1
> make[1]: Leaving directory `/home/dxs/code/mod_perl-2.0.7/src/modules/perl'
> make: *** [modperl_lib] Error 2
>
>
> -------------8<---------- Start Bug Report ------------8<----------
> 1. Problem Description:
>
>   [DESCRIBE THE PROBLEM HERE]
>
> 2. Used Components and their Configuration:
>
> *** mod_perl version 2.000007
>
> *** using /home/dxs/code/mod_perl-2.0.7/lib/Apache2/BuildConfig.pm
>
> *** Makefile.PL options:
>   MP_APR_LIB      => aprext
>   MP_AP_CONFIGURE => --with-mpm=prefork
>   MP_AP_PREFIX    => /home/dxs/code/httpd-2.2.22
>   MP_COMPAT_1X    => 1
>   MP_GENERATE_XS  => 1
>   MP_LIBNAME      => mod_perl
>   MP_USE_STATIC   => 1
>
>
> *** The httpd binary was not found
>
>
> *** (apr|apu)-config linking info
>
> -L/home/dxs/code/httpd-2.2.22/srclib/apr-util/.libs
>  -L/home/dxs/code/httpd-2.2.22/srclib/apr-util -laprutil-1
> /home/dxs/code/httpd-2.2.22/srclib/apr-util/xml/expat/libexpat.la
> -L/home/dxs/code/httpd-2.2.22/srclib/apr/.libs
>  -L/home/dxs/code/httpd-2.2.22/srclib/apr -lapr-1 -luuid -lrt -lcrypt
> -lpthread -ldl
>
>
>
> *** /usr/local/stow/perl-5.16.0/bin/perl -V
> Summary of my perl5 (revision 5 version 16 subversion 0) configuration:
>
>   Platform:
>     osname=linux, osvers=2.6.18-308.8.2.el5,
> archname=x86_64-linux-thread-multi-ld
>     uname='linux *********************** 2.6.18-308.8.2.el5 #1 smp tue jun
> 12 09:58:12 edt 2012 x86_64 x86_64 x86_64 gnulinux '
>     config_args='-A ccflags=-fPIC -Dprefix=/usr/local/stow/perl-5.16.0
> -Dusethreads -Accflags=-DPERL_REENTRANT_MAXSIZE=65536 -Uuselargefiles
> -Dusemorebits'
>     hint=previous, useposix=true, d_sigaction=define
>     useithreads=define, usemultiplicity=define
>     useperlio=define, d_sfio=undef, uselargefiles=undef, usesocks=undef
>     use64bitint=define, use64bitall=define, uselongdouble=define
>     usemymalloc=n, bincompat5005=undef
>   Compiler:
>     cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC
> -DPERL_REENTRANT_MAXSIZE=65536 -fno-strict-aliasing -pipe -fstack-protector
> -I/usr/local/include -fPIC -DPERL_REENTRANT_MAXSIZE=65536',
>     optimize='-O2',
>     cppflags='-D_REENTRANT -D_GNU_SOURCE -fPIC
> -DPERL_REENTRANT_MAXSIZE=65536 -fno-strict-aliasing -pipe -fstack-protector
> -I/usr/local/include -D_REENTRANT -D_GNU_SOURCE -fPIC
> -DPERL_REENTRANT_MAXSIZE=65536 -fno-strict-aliasing -pipe -fstack-protector
> -I/usr/local/include -fPIC -DPERL_REENTRANT_MAXSIZE=65536'
>     ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-52)',
> gccosandvers=''
>     intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
>     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
>     ivtype='long', ivsize=8, nvtype='long double', nvsize=16, Off_t='off_t',
> lseeksize=8
>     alignbytes=16, prototype=define
>   Linker and Libraries:
>     ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
>     libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
>     libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
>     perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
>     libc=/lib/libc-2.5.so, so=so, useshrplib=false, libperl=libperl.a
>     gnulibc_version='2.5'
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
>     cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib
> -fstack-protector'
>
>
> Characteristics of this binary (from libperl):
>   Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
>                         PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
>                         PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
>                         USE_64_BIT_INT USE_ITHREADS USE_LOCALE
>                         USE_LOCALE_COLLATE USE_LOCALE_CTYPE
>                         USE_LOCALE_NUMERIC USE_LONG_DOUBLE USE_PERLIO
>                         USE_PERL_ATOF USE_REENTRANT_API
>   Built under linux
>   Compiled at Jun 21 2012 15:26:04
>   %ENV:
>
> PERL5LIB="/dp/usr/dxs/perl5/lib/perl5/x86_64-linux-thread-multi-ld:/dp/usr/dxs/perl5/lib/perl5"
>     PERL_LOCAL_LIB_ROOT="/dp/usr/dxs/perl5"
>     PERL_LWP_USE_HTTP_10="1"
>     PERL_MB_OPT="--install_base /dp/usr/dxs/perl5"
>     PERL_MM_OPT="INSTALL_BASE=/dp/usr/dxs/perl5"
>   @INC:
>     /dp/usr/dxs/perl5/lib/perl5/x86_64-linux-thread-multi-ld
>     /dp/usr/dxs/perl5/lib/perl5/x86_64-linux-thread-multi-ld
>     /dp/usr/dxs/perl5/lib/perl5
>
> /usr/local/stow/perl-5.16.0/lib/site_perl/5.16.0/x86_64-linux-thread-multi-ld
>     /usr/local/stow/perl-5.16.0/lib/site_perl/5.16.0
>     /usr/local/stow/perl-5.16.0/lib/5.16.0/x86_64-linux-thread-multi-ld
>     /usr/local/stow/perl-5.16.0/lib/5.16.0
>     .
>
> *** Packages of interest status:
>
> Apache2            : -
> Apache2::Request   : -
> CGI                : 3.59
> ExtUtils::MakeMaker: 6.63_02
> LWP                : 6.04
> mod_perl           : -
> mod_perl2          : -
>
>
> 3. This is the core dump trace: (if you get a core dump):
>
>   [CORE TRACE COMES HERE]
>
> This report was generated by t/REPORT on Fri Jun 22 19:41:38 2012 GMT.
>
> -------------8<---------- End Bug Report --------------8<----------
>
> --
> David Shultz | Senior Developer, Theatrical Division | p  503.284.7581 ext.
> 248| f  800.656.7806 | dxs@rentrakmail.com RENTRAK | www.rentrak.com |
> NASDAQ: RENT
>
> Notice: This message is confidential and is intended only for the
> recipient(s) named above. If you have received this message in error, or are
> not the named recipient(s), please immediately notify the sender at
> 503.284.7581 ext. 248 and delete this message from your computer.
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [MP2] Nullav undeclared make error

Posted by Steve Hay <st...@googlemail.com>.
On 8 August 2012 21:50, Fred Moyer <fr...@redhotpenguin.com> wrote:
> On Wed, Jul 18, 2012 at 12:20 AM, Steve Hay <St...@verosoftware.com> wrote:
>> Fred Moyer wrote on 2012-07-18:
>>> What update needs to happen to Apache-Test? If you want to make the
>>> needed commit I can start the release process.
>>
>> All the necessary commits are in. Commit 1362414 updated Apache-Test, so
>> I'm guessing we need to roll Apache-Test-1.38, and then update mod_perl
>> to include that to get that commit into a mod_perl release?
>
> A-T 1.38 is out. Do we need any other changes for 2.0.8 for this
> issue? I may review the RT list to see if I can resolve a few more
> issues.

No other changes for this are required that I'm aware of. I think
we're all good to go on this issue.


>
>
>>
>>
>>>
>>>> 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...
>>>
>>> Does this affect the minimum version of Perl we can support? I
>>> remember from the last mp2 release that there was a file with
>>> httpd/perl dependencies in it that I had to update.
>>
>> It shouldn't affect it. I did briefly break the build for 5.10.1 by
>> having used a new symbol which older perls don't have, but the buildbot
>> told me about that and I fixed it in commit 1362409. I will test with
>> 5.8 to be sure when I get a chance, but generally the changes were to
>> use NULL (rather than Nullsv et al ) a lot, so won't have any issues for
>> older perls.
>>
>> You could start the ball rolling with a new Apache-Test release in the
>> meantime, though: that only contained one Nullsv->NULL change, so
>> definitely isn't a problem.
>>
>> Btw, did we get anywhere with granting PAUSE perms to other committers?
>>
>>
>>>
>>>
>>>>
>>>>
>>>>
>>>> From: Steve Hay [mailto:steve.m.hay@googlemail.com]
>>>> Sent: 13 July 2012 08:23
>>>> To: Fred Moyer
>>>> Cc: dxs@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).
>>>>
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
> For additional commands, e-mail: dev-help@perl.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [MP2] Nullav undeclared make error

Posted by Fred Moyer <fr...@redhotpenguin.com>.
On Wed, Jul 18, 2012 at 12:20 AM, Steve Hay <St...@verosoftware.com> wrote:
> Fred Moyer wrote on 2012-07-18:
>> What update needs to happen to Apache-Test? If you want to make the
>> needed commit I can start the release process.
>
> All the necessary commits are in. Commit 1362414 updated Apache-Test, so
> I'm guessing we need to roll Apache-Test-1.38, and then update mod_perl
> to include that to get that commit into a mod_perl release?

A-T 1.38 is out. Do we need any other changes for 2.0.8 for this
issue? I may review the RT list to see if I can resolve a few more
issues.


>
>
>>
>>> 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...
>>
>> Does this affect the minimum version of Perl we can support? I
>> remember from the last mp2 release that there was a file with
>> httpd/perl dependencies in it that I had to update.
>
> It shouldn't affect it. I did briefly break the build for 5.10.1 by
> having used a new symbol which older perls don't have, but the buildbot
> told me about that and I fixed it in commit 1362409. I will test with
> 5.8 to be sure when I get a chance, but generally the changes were to
> use NULL (rather than Nullsv et al ) a lot, so won't have any issues for
> older perls.
>
> You could start the ball rolling with a new Apache-Test release in the
> meantime, though: that only contained one Nullsv->NULL change, so
> definitely isn't a problem.
>
> Btw, did we get anywhere with granting PAUSE perms to other committers?
>
>
>>
>>
>>>
>>>
>>>
>>> From: Steve Hay [mailto:steve.m.hay@googlemail.com]
>>> Sent: 13 July 2012 08:23
>>> To: Fred Moyer
>>> Cc: dxs@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).
>>>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


RE: [MP2] Nullav undeclared make error

Posted by Steve Hay <St...@verosoftware.com>.
Fred Moyer wrote on 2012-07-18:
> On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay
<St...@verosoftware.com>
> wrote:
>> 
>> 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.
> 
> What update needs to happen to Apache-Test? If you want to make the
> needed commit I can start the release process.

All the necessary commits are in. Commit 1362414 updated Apache-Test, so
I'm guessing we need to roll Apache-Test-1.38, and then update mod_perl
to include that to get that commit into a mod_perl release?


> 
>> 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...
> 
> Does this affect the minimum version of Perl we can support? I
> remember from the last mp2 release that there was a file with
> httpd/perl dependencies in it that I had to update.

It shouldn't affect it. I did briefly break the build for 5.10.1 by
having used a new symbol which older perls don't have, but the buildbot
told me about that and I fixed it in commit 1362409. I will test with
5.8 to be sure when I get a chance, but generally the changes were to
use NULL (rather than Nullsv et al ) a lot, so won't have any issues for
older perls.

You could start the ball rolling with a new Apache-Test release in the
meantime, though: that only contained one Nullsv->NULL change, so
definitely isn't a problem.

Btw, did we get anywhere with granting PAUSE perms to other committers?


> 
> 
>> 
>> 
>> 
>> From: Steve Hay [mailto:steve.m.hay@googlemail.com]
>> Sent: 13 July 2012 08:23
>> To: Fred Moyer
>> Cc: dxs@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).
>>




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


RE: [MP2] Nullav undeclared make error

Posted by Steve Hay <St...@verosoftware.com>.
Fred Moyer wrote on 2012-07-18:
> On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay
<St...@verosoftware.com>
> wrote:
>> 
>> 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.
> 
> What update needs to happen to Apache-Test? If you want to make the
> needed commit I can start the release process.

All the necessary commits are in. Commit 1362414 updated Apache-Test, so
I'm guessing we need to roll Apache-Test-1.38, and then update mod_perl
to include that to get that commit into a mod_perl release?


> 
>> 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...
> 
> Does this affect the minimum version of Perl we can support? I
> remember from the last mp2 release that there was a file with
> httpd/perl dependencies in it that I had to update.

It shouldn't affect it. I did briefly break the build for 5.10.1 by
having used a new symbol which older perls don't have, but the buildbot
told me about that and I fixed it in commit 1362409. I will test with
5.8 to be sure when I get a chance, but generally the changes were to
use NULL (rather than Nullsv et al ) a lot, so won't have any issues for
older perls.

You could start the ball rolling with a new Apache-Test release in the
meantime, though: that only contained one Nullsv->NULL change, so
definitely isn't a problem.

Btw, did we get anywhere with granting PAUSE perms to other committers?


> 
> 
>> 
>> 
>> 
>> From: Steve Hay [mailto:steve.m.hay@googlemail.com]
>> Sent: 13 July 2012 08:23
>> To: Fred Moyer
>> Cc: dxs@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).
>>




Re: [MP2] Nullav undeclared make error

Posted by Fred Moyer <fr...@redhotpenguin.com>.
On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay <St...@verosoftware.com> wrote:
>
> 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.

What update needs to happen to Apache-Test? If you want to make the
needed commit I can start the release process.

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

Does this affect the minimum version of Perl we can support? I
remember from the last mp2 release that there was a file with
httpd/perl dependencies in it that I had to update.


>
>
>
> From: Steve Hay [mailto:steve.m.hay@googlemail.com]
> Sent: 13 July 2012 08:23
> To: Fred Moyer
> Cc: dxs@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).
>

Re: [MP2] Nullav undeclared make error

Posted by Fred Moyer <fr...@redhotpenguin.com>.
On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay <St...@verosoftware.com> wrote:
>
> 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.

What update needs to happen to Apache-Test? If you want to make the
needed commit I can start the release process.

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

Does this affect the minimum version of Perl we can support? I
remember from the last mp2 release that there was a file with
httpd/perl dependencies in it that I had to update.


>
>
>
> From: Steve Hay [mailto:steve.m.hay@googlemail.com]
> Sent: 13 July 2012 08:23
> To: Fred Moyer
> Cc: dxs@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).
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


RE: [MP2] Nullav undeclared make error

Posted by Steve Hay <St...@verosoftware.com>.
[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.hay@googlemail.com] 
Sent: 13 July 2012 08:23
To: Fred Moyer
Cc: dxs@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).


RE: [MP2] Nullav undeclared make error

Posted by Steve Hay <St...@verosoftware.com>.
[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.hay@googlemail.com] 
Sent: 13 July 2012 08:23
To: Fred Moyer
Cc: dxs@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).


Re: [MP2] Nullav undeclared make error

Posted by Steve Hay <st...@googlemail.com>.
On 13 July 2012 01:33, Fred Moyer <fr...@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 <dx...@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
>

Re: [MP2] Nullav undeclared make error

Posted by Steve Hay <st...@googlemail.com>.
On 13 July 2012 01:33, Fred Moyer <fr...@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 <dx...@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
>