10.76. Perl-5.20.0 N32 Libraries

The Perl package contains the Practical Extraction and Report Language.

10.76.1. Installation of Perl

By default, Perl's Compress::Raw::Zlib and Compress::Raw::Bzip2 modules build and link against internal copies of Zlib and Bzip2. The following command will make Perl use the system-installed copies of these libraries:

sed -i -e '/^BUILD_ZLIB/s/True/False/' \
       -e '/^INCLUDE/s,\./zlib-src,/usr/include,' \
       -e '/^LIB/s,\./zlib-src,/usr/lib32,' \
       cpan/Compress-Raw-Zlib/config.in

Perl does not, by default, know about library directories with names other than lib. The following patch will allow it to install to other directories:

patch -Np1 -i ../perl-5.20.0-Configure_multilib-1.patch

We still need to tell perl to actually use lib32:

echo 'installstyle="lib32/perl5"' >> hints/linux.sh

To have full control over the way Perl is set up, you can run the interactive Configure script and hand-pick the way this package is built. If you prefer instead to use the defaults that Perl auto-detects, prepare Perl for compilation with:

./configure.gnu --prefix=/usr \
   -Dvendorprefix=/usr \
   -Dman1dir=/usr/share/man/man1 \
   -Dman3dir=/usr/share/man/man3 \
   -Dpager="/bin/less -isR" \
   -Dlibpth="/usr/local/lib32 /lib32 /usr/lib32" \
   -Dcc="gcc ${BUILDN32}" \
   -Dusethreads -Duseshrplib

The meaning of the new configure option:

-Dlibpth="/usr/local/lib32 /lib32 /usr/lib32"

This tells Perl to link against the N32 libraries.

-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3

Since Groff is not installed yet, configure.gnu thinks that we do not want man pages for Perl. Issuing these parameters overrides this decision.

-Dpager="/bin/less -isR"

Less has not yet been installed, so by default perldoc will invoke the more program for viewing documentation. This option ensures that it will use less instead.

-Dusethreads

This tells Perl to use threads.

-Duseshrplib

This tells Perl to build a shared libperl.

Compile the package:

make

To test the results, issue:

make test

Install the package and remove the variables set previously:

make install
unset BUILD_ZLIB BUILD_BZIP2

Add a suffix to the perl binary which will be used by the multiarch wrapper:

mv -v /usr/bin/perl{,-n32}
mv -v /usr/bin/perl5.20.0{,-n32}

Details on this package are located in Section 10.77.2, “Contents of Perl.”