X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/720adda90da7e4ec3ec156d0a257cf92a281b626..32ea73a1fb86701a30aeea7df91aa2d38d6344c9:/README.aix diff --git a/README.aix b/README.aix index 9a49067..7e185a9 100644 --- a/README.aix +++ b/README.aix @@ -14,7 +14,7 @@ is compiled and/or runs. =head2 Compiling Perl 5 on AIX -For information on compilers on older versions of AIX, see L. When compiling Perl, you must use an ANSI C compiler. AIX does not ship @@ -31,7 +31,7 @@ works on your system. 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 later on. +also L later on. As of writing (2010-09) only the I or I compiler is supported by IBM on AIX 5L/6.1/7.1. @@ -75,26 +75,26 @@ at least gdbm-devel-1.8.3-5 (or higher). =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. @@ -157,6 +157,22 @@ 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. +=head2 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. + +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>, +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. + =head2 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 @@ -194,31 +210,31 @@ IBM AIX system Perl installation. 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. @@ -341,7 +357,8 @@ in the developer snapshots of Perl), or to one version up where the 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. @@ -373,16 +390,16 @@ On AIX 4.2 using xlC, we continue: 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 # @@ -392,10 +409,10 @@ On AIX 4.3 using vac, we continue: 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 # @@ -411,7 +428,7 @@ fill in its choices 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 and click "C for AIX", and follow the instructions. =head2 The usenm option @@ -429,7 +446,8 @@ causes error like this 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