Number: 1387
Title: -lperl calculation in configure is not right for some perl builds
Submitter: Warren Dodge
Date: Fri Jul 11 19:37:30 2008
Subsys: Build/Installation
Version: 2.20.2
System: x86-Irix-2.6
Severity: major
Problem:
In configure at line 27111

          PERL_ARCHLIB=`$PERL -e 'use Config; print $Config{archlib};'`
          PERL_INCLUDES=-I$PERL_ARCHLIB/CORE
          PERL_LIBS="-L$PERL_ARCHLIB/CORE -lperl"

You assume the library name is perl. I have to change th ename when I build perl so I don't conflict with another package we use.

It seems you should use the Config array and get the "libperl" entry and sed it from libperlxxx.so to perlxxx
Comments:
[ellson] Perhaps you could provide a patch for this obscure situation?

On my system, the perl lib is in:


   /usr/lib64/perl5/5.10.0/x86_64-linux-thread-multi/CORE/libperl.so

Why would you rename the library, instead of just creating a local perl version with its own directories?

[warren] Well patching isn't my expertise but I can give you the code that would work. It may not be the simplest/cleanest way to do it.


PERL_LIB=`$PERL -e 'use Config; $a= $Config{libperl};$a=~s/lib(.+).so/$1/; print $a;'`
PERL_LIBS="-L$PERL_ARCHLIB/CORE -l$PERL_LIB"

Why rename the lib? First the problem was a few years ago. That is when I began to uniqify my perl library name. So the exact reason I really don't remember. It had to do with a vendors product including their own real old version to support their app. I am guessing when we used our perl scripts, using a much newer perl, and mixed in library calls into there application yjrough a perl module things got confused. Probably the PATH or LD_LIBRARY_PATH could not be set to satisfy both things.

Why build my own perl? We have many users who all have a local workstation. Managing the perl modules and updates on that many would be insane. We have a single copy that they nfs mount. This give a single point of updating for all and makes my life and theirs much nicer.

Also getting the IT department to let us modify the machines is near impossible. The just don't understand engineers. or maybe they do:>)

[ellson] Sorry, can't use that. Shared libraries do not have a .so extension on all platforms.

You could of course use it as a local patch.
Owner: *
Status: *