Build Failure on Perl 5.12 RC3

Build Failure on Perl 5.12 RC3

am 05.04.2010 20:39:17 von david

Hey all,

I'm testing Perl 5.12 RC3 and ran into these errors when trying to build =
mod_perl 2 (mod_perl 1 built fine FWIW):

benedict ~/dev/perl/mod_perl-2.0> /usr/local/perl-5.12/bin/perl =
Makefile.PL MP_AP_PREFIX=3D/usr/local/apache2-test MP_PROMPT_DEFAULT=3D1
Reading Makefile.PL args from @ARGV
MP_AP_PREFIX =3D /usr/local/apache2-test
MP_PROMPT_DEFAULT =3D 1
no conflicting prior mod_perl version found - good.
Configuring Apache/2.2.13 mod_perl/2.0.5-dev Perl/v5.12.0
Use of uninitialized value in join or string at lib/Apache2/Build.pm =
line 900.
Use of uninitialized value in join or string at lib/Apache2/Build.pm =
line 900.
Checking if your kit is complete...
Looks good
Writing Makefile for Apache2::Reload
Use of uninitialized value in join or string at lib/Apache2/Build.pm =
line 900.
Use of uninitialized value in join or string at lib/Apache2/Build.pm =
line 900.
Checking if your kit is complete...
Looks good
Writing Makefile for Apache2::SizeLimit
Subroutine MY::postamble redefined at ./Makefile.PL line 167.
Subroutine MY::constants redefined at ./Makefile.PL line 181.
[ info] generating script t/TEST
[ info] generating script ./t/cgi-bin/cookies.pl
[ info] generating script ./t/cgi-bin/next_available_port.pl
Checking if your kit is complete...
Looks good
[ info] generating script t/TEST
Writing Makefile for Apache::TestItSelf
Writing Makefile for Apache::Test
Checking for File::Spec...ok
Checking for Cwd...ok
[ info] generating script t/TEST
Checking if your kit is complete...
Looks good
Writing Makefile for ModPerl::Registry
Writing Makefile for APR::Base64
Writing Makefile for APR::Brigade
Writing Makefile for APR::Bucket
Writing Makefile for APR::BucketAlloc
Writing Makefile for APR::BucketType
Writing Makefile for APR::Date
Writing Makefile for APR::Error
Writing Makefile for APR::Finfo
Writing Makefile for APR::IpSubnet
Writing Makefile for APR::OS
Writing Makefile for APR::Pool
Writing Makefile for APR::SockAddr
Writing Makefile for APR::Socket
Writing Makefile for APR::Status
Writing Makefile for APR::String
Writing Makefile for APR::Table
Writing Makefile for APR::ThreadMutex
Writing Makefile for APR::ThreadRWLock
Writing Makefile for APR::URI
Writing Makefile for APR::UUID
Writing Makefile for APR::Util
Writing Makefile for APR
Writing Makefile for Apache2::Access
Writing Makefile for Apache2::CmdParms
Writing Makefile for Apache2::Command
Writing Makefile for Apache2::Connection
Writing Makefile for Apache2::ConnectionUtil
Writing Makefile for Apache2::Directive
Writing Makefile for Apache2::Filter
Writing Makefile for Apache2::FilterRec
Writing Makefile for Apache2::HookRun
Writing Makefile for Apache2::Log
Writing Makefile for Apache2::MPM
Writing Makefile for Apache2::Module
Writing Makefile for Apache2::Process
Writing Makefile for Apache2::RequestIO
Writing Makefile for Apache2::RequestRec
Writing Makefile for Apache2::RequestUtil
Writing Makefile for Apache2::Response
Writing Makefile for Apache2::ServerRec
Writing Makefile for Apache2::ServerUtil
Writing Makefile for Apache2::SubProcess
Writing Makefile for Apache2::SubRequest
Writing Makefile for Apache2::URI
Writing Makefile for Apache2::Util
Writing Makefile for Apache2
Writing Makefile for ModPerl::Global
Writing Makefile for ModPerl::Util
Writing Makefile for ModPerl
Writing Makefile for ModPerl::WrapXS
Writing Makefile for APR
Writing Makefile for APR::Const
Writing Makefile for APR::PerlIO
Writing Makefile for libaprext
Writing Makefile for APR_build
Writing Makefile for Apache2::Const
Writing Makefile for Apache2_build
Writing Makefile for ModPerl::Const
Writing Makefile for ModPerl
Writing Makefile for ModPerl::XS
Writing Makefile for mod_perl2
[warning] mod_perl dso library will be built as mod_perl.so
[warning] You'll need to add the following to httpd.conf:
[warning]=20
[warning] LoadModule perl_module modules/mod_perl.so
[warning]=20
[warning] depending on your build, mod_perl might not live in
[warning] the modules/ directory.

benedict ~/dev/perl/mod_perl-2.0> make -j3
cd "src/modules/perl" && make
cc -I/Users/david/dev/perl/mod_perl-2.0/src/modules/perl =
-I/Users/david/dev/perl/mod_perl-2.0/xs =
-I/usr/local/apache2-test/include -I/usr/local/apache2-test/include =
-I/usr/local/apache2-test/include -fno-common -DPERL_DARWIN =
-no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector =
-I/usr/local/include =
-I/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE -DMOD_PERL =
-DMP_COMPAT_1X -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp =
-O3 \
-c mod_perl.c && mv mod_perl.o mod_perl.lo
cc -I/Users/david/dev/perl/mod_perl-2.0/src/modules/perl =
-I/Users/david/dev/perl/mod_perl-2.0/xs =
-I/usr/local/apache2-test/include -I/usr/local/apache2-test/include =
-I/usr/local/apache2-test/include -fno-common -DPERL_DARWIN =
-no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector =
-I/usr/local/include =
-I/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE -DMOD_PERL =
-DMP_COMPAT_1X -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-precomp =
-O3 \
-c modperl_interp.c && mv modperl_interp.o modperl_interp.lo
In file included from =
/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE/per l.h:2429,
from modperl_perl_includes.h:65,
from modperl_common_includes.h:24,
from mod_perl.h:21,
from mod_perl.c:17:
/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE/han dy.h:108:1: =
warning: "bool" redefined
In file included from /usr/include/mach-o/dyld.h:29,
from =
/usr/local/apache2-test/include/apr_portable.h:166,
from =
/usr/local/apache2-test/include/http_protocol.h:31,
from modperl_apache_includes.h:30,
from mod_perl.h:20,
from mod_perl.c:17:
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdbool.h:36: 1: warning: =
this is the location of the previous definition
In file included from =
/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE/per l.h:2429,
from modperl_perl_includes.h:65,
from modperl_common_includes.h:24,
from mod_perl.h:21,
from modperl_interp.c:17:
/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE/han dy.h:108:1: =
warning: "bool" redefined
In file included from /usr/include/mach-o/dyld.h:29,
from =
/usr/local/apache2-test/include/apr_portable.h:166,
from =
/usr/local/apache2-test/include/http_protocol.h:31,
from modperl_apache_includes.h:30,
from mod_perl.h:20,
from modperl_interp.c:17:
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdbool.h:36: 1: warning: =
this is the location of the previous definition
mod_perl.c: In function =91modperl_shutdown=92:
mod_perl.c:62: error: =91my_perl=92 undeclared (first use in this =
function)
mod_perl.c:62: error: (Each undeclared identifier is reported only once
mod_perl.c:62: error: for each function it appears in.)
mod_perl.c: In function =91modperl_hook_post_config_last=92:
mod_perl.c:718: error: =91my_perl=92 undeclared (first use in this =
function)
mod_perl.c: In function =91modperl_child_exit=92:
mod_perl.c:814: error: =91my_perl=92 undeclared (first use in this =
function)
mod_perl.c: In function =91modperl_response_handler=92:
mod_perl.c:1036: error: =91my_perl=92 undeclared (first use in this =
function)
mod_perl.c: In function =91modperl_response_handler_cgi=92:
mod_perl.c:1079: error: =91my_perl=92 undeclared (first use in this =
function)
make[1]: *** [mod_perl.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
cp lib/Apache2/PerlSections/Dump.pm =
blib/lib/Apache2/PerlSections/Dump.pm
cp lib/ModPerl/TestRun.pm blib/lib/ModPerl/TestRun.pm
make: *** [modperl_lib] Error 2
make: *** Waiting for unfinished jobs....
cp bin/mp2bug blib/script/mp2bug
cp lib/Apache2/compat.pm blib/lib/Apache2/compat.pm
/usr/local/perl-5.12/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- =
blib/script/mp2bug
cp lib/Apache2/SourceTables.pm blib/lib/Apache2/SourceTables.pm
cp lib/ModPerl/Config.pm blib/lib/ModPerl/Config.pm
cp lib/ModPerl/FunctionMap.pm blib/lib/ModPerl/FunctionMap.pm
cp lib/ModPerl/Manifest.pm blib/lib/ModPerl/Manifest.pm
cp lib/APR/XSLoader.pm blib/lib/APR/XSLoader.pm
cp lib/Bundle/Apache2.pm blib/lib/Bundle/Apache2.pm
cp lib/ModPerl/Code.pm blib/lib/ModPerl/Code.pm
cp lib/ModPerl/CScan.pm blib/lib/ModPerl/CScan.pm
cp lib/Apache2/PerlSections.pm blib/lib/Apache2/PerlSections.pm
cp lib/mod_perl2.pm blib/lib/mod_perl2.pm
cp lib/ModPerl/MM.pm blib/lib/ModPerl/MM.pm
cp lib/ModPerl/ParseSource.pm blib/lib/ModPerl/ParseSource.pm
cp lib/ModPerl/BuildOptions.pm blib/lib/ModPerl/BuildOptions.pm
cp lib/typemap blib/arch/auto/Apache2/typemap
cp lib/ModPerl/MethodLookup.pm blib/lib/ModPerl/MethodLookup.pm
cp lib/Apache2/ParseSource.pm blib/lib/Apache2/ParseSource.pm
cp lib/ModPerl/WrapXS.pm blib/lib/ModPerl/WrapXS.pm
cp lib/ModPerl/BuildMM.pm blib/lib/ModPerl/BuildMM.pm
cp lib/Apache2/Resource.pm blib/lib/Apache2/Resource.pm
cp lib/ModPerl/MapUtil.pm blib/lib/ModPerl/MapUtil.pm
cp lib/ModPerl/TypeMap.pm blib/lib/ModPerl/TypeMap.pm
cp lib/Apache2/Build.pm blib/lib/Apache2/Build.pm
AutoSplitting blib/lib/Apache2/Build.pm (blib/lib/auto/Apache2/Build)
cp lib/Apache2/XSLoader.pm blib/lib/Apache2/XSLoader.pm
cp lib/ModPerl/TestReport.pm blib/lib/ModPerl/TestReport.pm
cp lib/Apache2/Status.pm blib/lib/Apache2/Status.pm
cp lib/ModPerl/StructureMap.pm blib/lib/ModPerl/StructureMap.pm
cp lib/Apache2/BuildConfig.pm blib/lib/Apache2/BuildConfig.pm
cp lib/Apache2/porting.pm blib/lib/Apache2/porting.pm

FYI, I built Perl with `sh Configure -des -Duseshrplib -Dusemultiplicity =
-Dprefix=3D'/usr/local/perl-5.12'`. Deets:

# /usr/local/perl-5.12/bin/perl -V
Summary of my perl5 (revision 5 version 12 subversion 0) configuration:
=20
Platform:
osname=3Ddarwin, osvers=3D10.3.0, archname=3Ddarwin-multi-2level
uname=3D'darwin benedict.local 10.3.0 darwin kernel version 10.3.0: =
fri feb 26 11:58:09 pst 2010; root:xnu-1504.3.12~1release_i386 i386 '
config_args=3D'-des -Duseshrplib -Dusemultiplicity =
-Dprefix=3D/usr/local/perl-5.12'
hint=3Drecommended, useposix=3Dtrue, d_sigaction=3Ddefine
useithreads=3Dundef, usemultiplicity=3Ddefine
useperlio=3Ddefine, d_sfio=3Dundef, uselargefiles=3Ddefine, =
usesocks=3Dundef
use64bitint=3Ddefine, use64bitall=3Ddefine, uselongdouble=3Dundef
usemymalloc=3Dn, bincompat5005=3Dundef
Compiler:
cc=3D'cc', ccflags =3D'-fno-common -DPERL_DARWIN -no-cpp-precomp =
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
optimize=3D'-O3',
cppflags=3D'-no-cpp-precomp -fno-common -DPERL_DARWIN =
-no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector =
-I/usr/local/include'
ccversion=3D'', gccversion=3D'4.2.1 (Apple Inc. build 5646) (dot =
1)', gccosandvers=3D''
intsize=3D4, longsize=3D8, ptrsize=3D8, doublesize=3D8, =
byteorder=3D12345678
d_longlong=3Ddefine, longlongsize=3D8, d_longdbl=3Ddefine, =
longdblsize=3D16
ivtype=3D'long', ivsize=3D8, nvtype=3D'double', nvsize=3D8, =
Off_t=3D'off_t', lseeksize=3D8
alignbytes=3D8, prototype=3Ddefine
Linker and Libraries:
ld=3D'env MACOSX_DEPLOYMENT_TARGET=3D10.3 cc', ldflags =3D' =
-fstack-protector -L/usr/local/lib'
libpth=3D/usr/local/lib /usr/lib
libs=3D-ldbm -ldl -lm -lutil -lc
perllibs=3D-ldl -lm -lutil -lc
libc=3D/usr/lib/libc.dylib, so=3Ddylib, useshrplib=3Dtrue, =
libperl=3Dlibperl.dylib
gnulibc_version=3D''
Dynamic Linking:
dlsrc=3Ddl_dlopen.xs, dlext=3Dbundle, d_dlsymun=3Dundef, ccdlflags=3D'=
'
cccdlflags=3D' ', lddlflags=3D' -bundle -undefined dynamic_lookup =
-L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):=20
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP =
USE_64_BIT_ALL
USE_64_BIT_INT USE_LARGE_FILES USE_PERLIO
USE_PERL_ATOF
Locally applied patches:
RC3
Built under darwin
Compiled at Apr 3 2010 14:13:48
@INC:
/usr/local/perl-5.12/lib/site_perl/5.12.0/darwin-multi-2leve l
/usr/local/perl-5.12/lib/site_perl/5.12.0
/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level
/usr/local/perl-5.12/lib/5.12.0
.

Thanks,

David=

Re: Build Failure on Perl 5.12 RC3

am 06.04.2010 03:20:46 von Fred Moyer

Builds ok here on OS X 10.6.3 (tests don't start yet though). Wonder
what the difference in our setups is.

phred@pooky ~/dev/svn/modperl/mod_perl-2.0 $ perl Makefile.PL
MP_AP_PREFIX=3D$HOME/dev/sl/httpd2/ MP_PROMPT_DEFAULT=3D1
Reading Makefile.PL args from @ARGV
MP_AP_PREFIX =3D /Users/phred/dev/sl/httpd2
MP_PROMPT_DEFAULT =3D 1
no conflicting prior mod_perl version found - good.
Configuring Apache/2.2.14 mod_perl/2.0.5-dev Perl/v5.12.0
Writing Makefile for Apache2::Reload
Writing Makefile for Apache2::SizeLimit
Subroutine MY::postamble redefined at ./Makefile.PL line 167.
Subroutine MY::constants redefined at ./Makefile.PL line 181.
generating script t/TEST
generating script ./t/cgi-bin/cookies.pl
generating script ./t/cgi-bin/next_available_port.pl
generating script t/TEST
Writing Makefile for Apache::TestItSelf
Writing Makefile for Apache::Test
Checking for File::Spec...ok
Checking for Cwd...ok
generating script t/TEST
Writing Makefile for ModPerl::Registry
Writing Makefile for APR::Base64

On Mon, Apr 5, 2010 at 11:39 AM, David E. Wheeler wr=
ote:
> Hey all,
>
> I'm testing Perl 5.12 RC3 and ran into these errors when trying to build =
mod_perl 2 (mod_perl 1 built fine FWIW):
>
> benedict ~/dev/perl/mod_perl-2.0> /usr/local/perl-5.12/bin/perl Makefile.=
PL MP_AP_PREFIX=3D/usr/local/apache2-test MP_PROMPT_DEFAULT=3D1
> Reading Makefile.PL args from @ARGV
> =A0 MP_AP_PREFIX =3D /usr/local/apache2-test
> =A0 MP_PROMPT_DEFAULT =3D 1
> no conflicting prior mod_perl version found - good.
> Configuring Apache/2.2.13 mod_perl/2.0.5-dev Perl/v5.12.0
> Use of uninitialized value in join or string at lib/Apache2/Build.pm line=
900.
> Use of uninitialized value in join or string at lib/Apache2/Build.pm line=
900.
> Checking if your kit is complete...
> Looks good
> Writing Makefile for Apache2::Reload
> Use of uninitialized value in join or string at lib/Apache2/Build.pm line=
900.
> Use of uninitialized value in join or string at lib/Apache2/Build.pm line=
900.
> Checking if your kit is complete...
> Looks good
> Writing Makefile for Apache2::SizeLimit
> Subroutine MY::postamble redefined at ./Makefile.PL line 167.
> Subroutine MY::constants redefined at ./Makefile.PL line 181.
> [ =A0 info] generating script t/TEST
> [ =A0 info] generating script ./t/cgi-bin/cookies.pl
> [ =A0 info] generating script ./t/cgi-bin/next_available_port.pl
> Checking if your kit is complete...
> Looks good
> [ =A0 info] generating script t/TEST
> Writing Makefile for Apache::TestItSelf
> Writing Makefile for Apache::Test
> Checking for File::Spec...ok
> Checking for Cwd...ok
> [ =A0 info] generating script t/TEST
> Checking if your kit is complete...
> Looks good
> Writing Makefile for ModPerl::Registry
> Writing Makefile for APR::Base64
> Writing Makefile for APR::Brigade
> Writing Makefile for APR::Bucket
> Writing Makefile for APR::BucketAlloc
> Writing Makefile for APR::BucketType
> Writing Makefile for APR::Date
> Writing Makefile for APR::Error
> Writing Makefile for APR::Finfo
> Writing Makefile for APR::IpSubnet
> Writing Makefile for APR::OS
> Writing Makefile for APR::Pool
> Writing Makefile for APR::SockAddr
> Writing Makefile for APR::Socket
> Writing Makefile for APR::Status
> Writing Makefile for APR::String
> Writing Makefile for APR::Table
> Writing Makefile for APR::ThreadMutex
> Writing Makefile for APR::ThreadRWLock
> Writing Makefile for APR::URI
> Writing Makefile for APR::UUID
> Writing Makefile for APR::Util
> Writing Makefile for APR
> Writing Makefile for Apache2::Access
> Writing Makefile for Apache2::CmdParms
> Writing Makefile for Apache2::Command
> Writing Makefile for Apache2::Connection
> Writing Makefile for Apache2::ConnectionUtil
> Writing Makefile for Apache2::Directive
> Writing Makefile for Apache2::Filter
> Writing Makefile for Apache2::FilterRec
> Writing Makefile for Apache2::HookRun
> Writing Makefile for Apache2::Log
> Writing Makefile for Apache2::MPM
> Writing Makefile for Apache2::Module
> Writing Makefile for Apache2::Process
> Writing Makefile for Apache2::RequestIO
> Writing Makefile for Apache2::RequestRec
> Writing Makefile for Apache2::RequestUtil
> Writing Makefile for Apache2::Response
> Writing Makefile for Apache2::ServerRec
> Writing Makefile for Apache2::ServerUtil
> Writing Makefile for Apache2::SubProcess
> Writing Makefile for Apache2::SubRequest
> Writing Makefile for Apache2::URI
> Writing Makefile for Apache2::Util
> Writing Makefile for Apache2
> Writing Makefile for ModPerl::Global
> Writing Makefile for ModPerl::Util
> Writing Makefile for ModPerl
> Writing Makefile for ModPerl::WrapXS
> Writing Makefile for APR
> Writing Makefile for APR::Const
> Writing Makefile for APR::PerlIO
> Writing Makefile for libaprext
> Writing Makefile for APR_build
> Writing Makefile for Apache2::Const
> Writing Makefile for Apache2_build
> Writing Makefile for ModPerl::Const
> Writing Makefile for ModPerl
> Writing Makefile for ModPerl::XS
> Writing Makefile for mod_perl2
> [warning] mod_perl dso library will be built as mod_perl.so
> [warning] You'll need to add the following to httpd.conf:
> [warning]
> [warning] =A0 LoadModule perl_module modules/mod_perl.so
> [warning]
> [warning] depending on your build, mod_perl might not live in
> [warning] the modules/ directory.
>
> benedict ~/dev/perl/mod_perl-2.0> make -j3
> cd "src/modules/perl" && make
> cc -I/Users/david/dev/perl/mod_perl-2.0/src/modules/perl -I/Users/david/d=
ev/perl/mod_perl-2.0/xs -I/usr/local/apache2-test/include -I/usr/local/apac=
he2-test/include =A0-I/usr/local/apache2-test/include -fno-common -DPERL_DA=
RWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/lo=
cal/include -I/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE -DMO=
D_PERL -DMP_COMPAT_1X -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-preco=
mp -O3 =A0\
> =A0 =A0 =A0 =A0-c mod_perl.c && mv mod_perl.o mod_perl.lo
> cc -I/Users/david/dev/perl/mod_perl-2.0/src/modules/perl -I/Users/david/d=
ev/perl/mod_perl-2.0/xs -I/usr/local/apache2-test/include -I/usr/local/apac=
he2-test/include =A0-I/usr/local/apache2-test/include -fno-common -DPERL_DA=
RWIN -no-cpp-precomp -fno-strict-aliasing -pipe -fstack-protector -I/usr/lo=
cal/include -I/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE -DMO=
D_PERL -DMP_COMPAT_1X -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -no-cpp-preco=
mp -O3 =A0\
> =A0 =A0 =A0 =A0-c modperl_interp.c && mv modperl_interp.o modperl_interp.=
lo
> In file included from /usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level=
/CORE/perl.h:2429,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_perl_includes.h:65,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_common_includes.h:24,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from mod_perl.h:21,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from mod_perl.c:17:
> /usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE/han dy.h:108:1: w=
arning: "bool" redefined
> In file included from /usr/include/mach-o/dyld.h:29,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from /usr/local/apache2-test/include/apr_=
portable.h:166,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from /usr/local/apache2-test/include/http=
_protocol.h:31,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_apache_includes.h:30,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from mod_perl.h:20,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from mod_perl.c:17:
> /usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdbool.h:36: 1: warning: t=
his is the location of the previous definition
> In file included from /usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level=
/CORE/perl.h:2429,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_perl_includes.h:65,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_common_includes.h:24,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from mod_perl.h:21,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_interp.c:17:
> /usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level/CORE/han dy.h:108:1: w=
arning: "bool" redefined
> In file included from /usr/include/mach-o/dyld.h:29,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from /usr/local/apache2-test/include/apr_=
portable.h:166,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from /usr/local/apache2-test/include/http=
_protocol.h:31,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_apache_includes.h:30,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from mod_perl.h:20,
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 from modperl_interp.c:17:
> /usr/lib/gcc/i686-apple-darwin10/4.2.1/include/stdbool.h:36: 1: warning: t=
his is the location of the previous definition
> mod_perl.c: In function =91modperl_shutdown=92:
> mod_perl.c:62: error: =91my_perl=92 undeclared (first use in this functio=
n)
> mod_perl.c:62: error: (Each undeclared identifier is reported only once
> mod_perl.c:62: error: for each function it appears in.)
> mod_perl.c: In function =91modperl_hook_post_config_last=92:
> mod_perl.c:718: error: =91my_perl=92 undeclared (first use in this functi=
on)
> mod_perl.c: In function =91modperl_child_exit=92:
> mod_perl.c:814: error: =91my_perl=92 undeclared (first use in this functi=
on)
> mod_perl.c: In function =91modperl_response_handler=92:
> mod_perl.c:1036: error: =91my_perl=92 undeclared (first use in this funct=
ion)
> mod_perl.c: In function =91modperl_response_handler_cgi=92:
> mod_perl.c:1079: error: =91my_perl=92 undeclared (first use in this funct=
ion)
> make[1]: *** [mod_perl.lo] Error 1
> make[1]: *** Waiting for unfinished jobs....
> cp lib/Apache2/PerlSections/Dump.pm blib/lib/Apache2/PerlSections/Dump.pm
> cp lib/ModPerl/TestRun.pm blib/lib/ModPerl/TestRun.pm
> make: *** [modperl_lib] Error 2
> make: *** Waiting for unfinished jobs....
> cp bin/mp2bug blib/script/mp2bug
> cp lib/Apache2/compat.pm blib/lib/Apache2/compat.pm
> /usr/local/perl-5.12/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- bli=
b/script/mp2bug
> cp lib/Apache2/SourceTables.pm blib/lib/Apache2/SourceTables.pm
> cp lib/ModPerl/Config.pm blib/lib/ModPerl/Config.pm
> cp lib/ModPerl/FunctionMap.pm blib/lib/ModPerl/FunctionMap.pm
> cp lib/ModPerl/Manifest.pm blib/lib/ModPerl/Manifest.pm
> cp lib/APR/XSLoader.pm blib/lib/APR/XSLoader.pm
> cp lib/Bundle/Apache2.pm blib/lib/Bundle/Apache2.pm
> cp lib/ModPerl/Code.pm blib/lib/ModPerl/Code.pm
> cp lib/ModPerl/CScan.pm blib/lib/ModPerl/CScan.pm
> cp lib/Apache2/PerlSections.pm blib/lib/Apache2/PerlSections.pm
> cp lib/mod_perl2.pm blib/lib/mod_perl2.pm
> cp lib/ModPerl/MM.pm blib/lib/ModPerl/MM.pm
> cp lib/ModPerl/ParseSource.pm blib/lib/ModPerl/ParseSource.pm
> cp lib/ModPerl/BuildOptions.pm blib/lib/ModPerl/BuildOptions.pm
> cp lib/typemap blib/arch/auto/Apache2/typemap
> cp lib/ModPerl/MethodLookup.pm blib/lib/ModPerl/MethodLookup.pm
> cp lib/Apache2/ParseSource.pm blib/lib/Apache2/ParseSource.pm
> cp lib/ModPerl/WrapXS.pm blib/lib/ModPerl/WrapXS.pm
> cp lib/ModPerl/BuildMM.pm blib/lib/ModPerl/BuildMM.pm
> cp lib/Apache2/Resource.pm blib/lib/Apache2/Resource.pm
> cp lib/ModPerl/MapUtil.pm blib/lib/ModPerl/MapUtil.pm
> cp lib/ModPerl/TypeMap.pm blib/lib/ModPerl/TypeMap.pm
> cp lib/Apache2/Build.pm blib/lib/Apache2/Build.pm
> AutoSplitting blib/lib/Apache2/Build.pm (blib/lib/auto/Apache2/Build)
> cp lib/Apache2/XSLoader.pm blib/lib/Apache2/XSLoader.pm
> cp lib/ModPerl/TestReport.pm blib/lib/ModPerl/TestReport.pm
> cp lib/Apache2/Status.pm blib/lib/Apache2/Status.pm
> cp lib/ModPerl/StructureMap.pm blib/lib/ModPerl/StructureMap.pm
> cp lib/Apache2/BuildConfig.pm blib/lib/Apache2/BuildConfig.pm
> cp lib/Apache2/porting.pm blib/lib/Apache2/porting.pm
>
> FYI, I built Perl with `sh Configure -des -Duseshrplib -Dusemultiplicity =
-Dprefix=3D'/usr/local/perl-5.12'`. Deets:
>
> # /usr/local/perl-5.12/bin/perl -V
> Summary of my perl5 (revision 5 version 12 subversion 0) configuration:
>
> =A0Platform:
> =A0 =A0osname=3Ddarwin, osvers=3D10.3.0, archname=3Ddarwin-multi-2level
> =A0 =A0uname=3D'darwin benedict.local 10.3.0 darwin kernel version 10.3.0=
: fri feb 26 11:58:09 pst 2010; root:xnu-1504.3.12~1release_i386 i386 '
> =A0 =A0config_args=3D'-des -Duseshrplib -Dusemultiplicity -Dprefix=3D/usr=
/local/perl-5.12'
> =A0 =A0hint=3Drecommended, useposix=3Dtrue, d_sigaction=3Ddefine
> =A0 =A0useithreads=3Dundef, usemultiplicity=3Ddefine
> =A0 =A0useperlio=3Ddefine, d_sfio=3Dundef, uselargefiles=3Ddefine, usesoc=
ks=3Dundef
> =A0 =A0use64bitint=3Ddefine, use64bitall=3Ddefine, uselongdouble=3Dundef
> =A0 =A0usemymalloc=3Dn, bincompat5005=3Dundef
> =A0Compiler:
> =A0 =A0cc=3D'cc', ccflags =3D'-fno-common -DPERL_DARWIN -no-cpp-precomp -=
fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include',
> =A0 =A0optimize=3D'-O3',
> =A0 =A0cppflags=3D'-no-cpp-precomp -fno-common -DPERL_DARWIN -no-cpp-prec=
omp -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
> =A0 =A0ccversion=3D'', gccversion=3D'4.2.1 (Apple Inc. build 5646) (dot 1=
)', gccosandvers=3D''
> =A0 =A0intsize=3D4, longsize=3D8, ptrsize=3D8, doublesize=3D8, byteorder=
=3D12345678
> =A0 =A0d_longlong=3Ddefine, longlongsize=3D8, d_longdbl=3Ddefine, longdbl=
size=3D16
> =A0 =A0ivtype=3D'long', ivsize=3D8, nvtype=3D'double', nvsize=3D8, Off_t=
=3D'off_t', lseeksize=3D8
> =A0 =A0alignbytes=3D8, prototype=3Ddefine
> =A0Linker and Libraries:
> =A0 =A0ld=3D'env MACOSX_DEPLOYMENT_TARGET=3D10.3 cc', ldflags =3D' -fstac=
k-protector -L/usr/local/lib'
> =A0 =A0libpth=3D/usr/local/lib /usr/lib
> =A0 =A0libs=3D-ldbm -ldl -lm -lutil -lc
> =A0 =A0perllibs=3D-ldl -lm -lutil -lc
> =A0 =A0libc=3D/usr/lib/libc.dylib, so=3Ddylib, useshrplib=3Dtrue, libperl=
=3Dlibperl.dylib
> =A0 =A0gnulibc_version=3D''
> =A0Dynamic Linking:
> =A0 =A0dlsrc=3Ddl_dlopen.xs, dlext=3Dbundle, d_dlsymun=3Dundef, ccdlflags=
=3D' '
> =A0 =A0cccdlflags=3D' ', lddlflags=3D' -bundle -undefined dynamic_lookup =
-L/usr/local/lib -fstack-protector'
>
>
> Characteristics of this binary (from libperl):
> =A0Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0PERL_IMPLICIT_CONTEXT PERL=
_MALLOC_WRAP USE_64_BIT_ALL
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0USE_64_BIT_INT USE_LARGE_F=
ILES USE_PERLIO
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0USE_PERL_ATOF
> =A0Locally applied patches:
> =A0 =A0 =A0 =A0RC3
> =A0Built under darwin
> =A0Compiled at Apr =A03 2010 14:13:48
> =A0@INC:
> =A0 =A0/usr/local/perl-5.12/lib/site_perl/5.12.0/darwin-multi-2l evel
> =A0 =A0/usr/local/perl-5.12/lib/site_perl/5.12.0
> =A0 =A0/usr/local/perl-5.12/lib/5.12.0/darwin-multi-2level
> =A0 =A0/usr/local/perl-5.12/lib/5.12.0
> =A0 =A0.
>
> Thanks,
>
> David

Re: Build Failure on Perl 5.12 RC3

am 06.04.2010 07:45:54 von david

On Apr 5, 2010, at 6:20 PM, Fred Moyer wrote:

> Builds ok here on OS X 10.6.3 (tests don't start yet though). Wonder
> what the difference in our setups=20

Okay, Fred and I have been hacking on this for a few hours, and thanks =
to a tip from Stefan O'Rear on #p5p, we've been able to trace the basic =
problem.

I can get mod_perl2 to build with Perl configured with:

sh Configure -des -Duseshrplib

Or

sh Configure -des -Duseshrplib -Dusemultiplicity -Duseithreads

But not

sh Configure -des -Duseshrplib -Dusemultiplicity

That is, mod_perl will build with both multiplicity and ithreads or with =
neither, but not with multiplicity only. With multiplicity-only, I get:

mod_perl.c: In function =91modperl_shutdown=92:
mod_perl.c:62: error: =91my_perl=92 undeclared (first use in this =
function)
mod_perl.c:62: error: (Each undeclared identifier is reported only =
once
mod_perl.c:62: error: for each function it appears in.)

Fred says this is the relevant code:

#ifndef USE_ITHREADS
static apr_status_t modperl_shutdown(void *data)
{
modperl_cleanup_data_t *cdata =3D (modperl_cleanup_data_t =
*)data;
PerlInterpreter *perl =3D (PerlInterpreter *)cdata->data;
void **handles;
=20
handles =3D modperl_xs_dl_handles_get(aTHX);

And what Stefan says is: =93you need to change your function declaration =
from ...(void *arg) to ...(pTHX_ void *arg)=94.

I believe Fred managed to get past some of these errors by doing =
something like this. Fred, can you confirm?

So there you have it. If you build perl with

sh Configure -des -Duseshrplib -Dusemultiplicity

and build mod_perl 2 against that, you should be able to replicate this =
issue.

Anyone familiar with this stuff and able to fix? I'd love to see =
mod_perl 2.05 drop when Perl 5.12.0 final drops (next week, I believe).

Thanks,

David

PS: I think the apreq stuff needs to be hit with the same multiplicity =
cluestick -- anyone know that code?