Skip to content

Commit 0218e8f

Browse files
FractalBoykhwilliamson
authored andcommitted
Update AIX README
1 parent ccaf98b commit 0218e8f

File tree

1 file changed

+107
-31
lines changed

1 file changed

+107
-31
lines changed

README.aix

Lines changed: 107 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ the AIX Toolbox which is shipped with AIX.
2828

2929
Currently all versions of IBM's "xlc", "xlc_r", "cc", "cc_r" or
3030
"vac" ANSI/C compiler will work for building Perl if that compiler
31-
works on your system.
31+
works on your system. ibm-clang and ibm-clang_r will work as well,
32+
which is recommended on AIX 7.2 and 7.3.
3233

3334
If you plan to link Perl to any module that requires thread-support,
3435
like DBD::Oracle, it is better to use the _r version of the compiler.
@@ -55,10 +56,20 @@ from IBM (April 2009 PTF for XL C/C++ Enterprise Edition for AIX, V9.0).
5556
If you choose XL C/C++ V11 you need the April 2010 PTF (or newer)
5657
installed otherwise you will not get a working Perl version.
5758

58-
Perl can be compiled with either IBM's ANSI C compiler or with gcc.
59-
The former is recommended, as not only it can compile Perl with no
60-
difficulty, but also can take advantage of features listed later
61-
that require the use of IBM compiler-specific command-line flags.
59+
I<IBM Open XL C/C++ for AIX> is also supported for AIX 7.2 and 7.3.
60+
As of 2025-07, the following version is supported:
61+
62+
IBM Open XL C/C++ for AIX V17
63+
64+
If you choose the Open XL C/C++ compiler (ibm-clang/ibm-clang_r), it should
65+
work out of the box.
66+
67+
Perl can be compiled with either IBM's ANSI C compiler, IBM's Open XL clang
68+
compiler, or with gcc. It is recommended to use the Open XL clang compiler, as
69+
not only can it compile Perl with no difficulty, but also can take advantage
70+
of features listed later that require the use of IBM compiler-specific
71+
command-line flags and support newer compiler features only available in clang
72+
and gcc.
6273

6374
If you decide to use gcc, make sure your installation is recent and
6475
complete, and be sure to read the Perl INSTALL file for more gcc-specific
@@ -127,7 +138,7 @@ Should yield no problems.
127138

128139
=head2 Threaded Perl
129140

130-
Should yield no problems with AIX 5.1 / 5.2 / 5.3 / 6.1 / 7.1.
141+
Should yield no problems with AIX 5.1 / 5.2 / 5.3 / 6.1 / 7.1 / 7.2 / 7.3.
131142

132143
IBM uses the AIX system Perl (V5.6.0 on AIX 5.1 and V5.8.2 on
133144
AIX 5.2 / 5.3 and 6.1; V5.8.8 on AIX 5.3 TL11 and AIX 6.1 TL4; V5.10.1
@@ -175,6 +186,22 @@ enable long doubles, for most of the broken things Perl has implemented
175186
workarounds, but the handling of the special values infinity and NaN
176187
remains badly broken: for example infinity plus zero results in NaN.
177188

189+
=head2 Recommended Options AIX 7.2 and 7.3 (threaded/32-bit)
190+
191+
With the following options you get a threaded Perl version which
192+
passes all make tests in threaded 32-bit mode.
193+
194+
rm config.sh
195+
./Configure \
196+
-d \
197+
-Dcc=/opt/IBM/openxlC/17.1.3/bin/ibm-clang_r
198+
-Duseshrplib \
199+
-Dusethreads \
200+
-Dprefix=/usr/opt/perl5_32
201+
202+
The -Dprefix option will install Perl in a directory parallel to the
203+
IBM AIX system Perl installation.
204+
178205
=head2 Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)
179206

180207
With the following options you get a threaded Perl version which
@@ -189,12 +216,27 @@ configuration for the Perl builds that AIX ships with.
189216
-Dusethreads \
190217
-Dprefix=/usr/opt/perl5_32
191218

192-
The -Dprefix option will install Perl in a directory parallel to the
219+
The -Dprefix option will install Perl in a directory parallel to the
220+
IBM AIX system Perl installation.
221+
222+
=head2 Recommended Options AIX 7.2 and 7.3 (32-bit)
223+
224+
With the following options you get a Perl version which passes
225+
all make tests in 32-bit mode.
226+
227+
rm config.sh
228+
./Configure \
229+
-d \
230+
-Dcc=/opt/IBM/openxlC/17.1.3/bin/ibm-clang_r
231+
-Duseshrplib \
232+
-Dprefix=/usr/opt/perl5_32
233+
234+
The -Dprefix option will install Perl in a directory parallel to the
193235
IBM AIX system Perl installation.
194236

195237
=head2 Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)
196238

197-
With the following options you get a Perl version which passes
239+
With the following options you get a Perl version which passes
198240
all make tests in 32-bit mode.
199241

200242
rm config.sh
@@ -207,36 +249,72 @@ all make tests in 32-bit mode.
207249
The -Dprefix option will install Perl in a directory parallel to the
208250
IBM AIX system Perl installation.
209251

252+
=head2 Recommended Options AIX 7.2 and 7.3 (threaded/64-bit)
253+
254+
With the following options you get a threaded Perl version which
255+
passes all make tests in threaded 64-bit mode.
256+
257+
export OBJECT_MODE=64
258+
# or (depending on your shell)
259+
setenv OBJECT_MODE 64
260+
rm config.sh
261+
./Configure \
262+
-d \
263+
-Dcc=/opt/IBM/openxlC/17.1.3/bin/ibm-clang_r
264+
-Duseshrplib \
265+
-Dusethreads \
266+
-Duse64bitall \
267+
-Dprefix=/usr/opt/perl5_64
268+
210269
=head2 Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)
211270

212271
With the following options you get a threaded Perl version which
213272
passes all make tests in 64-bit mode.
214273

215-
export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
274+
export OBJECT_MODE=64
275+
# or (depending on your shell)
276+
setenv OBJECT_MODE 64
277+
rm config.sh
278+
./Configure \
279+
-d \
280+
-Dcc=cc_r \
281+
-Duseshrplib \
282+
-Dusethreads \
283+
-Duse64bitall \
284+
-Dprefix=/usr/opt/perl5_64
216285

217-
rm config.sh
218-
./Configure \
219-
-d \
220-
-Dcc=cc_r \
221-
-Duseshrplib \
222-
-Dusethreads \
223-
-Duse64bitall \
224-
-Dprefix=/usr/opt/perl5_64
286+
=head2 Recommended Options AIX 7.2 and 7.3 (64-bit)
225287

226-
=head2 Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)
288+
With the following options you get a threaded Perl version which
289+
passes all make tests in threaded 64-bit mode.
227290

228-
With the following options you get a Perl version which passes all
229-
make tests in 64-bit mode.
291+
export OBJECT_MODE=64
292+
# or (depending on your shell)
293+
setenv OBJECT_MODE 64
294+
rm config.sh
295+
./Configure \
296+
-d \
297+
-Dcc=/opt/IBM/openxlC/17.1.3/bin/ibm-clang_r
298+
-Duseshrplib \
299+
-Duse64bitall \
300+
-Dprefix=/usr/opt/perl5_64
230301

231-
export OBJECT_MODE=64 / setenv OBJECT_MODE 64 (depending on your shell)
232302

233-
rm config.sh
234-
./Configure \
235-
-d \
236-
-Dcc=cc_r \
237-
-Duseshrplib \
238-
-Duse64bitall \
239-
-Dprefix=/usr/opt/perl5_64
303+
=head2 Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)
304+
305+
With the following options you get a Perl version which passes all
306+
make tests in 64-bit mode.
307+
308+
export OBJECT_MODE=64
309+
# or (depending on your shell)
310+
setenv OBJECT_MODE 64
311+
rm config.sh
312+
./Configure \
313+
-d \
314+
-Dcc=cc_r \
315+
-Duseshrplib \
316+
-Duse64bitall \
317+
-Dprefix=/usr/opt/perl5_64
240318

241319
The -Dprefix option will install Perl in a directory parallel to the
242320
IBM AIX system Perl installation.
@@ -246,7 +324,6 @@ following option:
246324

247325
-Dcc='gcc -maix64'
248326

249-
250327
=head2 Compiling Perl 5 on AIX 7.1.0
251328

252329
A regression in AIX 7 causes a failure in make test in Time::Piece during
@@ -255,7 +332,6 @@ test to see if it's required, assuming it is currently daylight savings
255332
in Eastern Time, would be to run C< TZ=EST5 date +%Z >. This will come
256333
back with C<EST> normally, but nothing if you have the problem.
257334

258-
259335
=head2 Compiling Perl 5 on older AIX versions up to 4.3.3
260336

261337
Due to the fact that AIX 4.3.3 reached end-of-service in December 31,
@@ -482,7 +558,7 @@ threads are used in combination with 64-bit configurations.
482558

483559
You may get a warning when doing a threaded build:
484560

485-
"pp_sys.c", line 4640.39: 1506-280 (W) Function argument assignment
561+
"pp_sys.c", line 4640.39: 1506-280 (W) Function argument assignment
486562
between types "unsigned char*" and "const void*" is not allowed.
487563

488564
The exact line number may vary, but if the warning (W) comes from a line

0 commit comments

Comments
 (0)