I had already thought of that. Strace shows that the
correct libperl.so is the one that is being loaded. Just
to make sure I deleted all others and did
ln -s /usr/lib/perl5/5.6.1/i386-freebsd-thread-multi/CORE /usr/lib
but strace tells me that it is still directly loading the correct
one, probably because of the
-Wl,-R/usr/lib/perl5/5.6.1/i386-freebsd-thread-multi/CORE
used in linking mod_perl.so.
That being said I tried the LoadFile directive as you suggested.
This indeed lets the system start, but now it can serve no
pages ( not even static ones ). This is true even when all
mod_perl configuration directive are removed from the conf
file (except the LoadFile and the LoadModule).
However, when I do httpd -X, it
works - I can even serve mod_perl content. But regular httpd
just hangs. The strace output of an httpd process shows this:
accept(5, {sin_family=AF_INET6, sin6_port=htons(1303), inet_pton(AF_INET6,
"::ffff:65.204.1.133", &sin6_addr), sin6_flowinfo=0}, [28]) = 20
fcntl(20, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(20, F_SETFL, O_RDWR|O_NONBLOCK) = 0
break(0x84e7000) = 0
accept(5,
i.e. it returns from the accept, does the two fcntl's then the break
then back to the accept. Can you make any sense of this?
-P
> -----Original Message-----
> From: Doug MacEachern [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, June 11, 2002 11:30 AM
> To: Paul G. Weiss
> Cc: [EMAIL PROTECTED]
> Subject: Re: Perl_Tstack_sp_ptr
>
>
> 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
> > [EMAIL PROTECTED]: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
> >
>