The Perl package contains the Practical Extraction and Report Language.
In multilib builds we install compilers and libraries for each available architecture. The description below says that perl installs several hundred libraries, but they are used by invoking perl, not by linking to them with ld. Although it is possible to install perl for 32 bits, move it to a different name, and then install the 64-bit version, it is almost always invoked as just perl. That means only the libraries and modules for the last version installed will be accessible. We therefore only install one version.
Perl does not, by default, know about library directories with names other than lib, such as lib64. The following patch will allow it to install to lib64.
patch -Np1 -i ../perl-5.8.8-Configure_multilib-1.patch
There is a further (possibly cosmetic) anomaly - if we install perl and then run perl -V it will claim that libc is in /lib. The following patch fixes this, but only takes effect when make install is run.
patch -Np1 -i ../perl-5.8.8-libc_lib64-1.patch
We still need to tell perl to actually use lib64
echo 'installstyle="lib64/perl5"' >>hints/linux.sh
Before starting to configure, create a basic /etc/hosts file which will be referenced in one of Perl's configuration files as well as being used used by the testsuite if you run that.
echo "127.0.0.1 localhost $(hostname)" > /etc/hosts
To have full control over the way Perl is set up, run the interactive Configure script and hand-pick the way this package is built. If the defaults it auto-detects are suitable, prepare Perl for compilation with:
./configure.gnu --prefix=/usr \ -Dman1dir=/usr/share/man/man1 \ -Dman3dir=/usr/share/man/man3 \ -Dpager="/bin/less -isR" \ -Dlibpth="/usr/local/lib64 /lib64 /usr/lib64" \ -Dcc="gcc ${BUILD64}" \ -Dusethreads
The meaning of the new configure option:
This tells Perl to link against the 64-bit libraries.
This corrects an error in the way that perldoc invokes the less program.
Since Groff is not installed yet, configure.gnu thinks that we do not want man pages for Perl. Issuing these parameters overrides this decision.
This tells Perl to use threads.
Compile the package:
make
To test the results, issue: make test.
Install the package:
make install