mod_perl compilation problem
I'm still trying to figure out how to build mod_perl on an AMD x86_64 system.
It's running gcc 4.1.1 on Red Hat 4.1.1-52. Perl 5.8.8 + Apache + mod_perl is
already installed, but I wanted to try and build everything with 5.10 because
I've read that the RedHat Perl binaries are sometimes very slow, and I want to
check out some of the Perl 5.10 features on a new server.
I'm building Perl with these options:
Configure -de -Dprefix=/usr/local -Accflags="-fPIC"
Perl builds, tests, and seems to run fine.
When I make mod_perl, I get this error:
/usr/bin/ld: /usr/local/lib/perl5/5.10.0/x86_64-linux/CORE/libperl.a(gv.o):
relocation R_X86_64_32 against `a local symbol' can not be used when making a
shared object; recompile with -fPIC
/usr/local/lib/perl5/5.10.0/x86_64-linux/CORE/libperl.a: could not read
symbols: Bad value
collect2: ld returned 1 exit status
If I'm building Perl explicity with -fPIC, why does mod_perl think I'm not?
I suppose I can live with 5.8.8, but there should be a way to build this.
Dan
Re: mod_perl compilation problem
Dan Axtell wrote:[color=blue]
> I'm still trying to figure out how to build mod_perl on an AMD x86_64 system.
> It's running gcc 4.1.1 on Red Hat 4.1.1-52. Perl 5.8.8 + Apache + mod_perl is
> already installed, but I wanted to try and build everything with 5.10 because
> I've read that the RedHat Perl binaries are sometimes very slow, and I want to
> check out some of the Perl 5.10 features on a new server.
>
> I'm building Perl with these options:
> Configure -de -Dprefix=/usr/local -Accflags="-fPIC"
>
> Perl builds, tests, and seems to run fine.
>
> When I make mod_perl, I get this error:
>
> /usr/bin/ld: /usr/local/lib/perl5/5.10.0/x86_64-linux/CORE/libperl.a(gv.o):
> relocation R_X86_64_32 against `a local symbol' can not be used when making a
> shared object; recompile with -fPIC
> /usr/local/lib/perl5/5.10.0/x86_64-linux/CORE/libperl.a: could not read
> symbols: Bad value
> collect2: ld returned 1 exit status
>
> If I'm building Perl explicity with -fPIC, why does mod_perl think I'm not?[/color]
Did you remove all previous perl build fragments that may have been
compiled without -fPIC? That is, can you try a clean install with a
prefix like /home/myuser/testperl, and then try to build mod_perl
against that perl installation?
I haven't tried 5.10 on x86_64 yet.
[color=blue]
>
> I suppose I can live with 5.8.8, but there should be a way to build this.
>
> Dan[/color]
Re: mod_perl compilation problem
> Did you remove all previous perl build fragments that may have been[color=blue]
> compiled without -fPIC? That is, can you try a clean install with a
> prefix like /home/myuser/testperl, and then try to build mod_perl
> against that perl installation?
>[/color]
I'll try that next.
Question: my home box is opensuse 11.0 and it comes with perl 5.10 + mod_perl
for and AMD x86_64. Can I just upload the mod_perl.so binary, or will small
differences like the perl binary being in different locations stop it from
working?
Re: mod_perl compilation problem
[color=blue]
>Dan Axtell wrote:[color=green]
>> I'm still trying to figure out how to build mod_perl on an [/color]
>AMD x86_64 system. [color=green]
>> It's running gcc 4.1.1 on Red Hat 4.1.1-52. Perl 5.8.8 + [/color]
>Apache + mod_perl is [color=green]
>> already installed, but I wanted to try and build everything [/color]
>with 5.10 because [color=green]
>> I've read that the RedHat Perl binaries are sometimes very [/color]
>slow, and I want to [color=green]
>> check out some of the Perl 5.10 features on a new server.
>>
>> I'm building Perl with these options:
>> Configure -de -Dprefix=/usr/local -Accflags="-fPIC"
>>
>> Perl builds, tests, and seems to run fine.
>>
>> When I make mod_perl, I get this error:
>>
>> /usr/bin/ld: [/color]
>/usr/local/lib/perl5/5.10.0/x86_64-linux/CORE/libperl.a(gv.o): [color=green]
>> relocation R_X86_64_32 against `a local symbol' can not be [/color]
>used when making a [color=green]
>> shared object; recompile with -fPIC
>> /usr/local/lib/perl5/5.10.0/x86_64-linux/CORE/libperl.a: [/color]
>could not read [color=green]
>> symbols: Bad value
>> collect2: ld returned 1 exit status
>>
>> If I'm building Perl explicity with -fPIC, why does mod_perl [/color]
>think I'm not?
>
>Did you remove all previous perl build fragments that may have been
>compiled without -fPIC? That is, can you try a clean install with a
>prefix like /home/myuser/testperl, and then try to build mod_perl
>against that perl installation?
>
>I haven't tried 5.10 on x86_64 yet.
>[color=green]
>>
>> I suppose I can live with 5.8.8, but there should be a way [/color]
>to build this.[color=green]
>>
>> Dan[/color]
>
>[/color]
I tried mod_perl on SLES 10 AMD64 worked perfectly with Perl 5.10 - but
with the compile options for Perl you specified earlier (-fPIC). What
Fred is writing looks like the best solution to me.