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]

Reply via email to