You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Octavian Rasnita <or...@gmail.com> on 2007/07/13 17:48:40 UTC

Can't install mod_perl

Hi,

I am trying hard to install mod_perl under SuSE X86_64 but I cannot do it.

It gives the error below on the "make" step. I have searched for this error 
on the net, and I found only that perl could be badly installed, or Apache.

I installed perl using the /lib64 /usr/lib64 and /usr/local/lib64 
directories and not the default (/lib /usr/lib and /usr/local/lib).
I have also chose to install it with 64 bit support.

The problem is that I don't know how to be sure that Apache is installed 
with 64 bit support.

I have also tried by installing Active Perl for Linux X86_64 which I guess 
it was compiled correctly, but it gave the same error on the "make" step for 
mod_perl.
First I installed perl using default libraries (from /lib, /usr/lib...) and 
I wasn't able to compile DBD::mysql. After using /lib64, /usr/lib64... I was 
able to compile DBD::mysql, so I think perl is installed correctly.

This is why I think Apache is not installed as it should, but I don't know 
how to install it with 64 bit support.

Please tell me, have you succeeded to install mod_perl under a X86_64 
machine? If yes, please advice what should I do.

If you didn't, do you know if a 32 bit Linux OS can be installed under a 64 
bit machine? Is it adviceable to do this for a production machine?

If it helps, here is the result of `uname -a`:
Linux duahp 2.6.16.13-4-smp #1 SMP Wed May 3 04:53:23 UTC 2006 x86_64 x86_64 
x86_64 GNU/Linux

Thank you very much.

Here is the error:

duahp:/usr/local/src/mod_perl-2.0.3 # make
cd "src/modules/perl" && make
make[1]: Entering directory `/usr/local/src/mod_perl-2.0.3/src/modules/perl'
rm -f mod_perl.so
gcc -shared \
 \
mod_perl.lo modperl_interp.lo modperl_tipool.lo modperl_log.lo 
modperl_config.lo modperl_cmd.lo modperl_options.lo modperl_callback.
lo modperl_handler.lo modperl_gtop.lo modperl_util.lo modperl_io.lo 
modperl_io_apache.lo modperl_filter.lo modperl_bucket.lo modperl
_mgv.lo modperl_pcw.lo modperl_global.lo modperl_env.lo modperl_cgi.lo 
modperl_perl.lo modperl_perl_global.lo modperl_perl_pp.lo mod
perl_sys.lo modperl_module.lo modperl_svptr_table.lo modperl_const.lo 
modperl_constants.lo modperl_apache_compat.lo modperl_error.lo
 modperl_debug.lo modperl_common_util.lo modperl_common_log.lo 
modperl_hooks.lo modperl_directives.lo modperl_flags.lo modperl_xsini
t.lo modperl_exports.lo  -Wl,-E 
  /usr/local/perl_588/lib/CORE/libperl.a -lnsl -ldl -lm -lcrypt -lutil -lpthread 
 -lc \
-o mod_perl.so
/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: 
/usr/local/perl_588/lib/CORE/libperl.a(gv.o): relocatio
n R_X86_64_32S against `a local symbol' can not be used when making a shared 
object; recompile with -fPIC
/usr/local/perl_588/lib/CORE/libperl.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[1]: *** [mod_perl.so] Error 1
make[1]: Leaving directory `/usr/local/src/mod_perl-2.0.3/src/modules/perl'
make: *** [modperl_lib] Error 2
duahp:/usr/local/src/mod_perl-2.0.3 #
Ready ssh2: AES-12  21,  39  52 Rows, 132 Cols VT100
Octavian


Re: Can't install mod_perl

Posted by Octavian Rasnita <or...@gmail.com>.
From: "Fred Moyer" <fr...@redhotpenguin.com>

>
> Getting a good build of perl under x86_64 can be a bit tricky, when you
> compile perl you need to make sure that the default directories to search
> includes /usr/lib64.  It took me a few tries to get it right, I posted my
> experiences here -  http://use.perl.org/~Phred/journal/31581
>
> Here's another good link I found on the subject -
> http://mail-archives.apache.org/mod_mbox/perl-modperl/200505.mbox/%3CCC898C3BA202E8EF9DC31532@sachmo%3E
>
> I'd say take another few tries at it and make sure to pay extra close
> attention to the default search path when compiling perl - it can be done!
>


Thank you for these links. I will try again.
Now at least I know for sure that I did something wrong. I have used the 
paths to /lib64, /usr/lib64, and even to the empty dir /usr/local/lib64, but 
I removed the paths to /lib, /usr/lib and /usr/local/lib, which I think it 
is not ok.

Octavian


Re: Can't install mod_perl

Posted by Fred Moyer <fr...@redhotpenguin.com>.
[sorry my email client dropped the list from the thread, my bad]

> From: "Fred Moyer" <fr...@redhotpenguin.com>
>
>> On Fri, 13 Jul 2007 10:26 am, Octavian Rasnita wrote:
>>> From: "Geoffrey Young" <ge...@modperlcookbook.org>
>>>>> /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld:
>>>>> /usr/local/perl_588/lib/CORE/libperl.a(gv.o): relocatio
>>>>> n R_X86_64_32S against `a local symbol' can not be used when making a
>>>>> shared object; recompile with -fPIC
>>>>
>>>> the first google match for "recompile with -fPIC" and mod_perl gives
>>>> what looks to be the answer.
>>>>
>>>> archives++
>>>>
>>>> --Geoff
>>>
>>> I have already compiled perl with -fpic and then with -fPIC, but it
>>> still
>>> gives the same error when compiling mod_perl.
>>
>> Are you sure that you are compiling mod_perl with the fpic enabled perl
>> and not your system perl?  I ran into this exact same issue on x86_64
>> and
>> fpic worked here.  Its been a while since I did that but I don't
>> remember
>> there being any other gotchas.
>
> I did:
>
> $ which perl
> /usr/bin/perl
> $ ls -l /usr/bin/perl

so you replaced your system perl with a version that you compiled, you
probably want to avoid doing that since other programs on your system
might depend on that specific compilation.  Instead use -DPrefix to
specify a different location for the new perl you compile, and then
/path/to/my/perl Makefile.PL to compile mod_perl

> And it shown a link to the perl I've just installed using -fPIC.
>
> And I've starting compiling mod_perl using:
>
> $ perl Makefile.PL MP_APXS=/usr/local/apache2/bin/apxs
>
> Then on "make" it gave that error.

Getting a good build of perl under x86_64 can be a bit tricky, when you
compile perl you need to make sure that the default directories to search
includes /usr/lib64.  It took me a few tries to get it right, I posted my
experiences here -  http://use.perl.org/~Phred/journal/31581

Here's another good link I found on the subject -
http://mail-archives.apache.org/mod_mbox/perl-modperl/200505.mbox/%3CCC898C3BA202E8EF9DC31532@sachmo%3E

I'd say take another few tries at it and make sure to pay extra close
attention to the default search path when compiling perl - it can be done!

>
> I have also tried using Active State's Active Perl binary for X86_64, with
> the same results.
>
> (I had previously renamed the folder /usr/lib/perl5 to /usr/lib/old_perl5
> for beeing sure that the system perl won't be found).
>
> If I'd knew that Apache, Perl and MySQL will run well on a 32 bit OS on a
> 64
> bit machine, I'd install a 32 bit OS, but I heard that a 32 bit OS runs
> slower on a 64 bit processor, even slower than on a 32 bit processor.
>
> I don't know what to do.
>
> Octavian
>
>



Re: Can't install mod_perl

Posted by Octavian Rasnita <or...@gmail.com>.
From: "Geoffrey Young" <ge...@modperlcookbook.org>

>
>> /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld:
>> /usr/local/perl_588/lib/CORE/libperl.a(gv.o): relocatio
>> n R_X86_64_32S against `a local symbol' can not be used when making a
>> shared object; recompile with -fPIC
>
> the first google match for "recompile with -fPIC" and mod_perl gives
> what looks to be the answer.
>
> archives++
>
> --Geoff

I have already compiled perl with -fpic and then with -fPIC, but it still 
gives the same error when compiling mod_perl.

Octavian


Re: Can't install mod_perl

Posted by Geoffrey Young <ge...@modperlcookbook.org>.
> /usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld:
> /usr/local/perl_588/lib/CORE/libperl.a(gv.o): relocatio
> n R_X86_64_32S against `a local symbol' can not be used when making a
> shared object; recompile with -fPIC

the first google match for "recompile with -fPIC" and mod_perl gives
what looks to be the answer.

archives++

--Geoff

Re: Can't install mod_perl

Posted by Colin Wetherbee <cw...@denterprises.org>.
Raymond Wan wrote:
> I'm not an expert on this, but looked into this briefly as I was worried 
> about the level of support.  From asking around, it seems that you can 
> install 32-bit Linux on a 64-bit machine, but of course, you lose all 
> the benefits of the 64 bits (access to larger disks and more memory per 
> process).  As an example, when I purchased my 64-bit machine, I was 
> given the option to have Windows XP 32-bit or Windows XP 64-bit 
> pre-installed for me.  So yes, I guess a 32-bit OS can be installed.

This is getting off-topic, but to put this issue to rest, I can confirm 
that both 32-bit Debian and 32-bit Windows XP run on 64-bit AMD processors.

In the end, though, it's a bit silly to run a 32-bit OS on a 64-bit 
processor, since you're wasting all that extra, fancy 64-bit stuff.

Colin

Re: Can't install mod_perl

Posted by Raymond Wan <rw...@kuicr.kyoto-u.ac.jp>.
Hi Octavian,

Octavian Rasnita wrote:
> Please tell me, have you succeeded to install mod_perl under a X86_64 
> machine? If yes, please advice what should I do.

Yes, I have, and haven't noticed any problems.  I installed Debian 
stable (AMD64 version):  http://www.debian.org/ports/amd64/ .  The 
installation was generally straight-forward, but I encounter other 
problems such as Adobe Flash not being available, etc.  But as for 
Apache 2/mod_perl 2...things are fine.

> If you didn't, do you know if a 32 bit Linux OS can be installed under 
> a 64 bit machine? Is it adviceable to do this for a production machine?

I'm not an expert on this, but looked into this briefly as I was worried 
about the level of support.  From asking around, it seems that you can 
install 32-bit Linux on a 64-bit machine, but of course, you lose all 
the benefits of the 64 bits (access to larger disks and more memory per 
process).  As an example, when I purchased my 64-bit machine, I was 
given the option to have Windows XP 32-bit or Windows XP 64-bit 
pre-installed for me.  So yes, I guess a 32-bit OS can be installed.

In the end, I decided against it and have a 64-bit OS.  Otherwise, I'm 
wasting the extra money if I'm not using the extra hardware.  Back when 
I was deciding, software like OpenOffice was unavailable for 
64-bits...that has since changed and now, I don't have many complaints 
other than minor things like Adobe Flash, etc.

Good luck with your mod_perl problem...sorry I couldn't give advice 
related to it, but it seems others have already...

Ray