On Wed, 24 Jul 2002, Steve Linberg wrote:

> I installed 5.8.0 tonight from source and it was pure joy - smooth
> install, and amazingly smooth install of modules with CPAN afterwards.  I
> encountered the dyld problems as documented on the list, and the solutions
> seemed to work, rebuilding the modules that needed it.
>
> Now I'm trying to activate an old project of mine that uses mod_perl,
> using the current Apple build of Apache 1.3.26/mod_perl 1.26, and in my
> PerlRequire'd startup file, I've got "use DBI;", which causes a few dyld
> errors when I do "apachectl configtest."  If I run a script from the shell
> with DBI, it seems to be fine.  I've got it narrowed to DBI, that's
> definitely what's causing it.  I've force-rebuilt it a couple of times
> since the 5.8.0 install just to be paranoid, and it's gone fine.
>
> So here's the question, in which I reveal my ignorance of mod_perl
> internals: does mod_perl use whichever Perl is on the machine when the
> server starts at runtime, or does Perl get wired into it when it's built?
> Is mod_perl going to need to be rebuilt now that /usr/bin/perl is 5.8.0?
> If so, has anybody done it?  The Apple build is more up-to-date than fink
> is, but of course we can't modify it - at least in any way I know of.


You have run into the common binary incompatibility problem that has been
giving people using OS X problems.  The basic answer is that any
module that uses C (in other words, any module that isn't pure perl), that
was compiled with perl 5.6.x _must_ be recompiled.

The deeper issue here is how the paths are set in hints/darwin.sh.  On
almost every other platform, perl inserts the version number into the
library paths.  For instance, on FreeBSD the library paths default to
/usr/local/lib/perl5/5.8.0 (or the site_perl path of similar persuasion).
This protects people from getting their libraries crossed, saving them
from binary compatibility problems.

In your case, you'll need to recompile mod_perl, as your new 5.8.0
compiled DBI does not work with the perl 5.6.0 embedded in mod_perl.

Does anyone know why the paths are set as they are on OS X.  Is it just
following the apple install?  Or are their deeper reasons?

-- 
Chris Reinhardt
[EMAIL PROTECTED]
Systems Architect
Dynamic DNS Network Services
http://www.dyndns.org/

Reply via email to