=head2 Compiling Perl 5 on AIX
-For information on compilers on older versions of AIX, see L<Compiling
+For information on compilers on older versions of AIX, see L</Compiling
Perl 5 on older AIX versions up to 4.3.3>.
When compiling Perl, you must use an ANSI C compiler. AIX does not ship
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 L<Threaded Perl> later on.
+also L</Threaded Perl> later on.
As of writing (2010-09) only the I<IBM XL C for AIX> or I<IBM XL C/C++
for AIX> compiler is supported by IBM on AIX 5L/6.1/7.1.
=head2 Perl 5 was successfully compiled and tested on:
- 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
+ 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
Successfully tested means that all "make test" runs finish with a
result of 100% OK. All tests were conducted with -Duseshrplib set.
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 overriden with explicit C<-Duselongdouble> (or C<-Dusemorebits>,
+This can be overridden with explicit C<-Duselongdouble> (or C<-Dusemorebits>,
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
With the following options you get a threaded Perl version which
passes all make tests in 64-bit mode.
- export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
+ export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
- rm config.sh
- ./Configure \
- -d \
- -Dcc=cc_r \
- -Duseshrplib \
- -Dusethreads \
- -Duse64bitall \
- -Dprefix=/usr/opt/perl5_64
+ rm config.sh
+ ./Configure \
+ -d \
+ -Dcc=cc_r \
+ -Duseshrplib \
+ -Dusethreads \
+ -Duse64bitall \
+ -Dprefix=/usr/opt/perl5_64
=head2 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.
- export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
+ export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
- rm config.sh
- ./Configure \
- -d \
- -Dcc=cc_r \
- -Duseshrplib \
- -Duse64bitall \
- -Dprefix=/usr/opt/perl5_64
+ rm config.sh
+ ./Configure \
+ -d \
+ -Dcc=cc_r \
+ -Duseshrplib \
+ -Duse64bitall \
+ -Dprefix=/usr/opt/perl5_64
The -Dprefix option will install Perl in a directory parallel to the
IBM AIX system Perl installation.
cumulative.
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)
+ 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.
xlC.C 3.1.4.9 COMMITTED C for AIX Compiler
xlC.C 3.1.4.0 COMMITTED C for AIX Compiler
# grep 'xlC.C.3.1.4.*.bff' 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
+ -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
#
vac.C 5.0.2.2 COMMITTED C for AIX Compiler
vac.C 5.0.2.0 COMMITTED C for AIX Compiler
# grep 'vac.C.5.0.2.*.bff' 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
+ -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
#
Follow the messages ... and you're done.
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
+L<http://www14.software.ibm.com/webapp/download/downloadaz.jsp> and click
"C for AIX", and follow the instructions.
=head2 The usenm option
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.
+ ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more
+ information.
you could retry with