Philip M. Gollucci wrote:
This isn't actually mod_perl's fault.
*-0 vs *-1 libraries and binaries are from DIFFERNT major versions of
APR/APRUTIL.
If they happen to be in your path (you said they are), then they get
found and use even if you wan't them to (and sometimes if you specify
not too). The easiest solution is to move them out side of any lib/bin
PATHs and then compile
httpd and let it install its own apr/apr-util.
After that, the mod_perl compile with will use the apr-1-config and such
will return the correct paths.
Using ld.so.conf will likely not work. It might fix this error, but it
was cause others.
I think you completely miss the point of my comments, but thanks for
your reply.
I agree *-0 and *-1 are different versions required for different
version of apache-httpd. As I stated I have a Linux distribution copy
of Apache 2.0.x, which uses *-0 (and I dont expect my apache 2.2.x to
use it in any way).
As stated the only copy of Apache 2.2.x is one I compiled and install to
/opt/apache2_prefork.
My concern is that, if I have installed a perfect copy of Apache 2.2.x
using the Apache file layout then I should not need to configure
anything special for it to work. Nor configure anything special for
mod_perl2 to find the /opt/apache2_prefork/lib/libaprutil-1.so which I
have. That should work out-the-box.
At this moment it does not work, I think thats very wrong. At the least
something like the ld.so environment variable equivalent
LD_PRELOAD=/opt/apache2_prefork/lib/libaprutil-1.so should be set
forcing a sane precedence order to load the DSOs.
Then part of my post went on to explain that even if I had a Linux
distribution copy of *-1 say at /usr/lib/libaprutil-1.so, if I am using
the Apache file layout and have /opt/apache2_prefork/lib/libaprutil-1.so
then my compiled version should always override the system /usr/lib copy.
Maybe the ./configure script needs to add:
export LD_LIBRARY_PATH="$apache_prefix/lib:"
In the correct place, "man 8 ld.so" can help here.
This sure is mod_perl's fault for not setting up the environment which
the HTTP server is running under in a sane manner in relation to what is
can learn from apxs/apr-1-config.
# This is worked out inside ./configure already
apr_config_path="/opt/apache2_prefork/bin/apr-1-config"
# If platform supports shlib-path-var configure it
ldso_varname=$(${apr_config_path} --shlib-path-var)
if [ "x${ldso_varname}" != "x" ]
then
apache_prefix=$(${apr_config_path} --prefix)
# Try to not override with a system default path,
# but /usr/local would be ok
if [ "${apache_prefix}" != "/" ] && \
[ "${apache_prefix}" != "/usr" ]
then
apache_libdir="${apache_prefix}/lib"
# Check dir exists
if [ -d "${apache_libdir}" ]
then
# Prepend directory to front of list
# export LD_LIBRARY_PATH="$apache_prefix/lib:"
tmp="${ldso_varname}"
set "${ldso_varname}=${apache_libdir}:${tmp}"
unset tmp
export "${ldso_varname}"
fi
fi
fi
Darryl
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]