Philip M. Gollucci wrote:
During the tests i've an error:
/home/asm/apache2054/bin/bin/httpd -d
/usr/home/asm/soft/Apache/mod_perl-2.0.1/t -f
/usr/home/asm/soft/Apache/mod_perl-2.0.1/t/conf/httpd.conf -D APACHE2
-D PERL_USEITHREADS
using Apache/2.0.54 (prefork MPM)
waiting 120 seconds for server to start: .Syntax error on line 12 of
/usr/home/asm/soft/Apache/mod_perl-2.0.1/t/conf/httpd.conf:
Cannot load
/usr/home/asm/soft/Apache/mod_perl-2.0.1/src/modules/perl/mod_perl.so
into server:
/usr/home/asm/soft/Apache/mod_perl-2.0.1/src/modules/perl/mod_perl.so:
Undefined symbol "apr_os_thread_current"
*** /usr/local/bin/perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 2) configuration:
Platform:
osname=freebsd, osvers=4.7-release,
archname=i386-freebsd-thread-multi-64int
uname='freebsd sspserver.dev 4.7-release freebsd 4.7-release #3:
mon jun 2 17:20:39 msd 2003 [EMAIL PROTECTED]:usrsrcsyscompilesmp i386 '
config_args=''
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define
usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=define use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Whats happened here is that your PERL is ithread enabled and thus
mod_perl thinks it should be too. Unfortunately, the APR library you are
linking against is not thread enabled (-lpthread or -llibc_r). BTW you
don't want the latter, use -lpthread on FreeBSD. You might need to
edit your /etc/libmap.conf file (see my previous posts on this)
Well, the diagnostics are not exactly correct, Philip. as the problem has
little to do with perl having ithreads enabled.
apr_os_thread_current is used only if APR_HAS_THREADS is defined. When
mod_perl is being built it gets this define from the apr headers, as
supplied by apxs. The problem happens because mod_perl finds one set of
headers during the build, but a libapr from a different install gets
loaded at run time.
But the following solution should work :)
A _VERY_ likely reason as I am a freebsd guy myself, is that you've
installed Subversion or some other port that installs apr. That apr is
not threaded. The apr-1-config and apu-1-config binaries are in your
path (/usr/local/bin). This causes the HTTPD build to link against the
WRONG apr/apr util libraries. Later when mod_perl2 calls apxs to get
the path for things, its given the wrong ones causing the error you see.
The easiest solution for me is to temporarily move them out of your PATH
during compilation or rename them temporarily.
I'm surprised, that you didn't get this during the mod_perl2 compile as
thats where I usually get it and smack myself.
I'm tempted to add a note to the mp2 build page about this, but don't
know exactly how to word it.
--
__________________________________________________________________
Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/ mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org http://ticketmaster.com