William McKee wrote:
On Tue, Jun 07, 2005 at 09:34:29AM +1000, Stas Bekman wrote:

William, as you can see from the source src/modules/perl/modperl_util.h

#if defined(MP_TRACE) && defined(APR_HAS_THREADS)
#define MP_TRACEf_TID   "/tid 0x%lx"
#define MP_TRACEv_TID   (unsigned long)apr_os_thread_current()

The symbol is available if APR_HAS_THREADS is defined. So the apr header containing this definition found by mod_perl says that APR_HAS_THREADS is defined, whereas the library it tries to link against was compiled with threads disabled. Meaning that you have more than one libapr on your system and the wrong library gets linked.


Stas,

Thanks for the references. I tried searching for libaprutil-0.so but
couldn't see any in the path. I used nm on every libaprutil-0.so file I
could find but turned up no instances of a library which had the
apr_os_thread_current function.

That's OK, William. But you aren't after defined symbols in .so, you are after the APR_HAS_THREADS define which should be undef. Moreover, you are building a static version so the symbols aren't coming from .so but .a/.la archives. If you look at the linking command that you've pasted in the original report it had:

  /usr/local/src/httpd-2.0.54/srclib/apr/libapr-0.la

which is the one that you need to check.

I then grepped by mod_perl and httpd source directories for header files
which defined APR_HAS_THREADS. I changed srclib/apr/include/apr.h and
srclib/apr/include/apr.hnw then reconfigured mod_perl but it still
failed.

Please find all occurences of apr.h and check the value of APR_HAS_THREADS.

--
__________________________________________________________________
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