Return-Path: Delivered-To: apmail-perl-modperl-archive@www.apache.org Received: (qmail 30822 invoked from network); 2 Sep 2009 05:15:02 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 2 Sep 2009 05:15:02 -0000 Received: (qmail 45730 invoked by uid 500); 2 Sep 2009 05:15:01 -0000 Delivered-To: apmail-perl-modperl-archive@perl.apache.org Received: (qmail 45696 invoked by uid 500); 2 Sep 2009 05:15:01 -0000 Mailing-List: contact modperl-help@perl.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list modperl@perl.apache.org Received: (qmail 45688 invoked by uid 99); 2 Sep 2009 05:15:01 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Sep 2009 05:15:01 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of craig@animalhead.com designates 207.57.97.174 as permitted sender) Received: from [207.57.97.174] (HELO animalhead.com) (207.57.97.174) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Sep 2009 05:14:52 +0000 Received: from [192.168.1.2] (pool-71-116-96-200.snfcca.dsl-w.verizon.net [71.116.96.200]) (authenticated bits=0) by animalhead.com (8.13.6.20060614/8.13.6) with ESMTP id n825ESuL017561 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 1 Sep 2009 22:14:29 -0700 (PDT) In-Reply-To: References: <1D95D993-7C66-4280-A0B5-C98F06DC37F3@animalhead.com> <39DE041B-F7E1-4EF5-A708-80DF172B228E@animalhead.com> <4503230A-0B3F-4D6D-A16A-8D31B6EB9BAA@animalhead.com> <747ACA6B-EE14-418D-8C46-60D2C2C1BCF4@animalhead.com> Mime-Version: 1.0 (Apple Message framework v753.1) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Cc: mod_perl list Content-Transfer-Encoding: 7bit From: craig@animalhead.com Subject: Re: Undefined symbol "Perl_pad_sv" building mp2 Date: Tue, 1 Sep 2009 22:14:25 -0700 To: Fred Moyer X-Mailer: Apple Mail (2.753.1) X-Virus-Checked: Checked by ClamAV on apache.org 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. 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, 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, 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 'xxxxxxxx@animalhead.com' to 'mackenna@...' >>>> >>>> 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, 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? >>>>> >>>>> phred@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, 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 root@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<---------- >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>>> >>>> >>>> >> >>