Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: ModPerl

[MP2] Nullav undeclared make error

 

 

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded


dxs at rentrakmail

Jun 22, 2012, 12:50 PM

Post #1 of 7 (797 views)
Permalink
[MP2] Nullav undeclared make error

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 [at] rentrakmail 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.


fred at redhotpenguin

Jul 12, 2012, 5:33 PM

Post #2 of 7 (681 views)
Permalink
Re: [MP2] Nullav undeclared make error [In reply to]

> 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 <dxs [at] rentrakmail> 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 [at] rentrakmail 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.
>


steve.m.hay at googlemail

Jul 13, 2012, 12:22 AM

Post #3 of 7 (667 views)
Permalink
Re: [MP2] Nullav undeclared make error [In reply to]

On 13 July 2012 01:33, Fred Moyer <fred [at] redhotpenguin> 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 [at] rentrakmail>
> 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
>


Steve.Hay at verosoftware

Jul 17, 2012, 2:02 AM

Post #4 of 7 (671 views)
Permalink
RE: [MP2] Nullav undeclared make error [In reply to]

[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 [at] googlemail]
Sent: 13 July 2012 08:23
To: Fred Moyer
Cc: dxs [at] rentrak; modperl [at] perl; 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).


fred at redhotpenguin

Jul 17, 2012, 6:38 PM

Post #5 of 7 (667 views)
Permalink
Re: [MP2] Nullav undeclared make error [In reply to]

On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay <Steve.Hay [at] verosoftware> 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 [at] googlemail]
> Sent: 13 July 2012 08:23
> To: Fred Moyer
> Cc: dxs [at] rentrak; modperl [at] perl; 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).
>


fred at redhotpenguin

Jul 17, 2012, 6:38 PM

Post #6 of 7 (666 views)
Permalink
Re: [MP2] Nullav undeclared make error [In reply to]

On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay <Steve.Hay [at] verosoftware> 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 [at] googlemail]
> Sent: 13 July 2012 08:23
> To: Fred Moyer
> Cc: dxs [at] rentrak; modperl [at] perl; 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).
>


Steve.Hay at verosoftware

Jul 18, 2012, 12:20 AM

Post #7 of 7 (666 views)
Permalink
RE: [MP2] Nullav undeclared make error [In reply to]

Fred Moyer wrote on 2012-07-18:
> On Tue, Jul 17, 2012 at 2:02 AM, Steve Hay
<Steve.Hay [at] verosoftware>
> 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 [at] googlemail]
>> Sent: 13 July 2012 08:23
>> To: Fred Moyer
>> Cc: dxs [at] rentrak; modperl [at] perl; 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).
>>

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.