Ken Williams <[EMAIL PROTECTED]> writes:
>Hey,
>
>I'm on OS X 10.1.4, perl 5.6.0, using the blead-Makemaker at the 
>time of this writing.  I'm trying to compile mod_perl 1.26 with 
>apache 1.3.22.

The Darwin shared library system is rather different to everyone else's.
But is is far from clear is what the current build process does is 
the "best" way.

>
>I used to be able to just do "perl Makefile.PL EVERYTHING=1".  
>However, now I get errors like the following (note the q{Can't 
>locate object method "catdir" via package "MY"}).  Something 
>changed here?
>
>
>==================================================================
><=== modules/perl
><=== modules
>cc -c  -I./os/unix -I./include   -DDARWIN -DUSE_HSREGEX 
>-DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED -pipe -fno-common 
>-DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing 
>-I/System/Library/Perl/darwin/CORE -I. -I../.. -DUSE_PERL_SSI  
>-pipe -fno-common -DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing 
>-DMOD_PERL modules.c
>cc -c  -I./os/unix -I./include   -DDARWIN -DUSE_HSREGEX 
>-DUSE_EXPAT -I./lib/expat-lite -DNO_DL_NEEDED -pipe -fno-common 
>-DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing 
>-I/System/Library/Perl/darwin/CORE -I. -I../.. -DUSE_PERL_SSI  
>-pipe -fno-common -DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing 
>-DMOD_PERL buildmark.c
>cc  -DDARWIN -DUSE_HSREGEX -DUSE_EXPAT -I./lib/expat-lite 
>-DNO_DL_NEEDED -pipe -fno-common -DHAS_TELLDIR_PROTOTYPE 
>-fno-strict-aliasing -I/System/Library/Perl/darwin/CORE -I. 
>-I../.. -DUSE_PERL_SSI  -pipe -fno-common 
>-DHAS_TELLDIR_PROTOTYPE -fno-strict-aliasing -DMOD_PERL    \
>       -o httpd buildmark.o modules.o modules/perl/libperl.a 
>modules/proxy/libproxy.a modules/standard/libstandard.a 
>main/libmain.a ./os/unix/libos.a ap/libap.a regex/libregex.a 
>lib/expat-lite/libexpat.a `perl 
>/Users/ken/Downloads/perl/mod_perl-1.26/src/modules/perl/ldopts  `
>Can't locate object method "catdir" via package "MY" (perhaps 
>you forgot to load "MY"?) at 
>/System/Library/Perl/ExtUtils/Embed.pm line 185.

What is in the ldopts ?
Is this an attempt at an all-static build?
The -fno-common maybe part of the problem.


>/usr/bin/ld: warning multiple definitions of symbol _regcomp
>regex/libregex.a(regcomp.o) private external definition of 
>_regcomp in section (__TEXT,__text)
>/usr/lib/libSystem.dylib(regcomp.o) definition of _regcomp
>/usr/bin/ld: warning multiple definitions of symbol _regexec

The point of the re extension is to provide alternate versions 
of these functions. So it has static versions of them which 
should not "conflict" with real ones in perl itself.

>/usr/bin/ld: Undefined symbols:
>_PL_endav
>_PL_envgv
>_PL_errgv
>_PL_incgv
....

Those are the variables - which would normaly (in an un-threaded
build at least) be "common" in traditional UNIX usage
i.e. allocated once and initalized to zero.
Your flags have -fno-common which does "something" to that assumption.

>/usr/bin/ld: warning unused multiple definitions of symbol _regerror
>regex/libregex.a(regerror.o) definition of _regerror in section 
>(__TEXT,__text)
>/usr/lib/libSystem.dylib(regerror.o) unused definition of _regerror
>make[1]: *** [target_static] Error 1
>make: *** [apache_httpd] Error 2
>==================================================================
>
>  -Ken
-- 
Nick Ing-Simmons
http://www.ni-s.u-net.com/

Reply via email to