You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by "Paul G. Weiss" <PG...@arity.com> on 2002/06/11 08:51:05 UTC

Perl_Tstack_sp_ptr

Sorry if this has been covered - I searched to no avail.

I'm getting the following error when trying to start
an Apache 2.0.36 with ModPerl::Registry:

/usr/libexec/ld-elf.so.1:
/usr/lib/perl5/site_perl/5.6.1/i386-freebsd-thread-multi/auto/Apache/Request
Rec/RequestRec.so: Undefined symbol "Perl_Tstack_sp_ptr"

All relevant build info is below.  Has anyone seen and conquered this?
-P

System is FreeBSD 4.5-RELEASE

Perl:

[~/mod_perl-1.99_02]# perl -V
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=freebsd, osvers=4.5-release, archname=i386-freebsd-thread-multi
    uname='freebsd develop1.vqoffice 4.5-release freebsd 4.5-release #0: mon
jan 28 14:31:56 gmt 2002
murray@builder.freebsdmall.com:usrsrcsyscompilegeneric i386 '
    config_args='-des -Dprefix=/usr -Dusethreads -Duseshrplib -Doptimize=-O
-g'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing
-I/usr/local/include',
    optimize='-O -g',
    cppflags='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='2.95.3 20010315 (release) [FreeBSD]',
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, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-pthread -Wl,-E  -L/usr/local/lib'
    libpth=/usr/lib /usr/local/lib
    libs=-lgdbm -lm -lc_r -lcrypt -lutil
    perllibs=-lm -lc_r -lcrypt -lutil
    libc=, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='
-Wl,-R/usr/lib/perl5/5.6.1/i386-freebsd-thread-multi/CORE'
    cccdlflags='-DPIC -fpic', lddlflags='-shared  -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
  Built under freebsd
  Compiled at Jun  3 2002 21:42:51
  @INC:
    /usr/lib/perl5/5.6.1/i386-freebsd-thread-multi
    /usr/lib/perl5/5.6.1
    /usr/lib/perl5/site_perl/5.6.1/i386-freebsd-thread-multi
    /usr/lib/perl5/site_perl/5.6.1
    /usr/lib/perl5/site_perl
    .


Apache:

#! /bin/sh
#
# Created by configure

"./configure" \
"--enable-threads=yes" \
"--enable-modules=all" \
"--enable-mods-shared=all" \
"--prefix=/usr/local/apache2" \
"--with-mpm=worker" \
"--enable-proxy" \
"--enable-ssl" \
"--enable-info" \
"--enable-status" \
"$@"



mod_perl-1.99_02:

perl Makefile.PL MP_AP_PREFIX=/usr/local/apache2

Re: Perl_Tstack_sp_ptr

Posted by do...@pobox.com.
On Wed, 12 Jun 2002, Stas Bekman wrote:

> so the problem that I see on linux is unrelated?

dunno, i built with -Duseshrplib and seems ok linkage wise.  tho 
some ModPerl-Registry are tests failing with the same problem in 
special_blocks:
# testing : ModPerl::Registry is not running BEGIN blocks on the second req
# expected: ''
# received: undef
not ok 6



Re: Perl_Tstack_sp_ptr

Posted by Stas Bekman <st...@stason.org>.
could this be a version of freebsd with broken threads support?  i've
 > heard many cases of that.  chances are if you rebuild perl without
 > -Dusethreads and apache with the prefork mpm, this problem won't be 
there.

so the problem that I see on linux is unrelated?

this tested with prefork Apache cvs and perl built as:
./Configure -des -Dprefix=/home/stas/perl/5.6.1-ithread \
-Dusethreads -Doptimize='-g' -Duseshrplib -Dusedevel

Stas Bekman wrote:
> Paul G. Weiss wrote:
> 
>> Sorry if this has been covered - I searched to no avail.
>>
>> I'm getting the following error when trying to start
>> an Apache 2.0.36 with ModPerl::Registry:
>>
>> /usr/libexec/ld-elf.so.1:
>> /usr/lib/perl5/site_perl/5.6.1/i386-freebsd-thread-multi/auto/Apache/Request 
>>
>> Rec/RequestRec.so: Undefined symbol "Perl_Tstack_sp_ptr"
>>
>> All relevant build info is below.  Has anyone seen and conquered this?
> 
> 
> Confirmed, I've a similar problem on linux with 5.6.1
> 
> /home/stas/httpd/prefork/bin/httpd: relocation error: 
> /home/stas/apache.org/mp-5.6.1-prefork/ModPerl-Registry/t/../../blib/arch/Apache2/auto/Apache/RequestIO/RequestIO.so: 
> undefined symbol: Perl_sv_2pv
> 
> it happens when I run the test suite in:
> 
> ModPerl-Registry:
> 
> and I've traced it down to:
> print exists $ENV{QUERY_STRING} && $ENV{QUERY_STRING};
> 
> Though I don't understand why there is relocation error, the libperl.so
> lib includes the symbol:
> nm 
> /home/stas/perl/5.6.1-ithread/lib/5.6.1/i686-linux-thread-multi/CORE/libperl.so 
> | grep Perl_sv_2pv
> 0009ae10 T Perl_sv_2pv
> 
> and mod_perl is linked against it:
> ldd src/modules/perl/mod_perl.so
>     libperl.so => 
> /home/stas/perl/5.6.1-ithread/lib/5.6.1/i686-linux-thread-multi/CORE/libperl.so 
> (0x40023000)
> 
> 
> __________________________________________________________________
> Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
> http://stason.org/     mod_perl Guide ---> http://perl.apache.org
> mailto:stas@stason.org http://use.perl.org http://apacheweek.com
> http://modperlbook.org http://apache.org   http://ticketmaster.com



-- 


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


Re: Perl_Tstack_sp_ptr

Posted by Stas Bekman <st...@stason.org>.
Paul G. Weiss wrote:
> Sorry if this has been covered - I searched to no avail.
> 
> I'm getting the following error when trying to start
> an Apache 2.0.36 with ModPerl::Registry:
> 
> /usr/libexec/ld-elf.so.1:
> /usr/lib/perl5/site_perl/5.6.1/i386-freebsd-thread-multi/auto/Apache/Request
> Rec/RequestRec.so: Undefined symbol "Perl_Tstack_sp_ptr"
> 
> All relevant build info is below.  Has anyone seen and conquered this?

Confirmed, I've a similar problem on linux with 5.6.1

/home/stas/httpd/prefork/bin/httpd: relocation error: 
/home/stas/apache.org/mp-5.6.1-prefork/ModPerl-Registry/t/../../blib/arch/Apache2/auto/Apache/RequestIO/RequestIO.so: 
undefined symbol: Perl_sv_2pv

it happens when I run the test suite in:

ModPerl-Registry:

and I've traced it down to:
print exists $ENV{QUERY_STRING} && $ENV{QUERY_STRING};

Though I don't understand why there is relocation error, the libperl.so
lib includes the symbol:
nm 
/home/stas/perl/5.6.1-ithread/lib/5.6.1/i686-linux-thread-multi/CORE/libperl.so 
| grep Perl_sv_2pv
0009ae10 T Perl_sv_2pv

and mod_perl is linked against it:
ldd src/modules/perl/mod_perl.so
	libperl.so => 
/home/stas/perl/5.6.1-ithread/lib/5.6.1/i686-linux-thread-multi/CORE/libperl.so 
(0x40023000)


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


Re: Perl_Tstack_sp_ptr

Posted by Doug MacEachern <do...@covalent.net>.
sounds like the old freebsd plague of installing libperl.so into 
/usr/local/lib.  that is, the dist installs libperl.so where it should not 
be installed, /usr/local/lib, then a user compiles/installs on their 
own and libperl.so is installed where it should be, in your case likely:

 /usr/lib/perl5/5.6.1/i386-freebsd-thread-multi/CORE

but the one in /usr/local/lib is found first.

ldd mod_perl.so will tell you which one it was linked against.

couple of options:
- delete the libperl.so in /usr/local/lib
- edit src/modules/perl/Makefile.modperl and put -L/usr/local/lib after 
-L/usr/lib/perl5/...
- try adding LoadFile \
/usr/lib/perl5/5.6.1/i386-freebsd-thread-multi/CORE/libperl.so

before LoadModperl perl_module ...

On Tue, 11 Jun 2002, Paul G. Weiss wrote:

> Sorry if this has been covered - I searched to no avail.
> 
> I'm getting the following error when trying to start
> an Apache 2.0.36 with ModPerl::Registry:
> 
> /usr/libexec/ld-elf.so.1:
> /usr/lib/perl5/site_perl/5.6.1/i386-freebsd-thread-multi/auto/Apache/Request
> Rec/RequestRec.so: Undefined symbol "Perl_Tstack_sp_ptr"
> 
> All relevant build info is below.  Has anyone seen and conquered this?
> -P
> 
> System is FreeBSD 4.5-RELEASE
> 
> Perl:
> 
> [~/mod_perl-1.99_02]# perl -V
> Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
>   Platform:
>     osname=freebsd, osvers=4.5-release, archname=i386-freebsd-thread-multi
>     uname='freebsd develop1.vqoffice 4.5-release freebsd 4.5-release #0: mon
> jan 28 14:31:56 gmt 2002
> murray@builder.freebsdmall.com:usrsrcsyscompilegeneric i386 '
>     config_args='-des -Dprefix=/usr -Dusethreads -Duseshrplib -Doptimize=-O
> -g'
>     hint=recommended, useposix=true, d_sigaction=define
>     usethreads=define use5005threads=undef useithreads=define
> usemultiplicity=define
>     useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
>     use64bitint=undef use64bitall=undef uselongdouble=undef
>   Compiler:
>     cc='cc', ccflags ='-DDEBUGGING -fno-strict-aliasing
> -I/usr/local/include',
>     optimize='-O -g',
>     cppflags='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include'
>     ccversion='', gccversion='2.95.3 20010315 (release) [FreeBSD]',
> 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, usemymalloc=n, prototype=define
>   Linker and Libraries:
>     ld='cc', ldflags ='-pthread -Wl,-E  -L/usr/local/lib'
>     libpth=/usr/lib /usr/local/lib
>     libs=-lgdbm -lm -lc_r -lcrypt -lutil
>     perllibs=-lm -lc_r -lcrypt -lutil
>     libc=, so=so, useshrplib=true, libperl=libperl.so
>   Dynamic Linking:
>     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='
> -Wl,-R/usr/lib/perl5/5.6.1/i386-freebsd-thread-multi/CORE'
>     cccdlflags='-DPIC -fpic', lddlflags='-shared  -L/usr/local/lib'
> 
> 
> Characteristics of this binary (from libperl):
>   Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
> PERL_IMPLICIT_CONTEXT
>   Built under freebsd
>   Compiled at Jun  3 2002 21:42:51
>   @INC:
>     /usr/lib/perl5/5.6.1/i386-freebsd-thread-multi
>     /usr/lib/perl5/5.6.1
>     /usr/lib/perl5/site_perl/5.6.1/i386-freebsd-thread-multi
>     /usr/lib/perl5/site_perl/5.6.1
>     /usr/lib/perl5/site_perl
>     .
> 
> 
> Apache:
> 
> #! /bin/sh
> #
> # Created by configure
> 
> "./configure" \
> "--enable-threads=yes" \
> "--enable-modules=all" \
> "--enable-mods-shared=all" \
> "--prefix=/usr/local/apache2" \
> "--with-mpm=worker" \
> "--enable-proxy" \
> "--enable-ssl" \
> "--enable-info" \
> "--enable-status" \
> "$@"
> 
> 
> 
> mod_perl-1.99_02:
> 
> perl Makefile.PL MP_AP_PREFIX=/usr/local/apache2
>