File: perlaix.html

package info (click to toggle)
perl-doc-html 5.26.0-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 39,400 kB
  • sloc: xml: 36; makefile: 7
file content (725 lines) | stat: -rw-r--r-- 60,377 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title>perlaix - perldoc.perl.org</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <meta http-equiv="Content-Language" content="en-gb">
  <link rel="search" type="application/opensearchdescription+xml" title="Search perldoc.perl.org" href="/static/search.xml"/>
  <link href="static/css-20100830.css" rel="stylesheet" rev="stylesheet" type="text/css" media="screen">
  <link href="static/exploreperl.css" rel="stylesheet" rev="stylesheet" type="text/css">
</head>

<body onLoad="perldoc.startup();" onPageShow="if (event.persisted) perldoc.startup();">
    <div id="page">
      
      <div id="header">
	<div id="homepage_link">
	  <a href="index.html"></a>
	</div>
	<div id="strapline">
	  Perl Programming Documentation
	</div>
	<div id="download_link" class="download">
	  <a href="http://www.perl.org/get.html">Download Perl</a>
	</div>
	<div id="explore_link" class="download">
	  <a id="explore_anchor" href="#">Explore</a>
	</div>
      </div>
      
      <div id="body">
        <div id="left_column">
          <div class="side_group">
            
	    <div class="side_panel doc_panel">
              <p>Manual</p>
              <ul>
                <li><a href="index-overview.html">Overview</a>
                <li><a href="index-tutorials.html">Tutorials</a>
                <li><a href="index-faq.html">FAQs</a>
                <li><a href="index-history.html">History / Changes</a>
                <li><a href="index-licence.html">License</a>
              </ul>
            </div>
            <div class="side_panel doc_panel">
              <p>Reference</p>
              <ul>
                <li><a href="index-language.html">Language</a>
                <li><a href="index-functions.html">Functions</a>
                <li><a href="perlop.html">Operators</a>
                <li><a href="perlvar.html">Special Variables</a>
                <li><a href="index-pragmas.html">Pragmas</a>
                <li><a href="index-utilities.html">Utilities</a>
                <li><a href="index-internals.html">Internals</a>
                <li><a href="index-platforms.html">Platform Specific</a>
              </ul>
            </div>
            <div class="side_panel doc_panel">
              <p>Modules</p>
              <ul>
		<li>
		
                
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		
                  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		
                  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		    
		  
		
                  
		
                  
		
                  
		    
		  
		
                  
		
                  
		
		
                    <a href="index-modules-A.html">A</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-B.html">B</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-C.html">C</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-D.html">D</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-E.html">E</a>
                    
                      
                        <li>
                      
                    
                
                    <a href="index-modules-F.html">F</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-G.html">G</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-H.html">H</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-I.html">I</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-L.html">L</a>
                    
                      
                        <li>
                      
                    
                
                    <a href="index-modules-M.html">M</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-N.html">N</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-O.html">O</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-P.html">P</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-S.html">S</a>
                    
                      
                        <li>
                      
                    
                
                    <a href="index-modules-T.html">T</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-U.html">U</a>
                    
                      
                        &bull;
                      
                    
                
                    <a href="index-modules-X.html">X</a>
                    
                
              </ul>
            </div>
            
	      <div class="side_panel doc_panel">
		<p>Tools</p>
		<ul>
		  <li><a href="preferences.html">Preferences</a>
		</ul>
	      </div>
            
          </div>
        </div>
        <div id="centre_column">
          <div id="content_header">
            <div id="title_bar">
              <div id="page_name">
                <h1>perlaix</h1>
              </div>
              <div id="perl_version">
                Perl 5 version 26.0 documentation
              </div>
              <div class="page_links" id="page_links_top">
                <a href="#" onClick="toolbar.goToTop();return false;">Go to top</a>
		
              </div>
	      <div class="page_links" id="page_links_bottom">
		
                  <a href="#" id="page_index_toggle">Show page index</a> &bull;
		
                <a href="#" id="recent_pages_toggle">Show recent pages</a>		
	      </div>
	      <div id="search_form">
		<form action="search.html" method="GET" id="search">
		  <input type="text" name="q" id="search_box" alt="Search">
		</form>
	      </div>
            </div>
            <div id="breadcrumbs">
                
    <a href="index.html">Home</a> &gt;
    
      
        <a href="index-platforms.html">Platform specific</a> &gt;
      
    
    perlaix
  

            </div>
          </div>
          <div id="content_body">
	    <!--[if lt IE 7]>
 <div class="noscript">
   <p>
     <strong>It looks like you're using Internet Explorer 6. This is a very old
     browser which does not offer full support for modern websites.</strong>
   </p>
   <p>
     Unfortunately this means that this website will not work on
     your computer.
   </p>
   <p>
     Don't miss out though! To view the site (and get a better experience from
     many other websites), simply upgrade to
     <a href="http://www.microsoft.com/windows/Internet-explorer/default.aspx">Internet
Explorer 8</a>
     or download an alternative browser such as
     <a href="http://www.mozilla.com/en-US/firefox/firefox.html">Firefox</a>,
     <a href="http://www.apple.com/safari/download/">Safari</a>, or
     <a href="http://www.google.co.uk/chrome">Google Chrome</a>.
   </p>
   <p>
     All of these browsers are free. If you're using a PC at work, you may
     need to contact your IT administrator.
   </p>
 </div>
<![endif]-->
	    <noscript>
	      <div class="noscript">
	      <p>
                <strong>Please note: Many features of this site require JavaScript. You appear to have JavaScript disabled,
	        or are running a non-JavaScript capable web browser.</strong>
	      </p>
	      <p>
		To get the best experience, please enable JavaScript or download a modern web browser such as <a href="http://www.microsoft.com/windows/Internet-explorer/default.aspx">Internet Explorer 8</a>, <a href="http://www.mozilla.com/en-US/firefox/firefox.html">Firefox</a>, <a href="http://www.apple.com/safari/download/">Safari</a>, or <a href="http://www.google.co.uk/chrome">Google Chrome</a>.
              </p>
	      </div>
	    </noscript>

	    <div id="recent_pages" class="hud_container">
	      <div id="recent_pages_header" class="hud_header">
		<div id="recent_pages_close" class="hud_close"><a href="#" onClick="recentPages.hide();return false;"></a></div>
		<div id="recent_pages_title" class="hud_title"><span class="hud_span_top">Recently read</span></div>
		<div id="recent_pages_topright" class="hud_topright"></div>
	      </div>
	      <div id="recent_pages_content" class="hud_content">
	      </div>
	      <div id="recent_pages_footer" class="hud_footer">
		<div id="recent_pages_bottomleft" class="hud_bottomleft"></div>
		<div id="recent_pages_bottom" class="hud_bottom"><span class="hud_span_bottom"></span></div>
		<div id="recent_pages_resize" class="hud_resize"></div>
	      </div>
	    </div>
  
	    <div id="from_search"></div>
            <h1>perlaix</h1>


  <!--    -->
<ul><li><a href="#NAME">NAME</a><li><a href="#DESCRIPTION">DESCRIPTION</a><ul><li><a href="#Compiling-Perl-5-on-AIX">Compiling Perl 5 on AIX</a><li><a href="#Supported-Compilers">Supported Compilers</a><li><a href="#Incompatibility-with-AIX-Toolbox-lib-gdbm">Incompatibility with AIX Toolbox lib gdbm</a><li><a href="#Perl-5-was-successfully-compiled-and-tested-on%3a">Perl 5 was successfully compiled and tested on:</a><li><a href="#Building-Dynamic-Extensions-on-AIX">Building Dynamic Extensions on AIX</a><li><a href="#Using-Large-Files-with-Perl">Using Large Files with Perl</a><li><a href="#Threaded-Perl">Threaded Perl</a><li><a href="#64-bit-Perl">64-bit Perl</a><li><a href="#Long-doubles">Long doubles</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(threaded%2f32-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(32-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(threaded%2f64-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(64-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)</a><li><a href="#Compiling-Perl-5-on-AIX-7.1.0">Compiling Perl 5 on AIX 7.1.0</a><li><a href="#Compiling-Perl-5-on-older-AIX-versions-up-to-4.3.3">Compiling Perl 5 on older AIX versions up to 4.3.3</a><li><a href="#OS-level">OS level</a><li><a href="#Building-Dynamic-Extensions-on-AIX-%3c-5L">Building Dynamic Extensions on AIX < 5L</a><li><a href="#The-IBM-ANSI-C-Compiler">The IBM ANSI C Compiler</a><li><a href="#The-usenm-option">The usenm option</a><li><a href="#Using-GNU's-gcc-for-building-Perl">Using GNU's gcc for building Perl</a><li><a href="#Using-Large-Files-with-Perl-%3c-5L">Using Large Files with Perl < 5L</a><li><a href="#Threaded-Perl-%3c-5L">Threaded Perl < 5L</a><li><a href="#64-bit-Perl-%3c-5L">64-bit Perl < 5L</a><li><a href="#AIX-4.2-and-extensions-using-C%2b%2b-with-statics">AIX 4.2 and extensions using C++ with statics</a></ul><li><a href="#AUTHORS">AUTHORS</a></ul><a name="NAME"></a><h1>NAME</h1>
<p>perlaix - Perl version 5 on IBM AIX (UNIX) systems</p>
<a name="DESCRIPTION"></a><h1>DESCRIPTION</h1>
<p>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.</p>
<a name="Compiling-Perl-5-on-AIX"></a><h2>Compiling Perl 5 on AIX</h2>
<p>For information on compilers on older versions of AIX, see <a href="#Compiling-Perl-5-on-older-AIX-versions-up-to-4.3.3">Compiling Perl 5 on older AIX versions up to 4.3.3</a>.</p>
<p>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.</p>
<a name="Supported-Compilers"></a><h2>Supported Compilers</h2>
<p>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.</p>
<p>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 <a href="#Threaded-Perl">Threaded Perl</a> later on.</p>
<p>As of writing (2010-09) only the <i>IBM XL C for AIX</i> or <i>IBM XL C/C++
for AIX</i> compiler is supported by IBM on AIX 5L/6.1/7.1.</p>
<p>The following compiler versions are currently supported by IBM:</p>
<pre class="verbatim"><ol><li>    <span class="w">IBM</span> <span class="w">XL</span> <span class="w">C</span> and <span class="w">IBM</span> <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V8</span><span class="cm">,</span> <span class="w">V9</span><span class="cm">,</span> <span class="w">V10</span><span class="cm">,</span> <span class="w">V11</span></li></ol></pre><p>The XL C for AIX is integrated in the XL C/C++ for AIX compiler and
therefore also supported.</p>
<p>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).</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<a name="Incompatibility-with-AIX-Toolbox-lib-gdbm"></a><h2>Incompatibility with AIX Toolbox lib gdbm</h2>
<p>If the AIX Toolbox version of lib gdbm &lt; 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).</p>
<a name="Perl-5-was-successfully-compiled-and-tested-on%3a"></a><h2>Perl 5 was successfully compiled and tested on:</h2>
<pre class="verbatim"><ol><li> <span class="w">Perl</span>   | <span class="w">AIX</span> <span class="w">Level</span>           | <span class="w">Compiler</span> <span class="w">Level</span>          | <span class="w">w</span> <span class="w">th</span> | <span class="w">w</span>/<span class="w">o</span> <span class="w">th</span></li><li> -------+---------------------+-------------------------+------+-------</li><li> <span class="v">5.12.2</span> |<span class="n">5.1</span> <span class="w">TL9</span> <span class="n">32</span> <span class="w">bit</span>       | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V7</span>             | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.1</span> <span class="w">TL9</span> <span class="n">64</span> <span class="w">bit</span>       | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V7</span>             | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.2</span> <span class="w">TL10</span> <span class="w">SP8</span> <span class="n">32</span> <span class="w">bit</span>  | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V8</span>             | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.2</span> <span class="w">TL10</span> <span class="w">SP8</span> <span class="n">32</span> <span class="w">bit</span>  | <span class="w">gcc</span> <span class="v">3.2.2</span>               | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.2</span> <span class="w">TL10</span> <span class="w">SP8</span> <span class="n">64</span> <span class="w">bit</span>  | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V8</span>             | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.3</span> <span class="w">TL8</span> <span class="w">SP8</span> <span class="n">32</span> <span class="w">bit</span>   | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V9</span> + <span class="w">IZ35785</span>   | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.3</span> <span class="w">TL8</span> <span class="w">SP8</span> <span class="n">32</span> <span class="w">bit</span>   | <span class="w">gcc</span> <span class="v">4.2.4</span>               | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.3</span> <span class="w">TL8</span> <span class="w">SP8</span> <span class="n">64</span> <span class="w">bit</span>   | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V9</span> + <span class="w">IZ35785</span>   | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.3</span> <span class="w">TL10</span> <span class="w">SP3</span> <span class="n">32</span> <span class="w">bit</span>  | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V11</span> + <span class="w">Apr</span> <span class="n">2010</span> | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">5.3</span> <span class="w">TL10</span> <span class="w">SP3</span> <span class="n">64</span> <span class="w">bit</span>  | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V11</span> + <span class="w">Apr</span> <span class="n">2010</span> | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">6.1</span> <span class="w">TL1</span> <span class="w">SP7</span> <span class="n">32</span> <span class="w">bit</span>   | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V10</span>            | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="v">5.12.2</span> |<span class="n">6.1</span> <span class="w">TL1</span> <span class="w">SP7</span> <span class="n">64</span> <span class="w">bit</span>   | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V10</span>            | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="n">5.13</span>   |<span class="n">7.1</span> <span class="w">TL0</span> <span class="w">SP1</span> <span class="n">32</span> <span class="w">bit</span>   | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V11</span> + <span class="w">Jul</span> <span class="n">2010</span> | <span class="w">OK</span>   | <span class="w">OK</span></li><li> <span class="n">5.13</span>   |<span class="n">7.1</span> <span class="w">TL0</span> <span class="w">SP1</span> <span class="n">64</span> <span class="w">bit</span>   | <span class="w">XL</span> <span class="w">C</span>/<span class="w">C</span>++ <span class="w">V11</span> + <span class="w">Jul</span> <span class="n">2010</span> | <span class="w">OK</span>   | <span class="w">OK</span></li><li></li><li> <span class="w">w</span> <span class="w">th</span>   = <span class="w">with</span> <span class="w">thread</span> <span class="w">support</span></li><li> <span class="w">w</span>/<span class="w">o</span> <span class="w">th</span> = <span class="w">without</span> <span class="w">thread</span> <span class="w">support</span></li><li> <span class="w">OK</span>     = <span class="w">tested</span></li></ol></pre><p>Successfully tested means that all "make test" runs finish with a
result of 100% OK. All tests were conducted with -Duseshrplib set.</p>
<p>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.</p>
<a name="Building-Dynamic-Extensions-on-AIX"></a><h2>Building Dynamic Extensions on AIX</h2>
<p>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.</p>
<p>It is highly recommended to use the new interface.</p>
<a name="Using-Large-Files-with-Perl"></a><h2>Using Large Files with Perl</h2>
<p>Should yield no problems.</p>
<a name="Threaded-Perl"></a><h2>Threaded Perl</h2>
<p>Should yield no problems with AIX 5.1 / 5.2 / 5.3 / 6.1 / 7.1.</p>
<p>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.</p>
<p>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.</p>
<p>Perl 5.12 an newer is not compatible with the IBM fileset perl.libext.</p>
<a name="64-bit-Perl"></a><h2>64-bit Perl</h2>
<p>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.</p>
<p>If you need more memory (larger data segment) for your Perl programs you
can set:</p>
<pre class="verbatim"><ol><li>    /etc/security/limits</li><li>    default:                    (or your user)</li><li>        data = -1               (default is 262144 * 512 byte)</li></ol></pre><p>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.</p>
<a name="Long-doubles"></a><h2>Long doubles</h2>
<p>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.</p>
<p>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 <code class="inline">-<span class="w">Duselongdouble</span></code>
 (or <code class="inline">-<span class="w">Dusemorebits</span></code>
,
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.</p>
<a name="Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(threaded%2f32-bit)"></a><h2>Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)</h2>
<p>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.</p>
<pre class="verbatim"><ol><li>    rm config.sh</li><li>    ./Configure \</li><li>    -d \</li><li>    -Dcc=cc_r \</li><li>    -Duseshrplib \</li><li>    -Dusethreads \</li><li>    -Dprefix=/usr/opt/perl5_32</li></ol></pre><p>The -Dprefix option will install Perl in a directory parallel to the 
IBM AIX system Perl installation.</p>
<a name="Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(32-bit)"></a><h2>Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)</h2>
<p>With the following options you get a Perl version which passes 
all make tests in 32-bit mode.</p>
<pre class="verbatim"><ol><li>    rm config.sh</li><li>    ./Configure \</li><li>    -d \</li><li>    -Dcc=cc_r \</li><li>    -Duseshrplib \</li><li>    -Dprefix=/usr/opt/perl5_32</li></ol></pre><p>The -Dprefix option will install Perl in a directory parallel to the
IBM AIX system Perl installation.</p>
<a name="Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(threaded%2f64-bit)"></a><h2>Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)</h2>
<p>With the following options you get a threaded Perl version which
passes all make tests in 64-bit mode.</p>
<pre class="verbatim"><ol><li> <span class="w">export</span> <span class="w">OBJECT_MODE</span>=<span class="n">64</span> / <span class="w">setenv</span> <span class="w">OBJECT_MODE</span> <span class="n">64</span> <span class="s">(</span><span class="w">depending</span> <span class="w">on</span> <span class="w">your</span> <span class="w">shell</span><span class="s">)</span></li><li></li><li> <span class="w">rm</span> <span class="w">config</span>.<span class="w">sh</span></li><li> .<span class="q">/Configure \</span></li><li> <span class="q"> -d \</span></li><li> <span class="q"> -Dcc=cc_r \</span></li><li> <span class="q"> -Duseshrplib \</span></li><li> <span class="q"> -Dusethreads \</span></li><li> <span class="q"> -Duse64bitall \</span></li><li> <span class="q"> -Dprefix=/</span><span class="w">usr</span><span class="q">/opt/perl5_64</span></li></ol></pre><a name="Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(64-bit)"></a><h2>Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)</h2>
<p>With the following options you get a Perl version which passes all
make tests in 64-bit mode.</p>
<pre class="verbatim"><ol><li> <span class="w">export</span> <span class="w">OBJECT_MODE</span>=<span class="n">64</span> / <span class="w">setenv</span> <span class="w">OBJECT_MODE</span> <span class="n">64</span> <span class="s">(</span><span class="w">depending</span> <span class="w">on</span> <span class="w">your</span> <span class="w">shell</span><span class="s">)</span></li><li></li><li> <span class="w">rm</span> <span class="w">config</span>.<span class="w">sh</span></li><li> .<span class="q">/Configure \</span></li><li> <span class="q"> -d \</span></li><li> <span class="q"> -Dcc=cc_r \</span></li><li> <span class="q"> -Duseshrplib \</span></li><li> <span class="q"> -Duse64bitall \</span></li><li> <span class="q"> -Dprefix=/</span><span class="w">usr</span><span class="q">/opt/perl5_64</span></li></ol></pre><p>The -Dprefix option will install Perl in a directory parallel to the
IBM AIX system Perl installation.</p>
<p>If you choose gcc to compile 64-bit Perl then you need to add the
following option:</p>
<pre class="verbatim"><ol><li>    -<span class="w">Dcc</span>=<span class="q">'gcc -maix64'</span></li></ol></pre><a name="Compiling-Perl-5-on-AIX-7.1.0"></a><h2>Compiling Perl 5 on AIX 7.1.0</h2>
<p>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 <code class="inline"> <span class="w">TZ</span>=<span class="w">EST5</span> <span class="w">date</span> +<span class="i">%Z</span> </code>
.  This will come
back with <code class="inline"><span class="w">EST</span></code>
 normally, but nothing if you have the problem.</p>
<a name="Compiling-Perl-5-on-older-AIX-versions-up-to-4.3.3"></a><h2>Compiling Perl 5 on older AIX versions up to 4.3.3</h2>
<p>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):</p>
<p>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.</p>
<p>At the moment of writing, AIX supports two different native C compilers,
for which you have to pay: <b>xlC</b> and <b>vac</b>. 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:</p>
<pre class="verbatim"><ol><li>    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</li><li>    vac.C     4.4.0.3  or 5.0.2.6 or 6.0.0.1</li></ol></pre><p>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</p>
<pre class="verbatim"><ol><li>    <span class="w">xlC</span>.<span class="w">aix50</span>.<span class="w">rte</span>   <span class="v">5.0.2.0</span> or <span class="v">6.0.0.3</span></li></ol></pre><p>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.</p>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<a name="OS-level"></a><h2>OS level</h2>
<p>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):</p>
<pre class="verbatim"><ol><li>    # oslevel</li><li>    4.3.0.0</li><li>    # lslpp -l | grep 'bos.rte '</li><li>    bos.rte           4.3.3.75  COMMITTED  Base Operating System Runtime</li><li>    bos.rte            4.3.2.0  COMMITTED  Base Operating System Runtime</li><li>    #</li></ol></pre><p>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</p>
<pre class="verbatim"><ol><li>    # lslpp -l | egrep "syscalls|libm"</li><li>    bos.adt.libm      5.1.0.25  COMMITTED  Base Application Development</li><li>    bos.adt.syscalls  5.1.0.36  COMMITTED  System Calls Application</li><li>    #</li></ol></pre><a name="Building-Dynamic-Extensions-on-AIX-%3c-5L"></a><h2>Building Dynamic Extensions on AIX &lt; 5L</h2>
<p>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.</p>
<p>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.</p>
<a name="The-IBM-ANSI-C-Compiler"></a><h2>The IBM ANSI C Compiler</h2>
<p>All defaults for Configure can be used.</p>
<p>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.</p>
<p>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.</p>
<pre class="verbatim"><ol><li> <span class="w">vac</span>.<span class="w">C</span><span class="v">.4.4.0.1</span> <span class="cm">=&gt;</span> <span class="w">vac</span>.<span class="w">C</span><span class="v">.4.4.0.3</span>  <span class="w">is</span> <span class="w">OK</span>     <span class="s">(</span><span class="w">vac</span>.<span class="w">C</span><span class="v">.4.4.0.2</span> <a class="l_k" href="functions/not.html">not</a> <span class="w">needed</span><span class="s">)</span></li><li> <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.3.3</span> <span class="cm">=&gt;</span> <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.10</span> <span class="w">is</span> <span class="w">NOT</span> <span class="w">OK</span> <span class="s">(</span><span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.0</span> <span class="w">is</span> <a class="l_k" href="functions/not.html">not</a></li><li>                                                              <span class="w">available</span><span class="s">)</span></li><li></li><li> <span class="c"># ftp ftp.software.ibm.com</span></li><li> <span class="w">Connected</span> <span class="w">to</span> <span class="w">service</span>.<span class="w">boulder</span>.<span class="w">ibm</span>.<span class="w">com</span>.</li><li> <span class="co">:</span> <span class="w">welcome</span> <span class="w">message</span> ...</li><li> <span class="w">Name</span> <span class="s">(</span><span class="w">ftp</span>.<span class="w">software</span>.<span class="w">ibm</span>.<span class="w">com</span><span class="co">:</span><span class="w">merijn</span><span class="s">)</span><span class="co">:</span> <span class="w">anonymous</span></li><li> <span class="n">331</span> <span class="w">Guest</span> <span class="w">login</span> <span class="w">ok</span><span class="cm">,</span> <a class="l_k" href="functions/send.html">send</a> <span class="w">your</span> <span class="w">complete</span> <span class="w">e</span>-<span class="w">mail</span> <span class="w">address</span> <span class="w">as</span> <span class="w">password</span>.</li><li> <span class="w">Password</span><span class="co">:</span></li><li> ... <span class="w">accepted</span> <span class="w">login</span> <span class="w">stuff</span></li><li> <span class="w">ftp</span>&gt; <span class="w">cd</span> /<span class="w">aix</span>/<span class="w">fixes</span>/<span class="v">v4</span>/</li><li> <span class="w">ftp</span>&gt; <span class="w">dir</span> <span class="w">other</span> <span class="w">other</span>.<span class="w">ll</span></li><li> <span class="w">output</span> <span class="w">to</span> <a class="l_k" href="functions/local.html">local</a>-<span class="w">file</span><span class="co">:</span> <span class="w">other</span>.<span class="w">ll</span>? <span class="q">y</span></li><li> <span class="q"> 200 PORT command successful.</span></li><li> <span class="q"> 150 Opening ASCII mode data connection for /bin/ls.</span></li><li> <span class="q"> 226</span> <span class="w">Transfer</span> <span class="w">complete</span>.</li><li> <span class="w">ftp</span>&gt; <span class="w">dir</span> <span class="w">xlc</span> <span class="w">xlc</span>.<span class="w">ll</span></li><li> <span class="w">output</span> <span class="w">to</span> <a class="l_k" href="functions/local.html">local</a>-<span class="w">file</span><span class="co">:</span> <span class="w">xlc</span>.<span class="w">ll</span>? <span class="q">y</span></li><li> <span class="q"> 200 PORT command successful.</span></li><li> <span class="q"> 150 Opening ASCII mode data connection for /bin/ls.</span></li><li> <span class="q"> 226</span> <span class="w">Transfer</span> <span class="w">complete</span>.</li><li> <span class="w">ftp</span>&gt; <span class="w">bye</span></li><li> ... <span class="w">goodbye</span> <span class="w">messages</span></li><li> <span class="c"># ls -l *.ll</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-<span class="w">rw</span>-   <span class="n">1</span> <span class="w">merijn</span>   <a class="l_k" href="functions/system.html">system</a>    <span class="n">1169432</span> <span class="w">Nov</span>  <span class="n">2</span> <span class="n">17</span><span class="co">:</span><span class="n">29</span> <span class="w">other</span>.<span class="w">ll</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-<span class="w">rw</span>-   <span class="n">1</span> <span class="w">merijn</span>   <a class="l_k" href="functions/system.html">system</a>      <span class="n">29170</span> <span class="w">Nov</span>  <span class="n">2</span> <span class="n">17</span><span class="co">:</span><span class="n">29</span> <span class="w">xlc</span>.<span class="w">ll</span></li></ol></pre><p>On AIX 4.2 using xlC, we continue:</p>
<pre class="verbatim"><ol><li> <span class="c"># lslpp -l | fgrep &#39;xlC.C &#39;</span></li><li>   <span class="w">xlC</span>.<span class="w">C</span>                     <span class="v">3.1.4.9</span>  <span class="w">COMMITTED</span>  <span class="w">C</span> <a class="l_k" href="functions/for.html">for</a> <span class="w">AIX</span> <span class="w">Compiler</span></li><li>   <span class="w">xlC</span>.<span class="w">C</span>                     <span class="v">3.1.4.0</span>  <span class="w">COMMITTED</span>  <span class="w">C</span> <a class="l_k" href="functions/for.html">for</a> <span class="w">AIX</span> <span class="w">Compiler</span></li><li> <span class="c"># grep &#39;xlC.C.3.1.4.*.bff&#39; xlc.ll</span></li><li> -<span class="w">rw</span>-r--<span class="w">r</span>--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6286336</span> <span class="w">Jul</span> <span class="n">22</span> <span class="n">1996</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.1</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6173696</span> <span class="w">Aug</span> <span class="n">24</span> <span class="n">1998</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.10</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-r--<span class="w">r</span>--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6319104</span> <span class="w">Aug</span> <span class="n">14</span> <span class="n">1996</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.2</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-r--<span class="w">r</span>--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6316032</span> <span class="w">Oct</span> <span class="n">21</span> <span class="n">1996</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.3</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-r--<span class="w">r</span>--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6315008</span> <span class="w">Dec</span> <span class="n">20</span> <span class="n">1996</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.4</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6178816</span> <span class="w">Mar</span> <span class="n">28</span> <span class="n">1997</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.5</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6188032</span> <span class="w">May</span> <span class="n">22</span> <span class="n">1997</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.6</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6191104</span> <span class="w">Sep</span>  <span class="n">5</span> <span class="n">1997</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.7</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6185984</span> <span class="w">Jan</span> <span class="n">13</span> <span class="n">1998</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.8</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">6169600</span> <span class="w">May</span> <span class="n">27</span> <span class="n">1998</span>  <span class="w">xlC</span>.<span class="w">C</span><span class="v">.3.1.4.9</span>.<span class="w">bff</span></li><li> <span class="c"># wget ftp://ftp.software.ibm.com/aix/fixes/v4/xlc/xlC.C.3.1.4.10.bff</span></li><li> <span class="c">#</span></li></ol></pre><p>On AIX 4.3 using vac, we continue:</p>
<pre class="verbatim"><ol><li> <span class="c"># lslpp -l | grep &#39;vac.C &#39;</span></li><li>  <span class="w">vac</span>.<span class="w">C</span>                      <span class="v">5.0.2.2</span>  <span class="w">COMMITTED</span>  <span class="w">C</span> <a class="l_k" href="functions/for.html">for</a> <span class="w">AIX</span> <span class="w">Compiler</span></li><li>  <span class="w">vac</span>.<span class="w">C</span>                      <span class="v">5.0.2.0</span>  <span class="w">COMMITTED</span>  <span class="w">C</span> <a class="l_k" href="functions/for.html">for</a> <span class="w">AIX</span> <span class="w">Compiler</span></li><li> <span class="c"># grep &#39;vac.C.5.0.2.*.bff&#39; other.ll</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">13592576</span> <span class="w">Apr</span> <span class="n">16</span> <span class="n">2001</span>  <span class="w">vac</span>.<span class="w">C</span><span class="v">.5.0.2.0</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">14133248</span> <span class="w">Apr</span>  <span class="n">9</span> <span class="n">2002</span>  <span class="w">vac</span>.<span class="w">C</span><span class="v">.5.0.2.3</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">14173184</span> <span class="w">May</span> <span class="n">20</span> <span class="n">2002</span>  <span class="w">vac</span>.<span class="w">C</span><span class="v">.5.0.2.4</span>.<span class="w">bff</span></li><li> -<span class="w">rw</span>-<span class="w">rw</span>-r--   <span class="n">1</span> <span class="n">45776101</span> <span class="n">1</span>       <span class="n">14192640</span> <span class="w">Nov</span> <span class="n">22</span> <span class="n">2002</span>  <span class="w">vac</span>.<span class="w">C</span><span class="v">.5.0.2.6</span>.<span class="w">bff</span></li><li> <span class="c"># wget ftp://ftp.software.ibm.com/aix/fixes/v4/other/vac.C.5.0.2.6.bff</span></li><li> <span class="c">#</span></li></ol></pre><p>Likewise on all other OS levels. Then execute the following command, and
fill in its choices</p>
<pre class="verbatim"><ol><li> <span class="c"># smit install_update</span></li><li>  <span class="i">-&gt; Install</span> and <span class="w">Update</span> <span class="w">from</span> <span class="w">LATEST</span> <span class="w">Available</span> <span class="w">Software</span></li><li>  * <span class="w">INPUT</span> <span class="w">device</span> / <span class="w">directory</span> for <span class="w">software</span> <span class="s">[</span> <span class="w">vac</span>.<span class="w">C</span><span class="v">.5.0.2.6</span>.<span class="w">bff</span>    <span class="s">]</span></li><li>  <span class="s">[</span> <span class="w">OK</span> <span class="s">]</span></li><li>  <span class="s">[</span> <span class="w">OK</span> <span class="s">]</span></li></ol></pre><p>Follow the messages ... and you're done.</p>
<p>If you like a more web-like approach, a good start point can be
<a href="http://www14.software.ibm.com/webapp/download/downloadaz.jsp">http://www14.software.ibm.com/webapp/download/downloadaz.jsp</a> and click
"C for AIX", and follow the instructions.</p>
<a name="The-usenm-option"></a><h2>The usenm option</h2>
<p>If linking miniperl</p>
<pre class="verbatim"><ol><li> <span class="w">cc</span> -o <span class="w">miniperl</span> ... <span class="w">miniperlmain</span>.<span class="w">o</span> <span class="w">opmini</span>.<span class="w">o</span> <span class="w">perl</span>.<span class="w">o</span> ... -<span class="w">lm</span> -<a class="l_k" href="functions/lc.html">lc</a> ...</li></ol></pre><p>causes error like this</p>
<pre class="verbatim"><ol><li> <span class="j">ld:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<span class="w">aintl</span></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<span class="w">copysignl</span></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<a class="l_k" href="functions/syscall.html">syscall</a></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<span class="w">eaccess</span></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<span class="w">setresuid</span></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<span class="w">setresgid</span></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">317</span> <span class="w">ERROR</span><span class="co">:</span> <span class="w">Undefined</span> <span class="w">symbol</span><span class="co">:</span> .<span class="w">setproctitle</span></li><li> <span class="w">ld</span><span class="co">:</span> <span class="n">0711</span>-<span class="n">345</span> <span class="w">Use</span> <span class="w">the</span> -<span class="w">bloadmap</span> <a class="l_k" href="functions/or.html">or</a> -<span class="w">bnoquiet</span> <span class="w">option</span> <span class="w">to</span> <span class="w">obtain</span> <span class="w">more</span></li><li>                                                            <span class="w">information</span>.</li></ol></pre><p>you could retry with</p>
<pre class="verbatim"><ol><li> make realclean</li><li> rm config.sh</li><li> ./Configure -Dusenm ...</li></ol></pre><p>which makes Configure to use the <code class="inline"><span class="w">nm</span></code>
 tool when scanning for library
symbols, which usually is not done in AIX.</p>
<p>Related to this, you probably should not use the <code class="inline">-r</code>
 option of
Configure in AIX, because that affects of how the <code class="inline"><span class="w">nm</span></code>
 tool is used.</p>
<a name="Using-GNU's-gcc-for-building-Perl"></a><h2>Using GNU's gcc for building Perl</h2>
<p>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:</p>
<pre class="verbatim"><ol><li>  http://www.ibm.com/servers/aix/products/aixos/linux/</li></ol></pre><a name="Using-Large-Files-with-Perl-%3c-5L"></a><h2>Using Large Files with Perl &lt; 5L</h2>
<p>Should yield no problems.</p>
<a name="Threaded-Perl-%3c-5L"></a><h2>Threaded Perl &lt; 5L</h2>
<p>Threads seem to work OK, though at the moment not all tests pass when
threads are used in combination with 64-bit configurations.</p>
<p>You may get a warning when doing a threaded build:</p>
<pre class="verbatim"><ol><li>  "pp_sys.c", line 4640.39: 1506-280 (W) Function argument assignment </li><li>  between types "unsigned char*" and "const void*" is not allowed.</li></ol></pre><p>The exact line number may vary, but if the warning (W) comes from a line
line this</p>
<pre class="verbatim"><ol><li>  hent = PerlSock_gethostbyaddr(addr, (Netdb_hlen_t) addrlen, addrtype);</li></ol></pre><p>in the "pp_ghostent" function, you may ignore it safely.  The warning
is caused by the reentrant variant of gethostbyaddr() having a slightly
different prototype than its non-reentrant variant, but the difference
is not really significant here.</p>
<a name="64-bit-Perl-%3c-5L"></a><h2>64-bit Perl &lt; 5L</h2>
<p>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.</p>
<a name="AIX-4.2-and-extensions-using-C%2b%2b-with-statics"></a><h2>AIX 4.2 and extensions using C++ with statics</h2>
<p>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 time() and gettimeofday()) return broken values, and
therefore in AIX 4.2 Perl is not linked against the libC_r.</p>
<a name="AUTHORS"></a><h1>AUTHORS</h1>
<p>Rainer Tammer &lt;tammer@tammer.net&gt;</p>




  <div id="page_index" class="hud_container">
    <div id="page_index_header" class="hud_header">
      <div id="page_index_close" class="hud_close"><a href="#" onClick="pageIndex.hide();return false;"></a></div>
      <div id="page_index_title" class="hud_title"><span class="hud_span_top">Page index</span></div>
      <div id="page_index_topright" class="hud_topright"></div>
    </div>
    <div id="page_index_content" class="hud_content">
      <ul><li><a href="#NAME">NAME</a><li><a href="#DESCRIPTION">DESCRIPTION</a><ul><li><a href="#Compiling-Perl-5-on-AIX">Compiling Perl 5 on AIX</a><li><a href="#Supported-Compilers">Supported Compilers</a><li><a href="#Incompatibility-with-AIX-Toolbox-lib-gdbm">Incompatibility with AIX Toolbox lib gdbm</a><li><a href="#Perl-5-was-successfully-compiled-and-tested-on%3a">Perl 5 was successfully compiled and tested on:</a><li><a href="#Building-Dynamic-Extensions-on-AIX">Building Dynamic Extensions on AIX</a><li><a href="#Using-Large-Files-with-Perl">Using Large Files with Perl</a><li><a href="#Threaded-Perl">Threaded Perl</a><li><a href="#64-bit-Perl">64-bit Perl</a><li><a href="#Long-doubles">Long doubles</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(threaded%2f32-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/32-bit)</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(32-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (32-bit)</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(threaded%2f64-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (threaded/64-bit)</a><li><a href="#Recommended-Options-AIX-5.1%2f5.2%2f5.3%2f6.1-and-7.1-(64-bit)">Recommended Options AIX 5.1/5.2/5.3/6.1 and 7.1 (64-bit)</a><li><a href="#Compiling-Perl-5-on-AIX-7.1.0">Compiling Perl 5 on AIX 7.1.0</a><li><a href="#Compiling-Perl-5-on-older-AIX-versions-up-to-4.3.3">Compiling Perl 5 on older AIX versions up to 4.3.3</a><li><a href="#OS-level">OS level</a><li><a href="#Building-Dynamic-Extensions-on-AIX-%3c-5L">Building Dynamic Extensions on AIX < 5L</a><li><a href="#The-IBM-ANSI-C-Compiler">The IBM ANSI C Compiler</a><li><a href="#The-usenm-option">The usenm option</a><li><a href="#Using-GNU's-gcc-for-building-Perl">Using GNU's gcc for building Perl</a><li><a href="#Using-Large-Files-with-Perl-%3c-5L">Using Large Files with Perl < 5L</a><li><a href="#Threaded-Perl-%3c-5L">Threaded Perl < 5L</a><li><a href="#64-bit-Perl-%3c-5L">64-bit Perl < 5L</a><li><a href="#AIX-4.2-and-extensions-using-C%2b%2b-with-statics">AIX 4.2 and extensions using C++ with statics</a></ul><li><a href="#AUTHORS">AUTHORS</a></ul>
    </div>
    <div id="page_index_footer" class="hud_footer">
      <div id="page_index_bottomleft" class="hud_bottomleft"></div>
      <div id="page_index_bottom" class="hud_bottom"><span class="hud_span_bottom"></span></div>
      <div id="page_index_resize" class="hud_resize"></div>
    </div>
  </div>


	    &nbsp;
          </div>
          <div id="content_footer">
          </div>
        </div>
        <div class="clear"></div>
      </div>
      
    <div id="footer">
      <div id="footer_content">
        <div id="footer_strapline">
          perldoc.perl.org - Official documentation for the Perl programming language
        </div>
        <div id="footer_links">
          <div id="address">
            <p class="name">Contact details</p>
            <p class="address">
	      Site maintained by <a href="mailto:jj@jonallen.info">Jon Allen (JJ)</a><br>
	    </p>
            <p class="contact">
              Documentation maintained by the <a href="http://lists.cpan.org/showlist.cgi?name=perl5-porters">Perl 5 Porters</a>
            </p>
          </div>
          <ul class="f1">
            <li>Manual
              <ul class="f2">
                <li><a href="index-overview.html">Overview</a>
                <li><a href="index-tutorials.html">Tutorials</a>
                <li><a href="index-faq.html">FAQs</a>
                <li><a href="index-history.html">Changes</a>
              </ul>
            <li>Reference
              <ul class="f2">
                <li><a href="index-language.html">Language</a>
                <li><a href="index-functions.html">Functions</a>
                <li><a href="perlop.html">Operators</a>
                <li><a href="perlvar.html">Variables</a>
              </ul>
            <li>Modules
              <ul class="f2">
                <li><a href="index-modules-A.html">Modules</a>
                <li><a href="index-pragmas.html">Pragmas</a>
                <li><a href="index-utilities.html">Utilities</a>
              </ul>
            <li>Misc
              <ul class="f2">
                <li><a href="index-licence.html">License</a>
                <li><a href="index-internals.html">Internals</a>
                <li><a href="index-platforms.html">Platforms</a>
              </ul>          </ul>
          <div class="clear"></div>
        </div>
      </div>
      <div id="footer_end">
      </div>
    </div>
      
    </div>
      <script language="JavaScript" type="text/javascript" src="static/exploreperl.js"></script>
      <script language="JavaScript" src="static/combined-20100403.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">
  perldoc.setPath(0);
  perldoc.pageName    = 'perlaix';
  perldoc.pageAddress = 'perlaix.html';
  perldoc.contentPage = 1;
  explorePerl.render();
  explorePerl.addEvents('explore_anchor');
</script>
    
  </body>
</html>