Monday, June 06, 2005

mod_perl, Solaris 8, relocation error

mod_perl, Solaris 8, relocation error:
"This problem is only known to be caused by installing gnu ld under
Solaris.
Other known causes of this problem:
OS distributions that ship with a
(broken) binary Perl installation.
The `perl' program and `libperl.a' library are somehow built
with different binary compatiblity flags.
The solution to these problems is to rebuild Perl and extension
modules from a fresh source tree. Tip for running Perl's Configure
script, use the `'-des'' flags to accepts defaults and
`'-D'' flag to override certain attributes:
% ./Configure -des -Dcc=gcc ... && make test && make install"


I'm having a real hard time getting mod_perl to install. I installed the package for Sun Solaris 8 of perl from sunfreeware.com. And well, I keep getting a "relocation error" when apache tries to load mod_perl. I am recompiling perl as we speak, lets hope it solves the problem.

Update:
Recompiling did not help. I still kept getting the error. So I uninstalled binutils, leaving the only version of ld as the one in /usr/ccs/bin. Then, I recompiled all of apache from scratch. PHP balked on my during this recompile, having problems with mysql. So I uninstalled the mysql package from sunfreeware, recompiled MySQL, and then recompiled PHP. mod_perl was not compiled until now. I restarted apache and everything worked.

Then I recompiled mod_perl. During compilation ld complained that it did not recognize the -E option. Crap. I looked about googling and such but nothing worked. Nothing for it, so I reinstalled binutils from sunfreeware. Expecting to have the same problem with the relocation error which was supposed to be their because GNU ld. But the error never showed. And I now have mod_perl 1.29, latest mod_ssl and latest php (4.3.11) installed with Apache 1.3.33. Two wonderful days wasted recompiling a whole bunch of packages! Ugh!