perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Darryl Miles <>
Subject Re: MP2.0.2 + HTTPD 2.2.0 Linux test failures ( cannot open shared object file)
Date Sat, 06 May 2006 00:38:19 GMT
Philip M. Gollucci wrote:
> This isn't actually mod_perl's fault.
> *-0 vs *-1 libraries and binaries are from DIFFERNT major versions of 
> 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 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 

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/ 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 environment variable equivalent 
LD_PRELOAD=/opt/apache2_prefork/lib/ 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/, if I am using 
the Apache file layout and have /opt/apache2_prefork/lib/ 
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" 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

# If platform supports shlib-path-var configure it
ldso_varname=$(${apr_config_path} --shlib-path-var)
if [ "x${ldso_varname}" != "x" ]
	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" ]

		# Check dir exists
		if [ -d "${apache_libdir}" ]
			# Prepend directory to front of list
			# export LD_LIBRARY_PATH="$apache_prefix/lib:"
			set "${ldso_varname}=${apache_libdir}:${tmp}"
			unset tmp

			export "${ldso_varname}"


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message