summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man1/perlaix.1
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/mageia-cauldron/man1/perlaix.1')
-rw-r--r--upstream/mageia-cauldron/man1/perlaix.1587
1 files changed, 587 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man1/perlaix.1 b/upstream/mageia-cauldron/man1/perlaix.1
new file mode 100644
index 00000000..2bd841a2
--- /dev/null
+++ b/upstream/mageia-cauldron/man1/perlaix.1
@@ -0,0 +1,587 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "PERLAIX 1"
+.TH PERLAIX 1 2023-11-28 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+perlaix \- Perl version 5 on IBM AIX (UNIX) systems
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This document describes various features of IBM's UNIX operating
+system AIX that will affect how Perl version 5 (hereafter just Perl)
+is compiled and/or runs.
+.SS "Compiling Perl 5 on AIX"
+.IX Subsection "Compiling Perl 5 on AIX"
+For information on compilers on older versions of AIX, see "Compiling
+Perl 5 on older AIX versions up to 4.3.3".
+.PP
+When compiling Perl, you must use an ANSI C compiler. AIX does not ship
+an ANSI compliant C compiler with AIX by default, but binary builds of
+gcc for AIX are widely available. A version of gcc is also included in
+the AIX Toolbox which is shipped with AIX.
+.SS "Supported Compilers"
+.IX Subsection "Supported Compilers"
+Currently all versions of IBM's "xlc", "xlc_r", "cc", "cc_r" or
+"vac" ANSI/C compiler will work for building Perl if that compiler
+works on your system.
+.PP
+If you plan to link Perl to any module that requires thread-support,
+like DBD::Oracle, it is better to use the _r version of the compiler.
+This will not build a threaded Perl, but a thread-enabled Perl. See
+also "Threaded Perl" later on.
+.PP
+As of writing (2010\-09) only the \fIIBM XL C for AIX\fR or \fIIBM XL C/C++
+for AIX\fR compiler is supported by IBM on AIX 5L/6.1/7.1.
+.PP
+The following compiler versions are currently supported by IBM:
+.PP
+.Vb 1
+\& IBM XL C and IBM XL C/C++ V8, V9, V10, V11
+.Ve
+.PP
+The XL C for AIX is integrated in the XL C/C++ for AIX compiler and
+therefore also supported.
+.PP
+If you choose XL C/C++ V9 you need APAR IZ35785 installed
+otherwise the integrated SDBM_File do not compile correctly due
+to an optimization bug. You can circumvent this problem by
+adding \-qipa to the optimization flags (\-Doptimize='\-O \-qipa').
+The PTF for APAR IZ35785 which solves this problem is available
+from IBM (April 2009 PTF for XL C/C++ Enterprise Edition for AIX, V9.0).
+.PP
+If you choose XL C/C++ V11 you need the April 2010 PTF (or newer)
+installed otherwise you will not get a working Perl version.
+.PP
+Perl can be compiled with either IBM's ANSI C compiler or with gcc.
+The former is recommended, as not only it can compile Perl with no
+difficulty, but also can take advantage of features listed later
+that require the use of IBM compiler-specific command-line flags.
+.PP
+If you decide to use gcc, make sure your installation is recent and
+complete, and be sure to read the Perl INSTALL file for more gcc-specific
+details. Please report any hoops you had to jump through to the
+development team.
+.SS "Incompatibility with AIX Toolbox lib gdbm"
+.IX Subsection "Incompatibility with AIX Toolbox lib gdbm"
+If the AIX Toolbox version of lib gdbm < 1.8.3\-5 is installed on your
+system then Perl will not work. This library contains the header files
+/opt/freeware/include/gdbm/dbm.h|ndbm.h which conflict with the AIX
+system versions. The lib gdbm will be automatically removed from the
+wanted libraries if the presence of one of these two header files is
+detected. If you want to build Perl with GDBM support then please install
+at least gdbm\-devel\-1.8.3\-5 (or higher).
+.SS "Perl 5 was successfully compiled and tested on:"
+.IX Subsection "Perl 5 was successfully compiled and tested on:"
+.Vb 10
+\& Perl | AIX Level | Compiler Level | w th | w/o th
+\& \-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-+\-\-\-\-\-\-\-
+\& 5.12.2 |5.1 TL9 32 bit | XL C/C++ V7 | OK | OK
+\& 5.12.2 |5.1 TL9 64 bit | XL C/C++ V7 | OK | OK
+\& 5.12.2 |5.2 TL10 SP8 32 bit | XL C/C++ V8 | OK | OK
+\& 5.12.2 |5.2 TL10 SP8 32 bit | gcc 3.2.2 | OK | OK
+\& 5.12.2 |5.2 TL10 SP8 64 bit | XL C/C++ V8 | OK | OK
+\& 5.12.2 |5.3 TL8 SP8 32 bit | XL C/C++ V9 + IZ35785 | OK | OK
+\& 5.12.2 |5.3 TL8 SP8 32 bit | gcc 4.2.4 | OK | OK
+\& 5.12.2 |5.3 TL8 SP8 64 bit | XL C/C++ V9 + IZ35785 | OK | OK
+\& 5.12.2 |5.3 TL10 SP3 32 bit | XL C/C++ V11 + Apr 2010 | OK | OK
+\& 5.12.2 |5.3 TL10 SP3 64 bit | XL C/C++ V11 + Apr 2010 | OK | OK
+\& 5.12.2 |6.1 TL1 SP7 32 bit | XL C/C++ V10 | OK | OK
+\& 5.12.2 |6.1 TL1 SP7 64 bit | XL C/C++ V10 | OK | OK
+\& 5.13 |7.1 TL0 SP1 32 bit | XL C/C++ V11 + Jul 2010 | OK | OK
+\& 5.13 |7.1 TL0 SP1 64 bit | XL C/C++ V11 + Jul 2010 | OK | OK
+\&
+\& w th = with thread support
+\& w/o th = without thread support
+\& OK = tested
+.Ve
+.PP
+Successfully tested means that all "make test" runs finish with a
+result of 100% OK. All tests were conducted with \-Duseshrplib set.
+.PP
+All tests were conducted on the oldest supported AIX technology level
+with the latest support package applied. If the tested AIX version is
+out of support (AIX 4.3.3, 5.1, 5.2) then the last available support
+level was used.
+.SS "Building Dynamic Extensions on AIX"
+.IX Subsection "Building Dynamic Extensions on AIX"
+Starting from Perl 5.7.2 (and consequently 5.8.x / 5.10.x / 5.12.x)
+and AIX 4.3 or newer Perl uses the AIX native dynamic loading interface
+in the so called runtime linking mode instead of the emulated interface
+that was used in Perl releases 5.6.1 and earlier or, for AIX releases
+4.2 and earlier. This change does break backward compatibility with
+compiled modules from earlier Perl releases. The change was made to make
+Perl more compliant with other applications like Apache/mod_perl which are
+using the AIX native interface. This change also enables the use of
+C++ code with static constructors and destructors in Perl extensions,
+which was not possible using the emulated interface.
+.PP
+It is highly recommended to use the new interface.
+.SS "Using Large Files with Perl"
+.IX Subsection "Using Large Files with Perl"
+Should yield no problems.
+.SS "Threaded Perl"
+.IX Subsection "Threaded Perl"
+Should yield no problems with AIX 5.1 / 5.2 / 5.3 / 6.1 / 7.1.
+.PP
+IBM uses the AIX system Perl (V5.6.0 on AIX 5.1 and V5.8.2 on
+AIX 5.2 / 5.3 and 6.1; V5.8.8 on AIX 5.3 TL11 and AIX 6.1 TL4; V5.10.1
+on AIX 7.1) for some AIX system scripts. If you switch the links in
+/usr/bin from the AIX system Perl (/usr/opt/perl5) to the newly build
+Perl then you get the same features as with the IBM AIX system Perl if
+the threaded options are used.
+.PP
+The threaded Perl build works also on AIX 5.1 but the IBM Perl
+build (Perl v5.6.0) is not threaded on AIX 5.1.
+.PP
+Perl 5.12 an newer is not compatible with the IBM fileset perl.libext.
+.SS "64\-bit Perl"
+.IX Subsection "64-bit Perl"
+If your AIX system is installed with 64\-bit support, you can expect 64\-bit
+configurations to work. If you want to use 64\-bit Perl on AIX 6.1
+you need an APAR for a libc.a bug which affects (n)dbm_XXX functions.
+The APAR number for this problem is IZ39077.
+.PP
+If you need more memory (larger data segment) for your Perl programs you
+can set:
+.PP
+.Vb 3
+\& /etc/security/limits
+\& default: (or your user)
+\& data = \-1 (default is 262144 * 512 byte)
+.Ve
+.PP
+With the default setting the size is limited to 128MB.
+The \-1 removes this limit. If the "make test" fails please change
+your /etc/security/limits as stated above.
+.SS "Long doubles"
+.IX Subsection "Long doubles"
+IBM calls its implementation of long doubles 128\-bit, but it is not
+the IEEE 128\-bit ("quadruple precision") which would give 116 bit of
+mantissa (nor it is implemented in hardware), instead it's a special
+software implementation called "double-double", which gives 106 bits
+of mantissa.
+.PP
+There seem to be various problems in this long double implementation.
+If Configure detects this brokenness, it will disable the long double support.
+This can be overridden with explicit \f(CW\*(C`\-Duselongdouble\*(C'\fR (or \f(CW\*(C`\-Dusemorebits\*(C'\fR,
+which enables both long doubles and 64 bit integers). If you decide to
+enable long doubles, for most of the broken things Perl has implemented
+workarounds, but the handling of the special values infinity and NaN
+remains badly broken: for example infinity plus zero results in NaN.
+.SS "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32\-bit)"
+.IX Subsection "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)"
+With the following options you get a threaded Perl version which
+passes all make tests in threaded 32\-bit mode, which is the default
+configuration for the Perl builds that AIX ships with.
+.PP
+.Vb 7
+\& rm config.sh
+\& ./Configure \e
+\& \-d \e
+\& \-Dcc=cc_r \e
+\& \-Duseshrplib \e
+\& \-Dusethreads \e
+\& \-Dprefix=/usr/opt/perl5_32
+.Ve
+.PP
+The \-Dprefix option will install Perl in a directory parallel to the
+IBM AIX system Perl installation.
+.SS "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32\-bit)"
+.IX Subsection "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)"
+With the following options you get a Perl version which passes
+all make tests in 32\-bit mode.
+.PP
+.Vb 6
+\& rm config.sh
+\& ./Configure \e
+\& \-d \e
+\& \-Dcc=cc_r \e
+\& \-Duseshrplib \e
+\& \-Dprefix=/usr/opt/perl5_32
+.Ve
+.PP
+The \-Dprefix option will install Perl in a directory parallel to the
+IBM AIX system Perl installation.
+.SS "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64\-bit)"
+.IX Subsection "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)"
+With the following options you get a threaded Perl version which
+passes all make tests in 64\-bit mode.
+.PP
+.Vb 1
+\& export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
+\&
+\& rm config.sh
+\& ./Configure \e
+\& \-d \e
+\& \-Dcc=cc_r \e
+\& \-Duseshrplib \e
+\& \-Dusethreads \e
+\& \-Duse64bitall \e
+\& \-Dprefix=/usr/opt/perl5_64
+.Ve
+.SS "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64\-bit)"
+.IX Subsection "Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)"
+With the following options you get a Perl version which passes all
+make tests in 64\-bit mode.
+.PP
+.Vb 1
+\& export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
+\&
+\& rm config.sh
+\& ./Configure \e
+\& \-d \e
+\& \-Dcc=cc_r \e
+\& \-Duseshrplib \e
+\& \-Duse64bitall \e
+\& \-Dprefix=/usr/opt/perl5_64
+.Ve
+.PP
+The \-Dprefix option will install Perl in a directory parallel to the
+IBM AIX system Perl installation.
+.PP
+If you choose gcc to compile 64\-bit Perl then you need to add the
+following option:
+.PP
+.Vb 1
+\& \-Dcc=\*(Aqgcc \-maix64\*(Aq
+.Ve
+.SS "Compiling Perl 5 on AIX 7.1.0"
+.IX Subsection "Compiling Perl 5 on AIX 7.1.0"
+A regression in AIX 7 causes a failure in make test in Time::Piece during
+daylight savings time. APAR IV16514 provides the fix for this. A quick
+test to see if it's required, assuming it is currently daylight savings
+in Eastern Time, would be to run \f(CW\*(C` TZ=EST5 date +%Z \*(C'\fR. This will come
+back with \f(CW\*(C`EST\*(C'\fR normally, but nothing if you have the problem.
+.SS "Compiling Perl 5 on older AIX versions up to 4.3.3"
+.IX Subsection "Compiling Perl 5 on older AIX versions up to 4.3.3"
+Due to the fact that AIX 4.3.3 reached end-of-service in December 31,
+2003 this information is provided as is. The Perl versions prior to
+Perl 5.8.9 could be compiled on AIX up to 4.3.3 with the following
+settings (your mileage may vary):
+.PP
+When compiling Perl, you must use an ANSI C compiler. AIX does not ship
+an ANSI compliant C\-compiler with AIX by default, but binary builds of
+gcc for AIX are widely available.
+.PP
+At the moment of writing, AIX supports two different native C compilers,
+for which you have to pay: \fBxlC\fR and \fBvac\fR. If you decide to use either
+of these two (which is quite a lot easier than using gcc), be sure to
+upgrade to the latest available patch level. Currently:
+.PP
+.Vb 2
+\& xlC.C 3.1.4.10 or 3.6.6.0 or 4.0.2.2 or 5.0.2.9 or 6.0.0.3
+\& vac.C 4.4.0.3 or 5.0.2.6 or 6.0.0.1
+.Ve
+.PP
+note that xlC has the OS version in the name as of version 4.0.2.0, so
+you will find xlC.C for AIX\-5.0 as package
+.PP
+.Vb 1
+\& xlC.aix50.rte 5.0.2.0 or 6.0.0.3
+.Ve
+.PP
+subversions are not the same "latest" on all OS versions. For example,
+the latest xlC\-5 on aix41 is 5.0.2.9, while on aix43, it is 5.0.2.7.
+.PP
+Perl can be compiled with either IBM's ANSI C compiler or with gcc.
+The former is recommended, as not only can it compile Perl with no
+difficulty, but also can take advantage of features listed later that
+require the use of IBM compiler-specific command-line flags.
+.PP
+The IBM's compiler patch levels 5.0.0.0 and 5.0.1.0 have compiler
+optimization bugs that affect compiling perl.c and regcomp.c,
+respectively. If Perl's configuration detects those compiler patch
+levels, optimization is turned off for the said source code files.
+Upgrading to at least 5.0.2.0 is recommended.
+.PP
+If you decide to use gcc, make sure your installation is recent and
+complete, and be sure to read the Perl INSTALL file for more gcc-specific
+details. Please report any hoops you had to jump through to the development
+team.
+.SS "OS level"
+.IX Subsection "OS level"
+Before installing the patches to the IBM C\-compiler you need to know the
+level of patching for the Operating System. IBM's command 'oslevel' will
+show the base, but is not always complete (in this example oslevel shows
+4.3.NULL, whereas the system might run most of 4.3.THREE):
+.PP
+.Vb 6
+\& # oslevel
+\& 4.3.0.0
+\& # lslpp \-l | grep \*(Aqbos.rte \*(Aq
+\& bos.rte 4.3.3.75 COMMITTED Base Operating System Runtime
+\& bos.rte 4.3.2.0 COMMITTED Base Operating System Runtime
+\& #
+.Ve
+.PP
+The same might happen to AIX 5.1 or other OS levels. As a side note, Perl
+cannot be built without bos.adt.syscalls and bos.adt.libm installed
+.PP
+.Vb 4
+\& # lslpp \-l | egrep "syscalls|libm"
+\& bos.adt.libm 5.1.0.25 COMMITTED Base Application Development
+\& bos.adt.syscalls 5.1.0.36 COMMITTED System Calls Application
+\& #
+.Ve
+.SS "Building Dynamic Extensions on AIX < 5L"
+.IX Subsection "Building Dynamic Extensions on AIX < 5L"
+AIX supports dynamically loadable objects as well as shared libraries.
+Shared libraries by convention end with the suffix .a, which is a bit
+misleading, as an archive can contain static as well as dynamic members.
+For Perl dynamically loaded objects we use the .so suffix also used on
+many other platforms.
+.PP
+Note that starting from Perl 5.7.2 (and consequently 5.8.0) and AIX 4.3
+or newer Perl uses the AIX native dynamic loading interface in the so
+called runtime linking mode instead of the emulated interface that was
+used in Perl releases 5.6.1 and earlier or, for AIX releases 4.2 and
+earlier. This change does break backward compatibility with compiled
+modules from earlier Perl releases. The change was made to make Perl
+more compliant with other applications like Apache/mod_perl which are
+using the AIX native interface. This change also enables the use of C++
+code with static constructors and destructors in Perl extensions, which
+was not possible using the emulated interface.
+.SS "The IBM ANSI C Compiler"
+.IX Subsection "The IBM ANSI C Compiler"
+All defaults for Configure can be used.
+.PP
+If you've chosen to use vac 4, be sure to run 4.4.0.3. Older versions
+will turn up nasty later on. For vac 5 be sure to run at least 5.0.1.0,
+but vac 5.0.2.6 or up is highly recommended. Note that since IBM has
+removed vac 5.0.2.1 through 5.0.2.5 from the software depot, these
+versions should be considered obsolete.
+.PP
+Here's a brief lead of how to upgrade the compiler to the latest
+level. Of course this is subject to changes. You can only upgrade
+versions from ftp-available updates if the first three digit groups
+are the same (in where you can skip intermediate unlike the patches
+in the developer snapshots of Perl), or to one version up where the
+"base" is available. In other words, the AIX compiler patches are
+cumulative.
+.PP
+.Vb 3
+\& vac.C.4.4.0.1 => vac.C.4.4.0.3 is OK (vac.C.4.4.0.2 not needed)
+\& xlC.C.3.1.3.3 => xlC.C.3.1.4.10 is NOT OK (xlC.C.3.1.4.0 is not
+\& available)
+\&
+\& # ftp ftp.software.ibm.com
+\& Connected to service.boulder.ibm.com.
+\& : welcome message ...
+\& Name (ftp.software.ibm.com:merijn): anonymous
+\& 331 Guest login ok, send your complete e\-mail address as password.
+\& Password:
+\& ... accepted login stuff
+\& ftp> cd /aix/fixes/v4/
+\& ftp> dir other other.ll
+\& output to local\-file: other.ll? y
+\& 200 PORT command successful.
+\& 150 Opening ASCII mode data connection for /bin/ls.
+\& 226 Transfer complete.
+\& ftp> dir xlc xlc.ll
+\& output to local\-file: xlc.ll? y
+\& 200 PORT command successful.
+\& 150 Opening ASCII mode data connection for /bin/ls.
+\& 226 Transfer complete.
+\& ftp> bye
+\& ... goodbye messages
+\& # ls \-l *.ll
+\& \-rw\-rw\-rw\- 1 merijn system 1169432 Nov 2 17:29 other.ll
+\& \-rw\-rw\-rw\- 1 merijn system 29170 Nov 2 17:29 xlc.ll
+.Ve
+.PP
+On AIX 4.2 using xlC, we continue:
+.PP
+.Vb 10
+\& # lslpp \-l | fgrep \*(AqxlC.C \*(Aq
+\& xlC.C 3.1.4.9 COMMITTED C for AIX Compiler
+\& xlC.C 3.1.4.0 COMMITTED C for AIX Compiler
+\& # grep \*(AqxlC.C.3.1.4.*.bff\*(Aq xlc.ll
+\& \-rw\-r\-\-r\-\- 1 45776101 1 6286336 Jul 22 1996 xlC.C.3.1.4.1.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 6173696 Aug 24 1998 xlC.C.3.1.4.10.bff
+\& \-rw\-r\-\-r\-\- 1 45776101 1 6319104 Aug 14 1996 xlC.C.3.1.4.2.bff
+\& \-rw\-r\-\-r\-\- 1 45776101 1 6316032 Oct 21 1996 xlC.C.3.1.4.3.bff
+\& \-rw\-r\-\-r\-\- 1 45776101 1 6315008 Dec 20 1996 xlC.C.3.1.4.4.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 6178816 Mar 28 1997 xlC.C.3.1.4.5.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 6188032 May 22 1997 xlC.C.3.1.4.6.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 6191104 Sep 5 1997 xlC.C.3.1.4.7.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 6185984 Jan 13 1998 xlC.C.3.1.4.8.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 6169600 May 27 1998 xlC.C.3.1.4.9.bff
+\& # wget ftp://ftp.software.ibm.com/aix/fixes/v4/xlc/xlC.C.3.1.4.10.bff
+\& #
+.Ve
+.PP
+On AIX 4.3 using vac, we continue:
+.PP
+.Vb 10
+\& # lslpp \-l | grep \*(Aqvac.C \*(Aq
+\& vac.C 5.0.2.2 COMMITTED C for AIX Compiler
+\& vac.C 5.0.2.0 COMMITTED C for AIX Compiler
+\& # grep \*(Aqvac.C.5.0.2.*.bff\*(Aq other.ll
+\& \-rw\-rw\-r\-\- 1 45776101 1 13592576 Apr 16 2001 vac.C.5.0.2.0.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 14133248 Apr 9 2002 vac.C.5.0.2.3.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 14173184 May 20 2002 vac.C.5.0.2.4.bff
+\& \-rw\-rw\-r\-\- 1 45776101 1 14192640 Nov 22 2002 vac.C.5.0.2.6.bff
+\& # wget ftp://ftp.software.ibm.com/aix/fixes/v4/other/vac.C.5.0.2.6.bff
+\& #
+.Ve
+.PP
+Likewise on all other OS levels. Then execute the following command, and
+fill in its choices
+.PP
+.Vb 5
+\& # smit install_update
+\& \-> Install and Update from LATEST Available Software
+\& * INPUT device / directory for software [ vac.C.5.0.2.6.bff ]
+\& [ OK ]
+\& [ OK ]
+.Ve
+.PP
+Follow the messages ... and you're done.
+.PP
+If you like a more web-like approach, a good start point can be
+<http://www14.software.ibm.com/webapp/download/downloadaz.jsp> and click
+"C for AIX", and follow the instructions.
+.SS "The usenm option"
+.IX Subsection "The usenm option"
+If linking miniperl
+.PP
+.Vb 1
+\& cc \-o miniperl ... miniperlmain.o opmini.o perl.o ... \-lm \-lc ...
+.Ve
+.PP
+causes error like this
+.PP
+.Vb 9
+\& ld: 0711\-317 ERROR: Undefined symbol: .aintl
+\& ld: 0711\-317 ERROR: Undefined symbol: .copysignl
+\& ld: 0711\-317 ERROR: Undefined symbol: .syscall
+\& ld: 0711\-317 ERROR: Undefined symbol: .eaccess
+\& ld: 0711\-317 ERROR: Undefined symbol: .setresuid
+\& ld: 0711\-317 ERROR: Undefined symbol: .setresgid
+\& ld: 0711\-317 ERROR: Undefined symbol: .setproctitle
+\& ld: 0711\-345 Use the \-bloadmap or \-bnoquiet option to obtain more
+\& information.
+.Ve
+.PP
+you could retry with
+.PP
+.Vb 3
+\& make realclean
+\& rm config.sh
+\& ./Configure \-Dusenm ...
+.Ve
+.PP
+which makes Configure to use the \f(CW\*(C`nm\*(C'\fR tool when scanning for library
+symbols, which usually is not done in AIX.
+.PP
+Related to this, you probably should not use the \f(CW\*(C`\-r\*(C'\fR option of
+Configure in AIX, because that affects of how the \f(CW\*(C`nm\*(C'\fR tool is used.
+.SS "Using GNU's gcc for building Perl"
+.IX Subsection "Using GNU's gcc for building Perl"
+Using gcc\-3.x (tested with 3.0.4, 3.1, and 3.2) now works out of the box,
+as do recent gcc\-2.9 builds available directly from IBM as part of their
+Linux compatibility packages, available here:
+.PP
+.Vb 1
+\& http://www.ibm.com/servers/aix/products/aixos/linux/
+.Ve
+.SS "Using Large Files with Perl < 5L"
+.IX Subsection "Using Large Files with Perl < 5L"
+Should yield no problems.
+.SS "Threaded Perl < 5L"
+.IX Subsection "Threaded Perl < 5L"
+Threads seem to work OK, though at the moment not all tests pass when
+threads are used in combination with 64\-bit configurations.
+.PP
+You may get a warning when doing a threaded build:
+.PP
+.Vb 2
+\& "pp_sys.c", line 4640.39: 1506\-280 (W) Function argument assignment
+\& between types "unsigned char*" and "const void*" is not allowed.
+.Ve
+.PP
+The exact line number may vary, but if the warning (W) comes from a line
+line this
+.PP
+.Vb 1
+\& hent = PerlSock_gethostbyaddr(addr, (Netdb_hlen_t) addrlen, addrtype);
+.Ve
+.PP
+in the "pp_ghostent" function, you may ignore it safely. The warning
+is caused by the reentrant variant of \fBgethostbyaddr()\fR having a slightly
+different prototype than its non-reentrant variant, but the difference
+is not really significant here.
+.SS "64\-bit Perl < 5L"
+.IX Subsection "64-bit Perl < 5L"
+If your AIX is installed with 64\-bit support, you can expect 64\-bit
+configurations to work. In combination with threads some tests might
+still fail.
+.SS "AIX 4.2 and extensions using C++ with statics"
+.IX Subsection "AIX 4.2 and extensions using C++ with statics"
+In AIX 4.2 Perl extensions that use C++ functions that use statics
+may have problems in that the statics are not getting initialized.
+In newer AIX releases this has been solved by linking Perl with
+the libC_r library, but unfortunately in AIX 4.2 the said library
+has an obscure bug where the various functions related to time
+(such as \fBtime()\fR and \fBgettimeofday()\fR) return broken values, and
+therefore in AIX 4.2 Perl is not linked against the libC_r.
+.SH AUTHORS
+.IX Header "AUTHORS"
+Rainer Tammer <tammer@tammer.net>