perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Moyer <f...@redhotpenguin.com>
Subject Re: Undefined symbol "Perl_pad_sv" building mp2
Date Wed, 02 Sep 2009 04:32:18 GMT
[cc'ing the list as to not break the thread]

On Tue, Sep 1, 2009 at 7:41 PM, <craig@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, <craig@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 '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, <craig@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?
>>>>
>>>> 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, <craig@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 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<----------
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>
>>>
>
>

Mime
View raw message