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

Reply via email to