Re: Undefined symbol "Perl_pad_sv" building mp2
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... 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.05 *** 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 (0x2823) 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
changing apache process name?
Hello- I am wondering if anyone knows if there is a way to configure what it shown as the running apache process name. I am not sure if this is technically a mod_perl question. The problem is that the process name is partially truncated, so we are unable to determine exactly what perl app is running for a given apache process. For example, here is one running apache process as seen in top: 31122 www 16 0 76624 61m 6428 S6 0.4 0:04.03 /opt/myapp/www/cgi-perl/sig -f /opt/c2/preview/tmp/httpd.conf there is more to the perl app name than 'sig', (for example, it could be signal.pl or signoff.pl) but it is truncated. Is there any way to configure apache to show more characters in its process names? -- View this message in context: http://www.nabble.com/changing-apache-process-name--tp25244057p25244057.html Sent from the mod_perl - General mailing list archive at Nabble.com.
Re: Undefined symbol "Perl_pad_sv" building mp2
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? 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, 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.05 *** 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/
Re: changing apache process name?
On Tue 01 Sep 2009, mcvella wrote: > I am wondering if anyone knows if there is a way to configure what it > shown as the running apache process name. I am not sure if this is > technically a mod_perl question. The problem is that the process > name is partially truncated, so we are unable to determine exactly > what perl app is running for a given apache process. > > For example, here is one running apache process as seen in top: > > 31122 www 16 0 76624 61m 6428 S 6 0.4 0:04.03 > /opt/myapp/www/cgi-perl/sig -f /opt/c2/preview/tmp/httpd.conf > > there is more to the perl app name than 'sig', (for example, it could > be signal.pl or signoff.pl) but it is truncated. > > Is there any way to configure apache to show more characters in its > process names? It depends upon your operating system. FreeBSD has a library function called setproctitle to do that as far as I know. On Linux it can be achieved like this. The original argv and envp are laid out subsequently by the kernel. Normally a program accesses its argv only at startup and the original environment is copied and not used later on. But the argv pointer is where ps and top look for the command line. So there is a buffer of the size of all command line arguments plus all the environment that can be overwritten and thus used to show what you like in ps and top. The only problem is how to get the values of these pointers. This can be solved using a shared library. It may contain a function named _init() that is called when the lib is loaded. Fortunately it is passed argc, argv and envp as parameters. Now, you have all information to figure out the size of the argv and envp buffer and can overwrite it as you like. This is what the libsetproctitle (http://lmgtfy.com/?q=libsetproctitle) library does. I have once (at the time of perl 5.8.0) written a module Sys::Proctitle that uses (and bundles) this lib and also an Apache2::ShowStatus that uses Sys::Proctitle to show the current request in top. But since then I haven't touched these modules. So I don't know if they still work. Torsten -- Need professional mod_perl support? Just hire me: torsten.foert...@gmx.net
Re: changing apache process name?
Torsten Foertsch wrote: > mcvella wrote: > > I am wondering if anyone knows if there is a way to configure what it > > shown as the running apache process name. I am not sure if this is > > technically a mod_perl question. The problem is that the process > > name is partially truncated, so we are unable to determine exactly > > what perl app is running for a given apache process. > > > > For example, here is one running apache process as seen in top: > > > > 31122 www 16 0 76624 61m 6428 S6 0.4 0:04.03 > > /opt/myapp/www/cgi-perl/sig -f /opt/c2/preview/tmp/httpd.conf > > > > there is more to the perl app name than 'sig', (for example, it could > > be signal.pl or signoff.pl) but it is truncated. Just look into the options on the ps command, I think you'll find you can see long process names with the "w" (wide) option, or "ww" for "unlimited width": ps axwwl Or perhaps: ps axwwl | egrep cgi-perl > > Is there any way to configure apache to show more characters in its > > process names? Um... both perl's exec and system has a list form that allows you to start up a program with a fictious name (you give it the program name first, and follow that with the ficitious name, followed by any other arguments). Off the top of my head, I'm not sure if there's a way to use that feature from within mod_perl.
Re: changing apache process name?
On 1 sep 2009, at 19:43, mcvella wrote: I am wondering if anyone knows if there is a way to configure what it shown as the running apache process name. I am not sure if this is technically a mod_perl question. The problem is that the process name is partially truncated, so we are unable to determine exactly what perl app is running for a given apache process. For example, here is one running apache process as seen in top: 31122 www 16 0 76624 61m 6428 S6 0.4 0:04.03 /opt/myapp/www/cgi-perl/sig -f /opt/c2/preview/tmp/httpd.conf there is more to the perl app name than 'sig', (for example, it could be signal.pl or signoff.pl) but it is truncated. Is there any way to configure apache to show more characters in its process names? Not sure if this would fix your problem, but you can just set $0 from within the mod_perl module to whatever you'd like to show up in the process list, just as with a regular perl script. It probably depends on the OS you're running whether this works as it should; I can confirm that it works on Linux. You could probably use some wrapper code or write a handler to set $0 to the name of the script or module that is executed. Kind regards, -- Sebastiaan Hoogeveen NederHost is ingeschreven bij de Kamer van Koophandel onder dossier 34099781.
Re: Undefined symbol "Perl_pad_sv" building mp2
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 'x...@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, 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, 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.05 >> >> *** 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: A
Re: Undefined symbol "Perl_pad_sv" building mp2
[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 'x...@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, 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, 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 t
Re: Undefined symbol "Perl_pad_sv" building mp2
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 'x...@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, 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
Re: Undefined symbol "Perl_pad_sv" building mp2
On Tue, Sep 1, 2009 at 10:14 PM, 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, 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_