On Tue, Sep 1, 2009 at 10:14 PM, <cr...@animalhead.com> wrote: > But this is the mod_perl mailing list. It is the place to which > one sends reports of bugs or problems with mod_perl. I sent such > a report, citing this undefined symbol when building mod_perl2.
Right, but if you are mixing major versions of perl, you'll probably encounter issues in other places. mod_perl may be the first place you are seeing this. Think of it this way - would you try this same install procedure with 5.6 and 5.8? Maybe 5.8 and 5.10 work together seamlessly, but I would look to that as a likely source of problems. ack is App::Ack, available from CPAN. I've pulled down 5.10.1 but haven't had time to do a build yet. When I do, I'm going to install 5.10.1 a separate location from my 5.8 libraries. Maybe it can integrate with 5.8 (the perl 5 porters are a very talented crew), but discovering an edge case is not something on my todo list :) I like to keep my mod_perl setup using a different perl build than the system perl. That way, I won't hose my system if I want to try some new build options for my mod_perl based perl install. > It is hard for me to imagine that the fact that I gave the perl > build process a list of directories to append to @INC should > affect the presence or absence of a symbol in the resultant perl > binary. The only time that perl will even consult those > directories are when it is looking for a module name that it > doesn't find in the 5.10.1 directories. > > There is not much in the modules in @INC directories that is > necessarily connected to "major versions of perl". Of course > it's possible that some older modules may not work as well with > a new version as with older versions, but in this case it's the > responsibility of the author to work out and release a new > version that will hopefully work equally well with the older > and newer perls. And any module can specify the oldest version > of perl (or other modules on which it depends) that it will > work with. > > I always maintain my perl modules with -MCPAN's r command, and > upgrade those for which new versions are available on a regular > basis. > > I don't know the command 'ack' that you used in your work below, > but it looks like it examined source files in a subdirectory of > your home directory (~). > > Do you have a perl5.10.1 binary that you have used in conjunction > with mod_perl2? > > If so, can you please cd to the directory that contains that > binary (/usr/local/bin?) and enter a grep command like I used: > > grep Perl_pad_sv perl5* > > and see if your 5.10.1 binary contains the symbol? And if so, > how did your binary come to be? > > Thanks, > cmac > > > On Sep 1, 2009, at 9:32 PM, Fred Moyer wrote: > >> [cc'ing the list as to not break the thread] >> >> On Tue, Sep 1, 2009 at 7:41 PM, <cr...@animalhead.com> wrote: >>> >>> I have always included previous perl libraries in the @INC of >>> new builds. And it has always worked, with the single >>> exception of building mod_perl2 this time. All of the perl >>> scripts and modules on my site work well under the new 5.10.1. >> >> I don't know enough here to say one way or the other about this, but >> you're mixing major versions of perl (5.10 vs 5.8) >> >> The Perl 5 Porters would be a good place for these issues. But you >> are seeing unresolved symbol errors when trying to use different major >> versions of Perl. That is enough circumstantial evidence that if I >> were in your shoes, I'd use a separate 5.10 install. But p5p could >> probably give a more educated analysis of this. >> >>> >>> Aside from the pain of re-downloading all kinds of modules >>> as they prove to be needed over the next year or so, I know >>> there are items in the 5.8.7 libraries from my Internet >>> Hosting Provider, that are needed to run software from the IHP. >>> >>> I can certainly build a 5.10.1 without the otherlibs, and >>> locate it somewhere else than in /usr/local/bin. Will that >>> process completely replace all of: >>> >>> /usr/local/lib/perl5/5.10.1/i386-freebsd >>> /usr/local/lib/perl5/5.10.1 >>> /usr/local/lib/perl5/site_perl/5.10.1/i386-freebsd >>> /usr/local/lib/perl5/site_perl/5.10.1 >>> ?? >>> >>> If so, I suppose could copy them somewhere before the >>> build, and copy them back after the build. >>> >>> In "Non-Boolean Build Options" on >>> >>> http://perl.apache.org/docs/2.0/user/install/install.html, >>> >>> I don't see a command to tell the mod_perl build process to >>> use a particular perl. If I say $perl_other Makefile.PL >>> in the modperl-2.x directory, does that do it? >>> >>> Thanks for being there, >>> cmac >>> >>> >>> On Sep 1, 2009, at 5:58 PM, Fred Moyer wrote: >>> >>>> Can you please cc the list on all replies? >>>> >>>> On Tue, Sep 1, 2009 at 5:41 PM, <cr...@animalhead.com> wrote: >>>>> >>>>> cd /build/perl-5.10.1/ >>>>> make veryclean >>>>> ./Configure -Dd_dosuid >>>>> >>>>> >>>>> -Dotherlibdirs=/usr/local/lib/perl5/5.8.9:/usr/local/lib/perl5/site_perl/5.8.9:/usr/local/lib/perl5/5.8.8:/usr/local/lib/perl5/site_perl/5.8.8:/usr/local/lib/perl5/5.8.7:/usr/local/lib/perl5/site_perl/5.8.7:/usr/local/lib/perl5/vendor_perl/5.8.7 >>>>> -Dmydomain=animalhead.com >>>> >>>> Why are you configuring 5.10.1 with 5.8.x libs? >>>> >>>> Can you try a build without otherlibdirs? >>>> >>>>> >>>>> change optimization '-O' to '-O2' >>>>> search other versions? [5.8.9 5.8.8 5.8.7] none >>>>> change email 'xxxxx...@animalhead.com' to 'macke...@...' >>>>> >>>>> make >>>>> make test <-- no errors for 5.10.1 >>>>> sudo make install >>>>> >>>>> >>>>> On Sep 1, 2009, at 11:23 AM, Fred Moyer wrote: >>>>> >>>>>> On Tue, Sep 1, 2009 at 9:27 AM, <cr...@animalhead.com> wrote: >>>>>>> >>>>>>> A bit more data on the problem reported below: >>>>>>> >>>>>>> /build/modperl-2.0 $ grep -r Perl_pad_sv * >>>>>>> Binary file src/modules/perl/mod_perl.so matches >>>>>>> /build/modperl-2.0 $ ll src/modules/perl/mod_perl.so >>>>>>> -rwxr-xr-x 1 user wheel 1559168 Aug 29 21:22 >>>>>>> src/modules/perl/mod_perl.so >>>>>>> /build/modperl-2.0 $ cd /usr/local/bin >>>>>>> >>>>>>> /usr/local/bin $ ll perl5* >>>>>>> lrwxr-xr-x 1 root wheel 10 Aug 29 16:04 perl5 -> perl5.10.1 >>>>>>> -rwxr-xr-x 3 root wheel 1078522 Aug 30 00:52 perl5.10.1 >>>>>>> -rwxr-xr-x 2 root wheel 949166 Nov 14 2005 perl5.8.7 >>>>>>> -rwxr-xr-x 1 root wheel 2050866 Nov 18 2008 perl5.8.8 >>>>>>> -rwxr-xr-x 1 root wheel 951373 Jan 7 2009 perl5.8.9 >>>>>>> /usr/local/bin $ grep -r Perl_pad_sv perl* >>>>>>> Binary file perl5.8.7 matches >>>>>>> Binary file perl5.8.8 matches >>>>>>> Binary file perl5.8.9 matches >>>>>>> /usr/local/bin $ >>>>>>> >>>>>>> So the symbol in the error message is wanted by the newly-built >>>>>>> mod_perl, but perl 5.10.1 does not include it. >>>>>>> >>>>>>> Yes that's exactly what the error message says, but the mailing >>>>>>> list is so quiet that I wonder if my filters have started eating >>>>>>> its emails... >>>>>> >>>>>> Perl_pad_sv is in there. How did you install 5.10.1? >>>>>> >>>>>> ph...@harpua ~/perl-5.10.1 $ ack Perl_pad_sv >>>>>> embed.h >>>>>> 638:#define pad_sv Perl_pad_sv >>>>>> 2958:#define pad_sv(a) Perl_pad_sv(aTHX_ a) >>>>>> >>>>>> makedef.pl >>>>>> 627: Perl_pad_sv >>>>>> >>>>>> pad.c >>>>>> 927:Perl_pad_sv(pTHX_ PADOFFSET po) >>>>>> >>>>>> proto.h >>>>>> 2386:PERL_CALLCONV SV* Perl_pad_sv(pTHX_ PADOFFSET po); >>>>>> >>>>>> >>>>>>> >>>>>>> cmac >>>>>>> >>>>>>>> On Aug 30, 2009, at 11:49 AM, Fred Moyer wrote: >>>>>>>> >>>>>>>>> On Sat, Aug 29, 2009 at 9:43 PM, <cr...@animalhead.com> wrote: >>>>>>>>>> >>>>>>>>>> -------------8<---------- Start Bug Report >>>>>>>>>> ------------8<---------- >>>>>>>>>> 1. Problem Description: >>>>>>>>>> >>>>>>>>>> I have upgraded to Apache 2.2.13 and Perl 5.10.1. Both seem to be >>>>>>>>>> working >>>>>>>>>> OK, >>>>>>>>>> although Apache with using my old mod_perl 2.04 that uses perl >>>>>>>>>> 5.8.9. >>>>>>>>> >>>>>>>>> Have you rebuilt your mod_perl 2.0.4 instance from scratch using >>>>>>>>> 5.10.1? Undefined symbol warnings like this usually mean you are >>>>>>>>> trying to use a version of mod_perl that has been built with >>>>>>>>> another >>>>>>>>> perl binary. >>>>>>>>> >>>>>>>>> Suggest running make clean, then: >>>>>>>>> >>>>>>>>> perl Makefile.PL MP_APXS=/path/to/my/httpd/apxs >>>>>>>>> make >>>>>>>>> make test >>>>>>>> >>>>>>>> Yes, that is pretty much exactly what I've done. Here is the >>>>>>>> command >>>>>>>> file >>>>>>>> (that precedes make): >>>>>>>> >>>>>>>> #! /bin/sh >>>>>>>> CFLAGS="-DVERIO -DVERIO_VPS"; export CFLAGS >>>>>>>> LDFLAGS="-L/usr/local/lib"; export LDFLAGS >>>>>>>> perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs >>>>>>>> >>>>>>>>>> >>>>>>>>>> make test in both the release mod_perl 2.0.4 and the latest >>>>>>>>>> snapshot >>>>>>>>>> 2.0.5 >>>>>>>>>> gives the same error: >>>>>>>>>> >>>>>>>>>> $ make test >>>>>>>>>> cd "src/modules/perl" && make >>>>>>>>>> /usr/bin/perl -Iblib/arch -Iblib/lib t/TEST -clean >>>>>>>>>> APACHE_TEST_GROUP= APACHE_TEST_HTTPD= APACHE_TEST_PORT= >>>>>>>>>> APACHE_TEST_USER= >>>>>>>>>> APACHE_TEST_APXS= /usr/bin/perl -Iblib/arch -Iblib/lib t/TEST >>>>>>>>>> -bugreport >>>>>>>>>> -verbose=0 >>>>>>>>>> /usr/local/apache2/bin/httpd -d /build/modperl-2.0/t -f >>>>>>>>>> /build/modperl-2.0/t/conf/httpd.conf -D APACHE2 >>>>>>>>>> using Apache/2.2.13 (prefork MPM) >>>>>>>>>> >>>>>>>>>> waiting 120 seconds for server to start: .httpd: Syntax error on >>>>>>>>>> line >>>>>>>>>> 17 >>>>>>>>>> of >>>>>>>>>> /build/modperl-2.0/t/conf/httpd.conf: Cannot load >>>>>>>>>> /build/modperl-2.0/src/modules/perl/mod_perl.so into server: >>>>>>>>>> /build/modperl-2.0/src/modules/perl/mod_perl.so: Undefined symbol >>>>>>>>>> "Perl_pad_sv" >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2. Used Components and their Configuration: >>>>>>>>>> >>>>>>>>>> *** mod_perl version 2.000005 >>>>>>>>>> >>>>>>>>>> *** using /build/modperl-2.0/lib/Apache2/BuildConfig.pm >>>>>>>>>> >>>>>>>>>> *** Makefile.PL options: >>>>>>>>>> MP_APR_LIB => aprext >>>>>>>>>> MP_APXS => /usr/local/apache2/bin/apxs >>>>>>>>>> MP_COMPAT_1X => 1 >>>>>>>>>> MP_GENERATE_XS => 1 >>>>>>>>>> MP_LIBNAME => mod_perl >>>>>>>>>> MP_USE_DSO => 1 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *** /usr/local/apache2/bin/httpd -V >>>>>>>>>> Server version: Apache/2.2.13 (Unix) >>>>>>>>>> Server built: Aug 29 2009 16:57:40 >>>>>>>>>> Server's Module Magic Number: 20051115:23 >>>>>>>>>> Server loaded: APR 1.3.8, APR-Util 1.3.9 >>>>>>>>>> Compiled using: APR 1.3.8, APR-Util 1.3.9 >>>>>>>>>> Architecture: 32-bit >>>>>>>>>> Server MPM: Prefork >>>>>>>>>> threaded: no >>>>>>>>>> forked: yes (variable process count) >>>>>>>>>> Server compiled with.... >>>>>>>>>> -D APACHE_MPM_DIR="server/mpm/prefork" >>>>>>>>>> -D APR_HAS_SENDFILE >>>>>>>>>> -D APR_HAS_MMAP >>>>>>>>>> -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) >>>>>>>>>> -D APR_USE_FLOCK_SERIALIZE >>>>>>>>>> -D APR_USE_PTHREAD_SERIALIZE >>>>>>>>>> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT >>>>>>>>>> -D APR_HAS_OTHER_CHILD >>>>>>>>>> -D AP_HAVE_RELIABLE_PIPED_LOGS >>>>>>>>>> -D DYNAMIC_MODULE_LIMIT=128 >>>>>>>>>> -D HTTPD_ROOT="/usr/local/apache2" >>>>>>>>>> -D SUEXEC_BIN="/usr/local/apache2/bin/suexec" >>>>>>>>>> -D DEFAULT_PIDLOG="logs/httpd.pid" >>>>>>>>>> -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" >>>>>>>>>> -D DEFAULT_LOCKFILE="logs/accept.lock" >>>>>>>>>> -D DEFAULT_ERRORLOG="logs/error_log" >>>>>>>>>> -D AP_TYPES_CONFIG_FILE="conf/mime.types" >>>>>>>>>> -D SERVER_CONFIG_FILE="conf/httpd.conf" >>>>>>>>>> >>>>>>>>>> *** /usr/bin/ldd /usr/local/apache2/bin/httpd >>>>>>>>>> /usr/local/apache2/bin/httpd: >>>>>>>>>> libz.so.3 => /lib/libz.so.3 (0x28209000) >>>>>>>>>> libm.so.4 => /lib/libm.so.4 (0x2821a000) >>>>>>>>>> libpcre.so.0 => /usr/local/lib/libpcre.so.0 (0x28230000) >>>>>>>>>> libaprutil-1.so.3 => /usr/local/apache2/lib/libaprutil-1.so.3 >>>>>>>>>> (0x2825c000) >>>>>>>>>> libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x2827c000) >>>>>>>>>> libapr-1.so.3 => /usr/local/apache2/lib/libapr-1.so.3 >>>>>>>>>> (0x2829d000) >>>>>>>>>> libcrypt.so.3 => /lib/libcrypt.so.3 (0x282c5000) >>>>>>>>>> libpthread.so.2 => /lib/libpthread.so.2 (0x282dd000) >>>>>>>>>> libc.so.6 => /lib/libc.so.6 (0x28301000) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *** (apr|apu)-config linking info >>>>>>>>>> >>>>>>>>>> -L/usr/local/apache2/lib -laprutil-1 -lexpat -L/usr/local/lib >>>>>>>>>> -L/usr/local/apache2/lib -lapr-1 -lcrypt -lpthread >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> *** /usr/local/bin/perl -V >>>>>>>>>> Summary of my perl5 (revision 5 version 10 subversion 1) >>>>>>>>>> configuration: >>>>>>>>>> >>>>>>>>>> Platform: >>>>>>>>>> osname=freebsd, osvers=6.3-release, archname=i386-freebsd >>>>>>>>>> uname='freebsd animalhead.com 6.3-release freebsd 6.3-release #3: >>>>>>>>>> fri >>>>>>>>>> jan >>>>>>>>>> 23 16:43:41 mst 2009 r...@fc:usrsrcsysi386compilevkern i386 ' >>>>>>>>>> config_args='-Dd_dosuid >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -Dotherlibdirs=/usr/local/lib/perl5/5.8.9:/usr/local/lib/perl5/5.8.8:/usr/local/lib/perl5/5.8.7 >>>>>>>>>> -Dvendorprefix=/usr/local -Dmydomain=animalhead.com' >>>>>>>>>> hint=recommended, useposix=true, d_sigaction=define >>>>>>>>>> useithreads=undef, usemultiplicity=undef >>>>>>>>>> useperlio=define, d_sfio=undef, uselargefiles=define, >>>>>>>>>> usesocks=undef >>>>>>>>>> use64bitint=undef, use64bitall=undef, uselongdouble=undef >>>>>>>>>> usemymalloc=n, bincompat5005=undef >>>>>>>>>> Compiler: >>>>>>>>>> cc='cc', ccflags ='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H >>>>>>>>>> -fno-strict-aliasing -pipe -I/usr/local/include', >>>>>>>>>> optimize='-O', >>>>>>>>>> cppflags='-DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H >>>>>>>>>> -fno-strict-aliasing >>>>>>>>>> -pipe -I/usr/local/include' >>>>>>>>>> ccversion='', gccversion='3.4.6 [FreeBSD] 20060305', >>>>>>>>>> gccosandvers='' >>>>>>>>>> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 >>>>>>>>>> d_longlong=define, longlongsize=8, d_longdbl=define, >>>>>>>>>> longdblsize=12 >>>>>>>>>> ivtype='long', ivsize=4, nvtype='double', nvsize=8, >>>>>>>>>> Off_t='off_t', >>>>>>>>>> lseeksize=8 >>>>>>>>>> alignbytes=4, prototype=define >>>>>>>>>> Linker and Libraries: >>>>>>>>>> ld='cc', ldflags ='-Wl,-E -L/usr/local/lib' >>>>>>>>>> libpth=/usr/lib /usr/local/lib >>>>>>>>>> libs=-lgdbm -lm -lcrypt -lutil -lc >>>>>>>>>> perllibs=-lm -lcrypt -lutil -lc >>>>>>>>>> libc=, so=so, useshrplib=false, libperl=libperl.a >>>>>>>>>> gnulibc_version='' >>>>>>>>>> Dynamic Linking: >>>>>>>>>> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' >>>>>>>>>> cccdlflags='-DPIC -fPIC', lddlflags='-shared -L/usr/local/lib' >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Characteristics of this binary (from libperl): >>>>>>>>>> Compile-time options: PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP >>>>>>>>>> USE_LARGE_FILES USE_PERLIO >>>>>>>>>> Built under freebsd >>>>>>>>>> Compiled at Aug 29 2009 20:24:18 >>>>>>>>>> %ENV: >>>>>>>>>> PERL_LWP_USE_HTTP_10="1" >>>>>>>>>> �...@inc: >>>>>>>>>> /usr/local/lib/perl5/5.10.1/i386-freebsd >>>>>>>>>> /usr/local/lib/perl5/5.10.1 >>>>>>>>>> /usr/local/lib/perl5/site_perl/5.10.1/i386-freebsd >>>>>>>>>> /usr/local/lib/perl5/site_perl/5.10.1 >>>>>>>>>> /usr/local/lib/perl5/site_perl/5.8.9 >>>>>>>>>> /usr/local/lib/perl5/site_perl/5.8.8 >>>>>>>>>> /usr/local/lib/perl5/site_perl/5.8.7 >>>>>>>>>> /usr/local/lib/perl5/site_perl >>>>>>>>>> /usr/local/lib/perl5/vendor_perl/5.10.1/i386-freebsd >>>>>>>>>> /usr/local/lib/perl5/vendor_perl/5.10.1 >>>>>>>>>> /usr/local/lib/perl5/vendor_perl/5.8.7 >>>>>>>>>> /usr/local/lib/perl5/vendor_perl >>>>>>>>>> /usr/local/lib/perl5/5.8.9/i386-freebsd >>>>>>>>>> /usr/local/lib/perl5/5.8.9 >>>>>>>>>> /usr/local/lib/perl5/5.8.8/i386-freebsd >>>>>>>>>> /usr/local/lib/perl5/5.8.8 >>>>>>>>>> /usr/local/lib/perl5/5.8.7/i386-freebsd >>>>>>>>>> /usr/local/lib/perl5/5.8.7 >>>>>>>>>> . >>>>>>>>>> >>>>>>>>>> *** Packages of interest status: >>>>>>>>>> >>>>>>>>>> Apache2 : - >>>>>>>>>> Apache2::Request : - >>>>>>>>>> CGI : 3.45 >>>>>>>>>> ExtUtils::MakeMaker: 6.48, 6.54, 6.55_02 >>>>>>>>>> LWP : 5.831 >>>>>>>>>> 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 Sun Aug 30 04:28:22 2009 >>>>>>>>>> GMT. >>>>>>>>>> >>>>>>>>>> -------------8<---------- End Bug Report >>>>>>>>>> --------------8<---------- >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>> >>> > >