Mercurial > repo
comparison perl-5.22.2/README.os400 @ 8045:a16537d2fe07
<xfix> tar xf perl-5.22.2.tar.gz # Ah, whatever, I\'m doing it anyway
author | HackBot |
---|---|
date | Sat, 14 May 2016 14:54:38 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
8044:711c038a7dce | 8045:a16537d2fe07 |
---|---|
1 If you read this file _as_is_, just ignore the funny characters you see. | |
2 It is written in the POD format (see pod/perlpod.pod) which is specially | |
3 designed to be readable as is. | |
4 | |
5 =head1 NAME | |
6 | |
7 perlos400 - Perl version 5 on OS/400 | |
8 | |
9 B<This document needs to be updated, but we don't know what it should say. | |
10 Please email comments to L<perlbug@perl.org|mailto:perlbug@perl.org>.> | |
11 | |
12 =head1 DESCRIPTION | |
13 | |
14 This document describes various features of IBM's OS/400 operating | |
15 system that will affect how Perl version 5 (hereafter just Perl) is | |
16 compiled and/or runs. | |
17 | |
18 By far the easiest way to build Perl for OS/400 is to use the PASE | |
19 (Portable Application Solutions Environment), for more information see | |
20 L<http://www.iseries.ibm.com/developer/factory/pase/index.html> | |
21 This environment allows one to use AIX APIs while programming, and it | |
22 provides a runtime that allows AIX binaries to execute directly on the | |
23 PowerPC iSeries. | |
24 | |
25 =head2 Compiling Perl for OS/400 PASE | |
26 | |
27 The recommended way to build Perl for the OS/400 PASE is to build the | |
28 Perl 5 source code (release 5.8.1 or later) under AIX. | |
29 | |
30 The trick is to give a special parameter to the Configure shell script | |
31 when running it on AIX: | |
32 | |
33 sh Configure -DPASE ... | |
34 | |
35 The default installation directory of Perl under PASE is /QOpenSys/perl. | |
36 This can be modified if needed with Configure parameter -Dprefix=/some/dir. | |
37 | |
38 Starting from OS/400 V5R2 the IBM Visual Age compiler is supported | |
39 on OS/400 PASE, so it is possible to build Perl natively on OS/400. | |
40 The easier way, however, is to compile in AIX, as just described. | |
41 | |
42 If you don't want to install the compiled Perl in AIX into /QOpenSys | |
43 (for packaging it before copying it to PASE), you can use a Configure | |
44 parameter: -Dinstallprefix=/tmp/QOpenSys/perl. This will cause the | |
45 "make install" to install everything into that directory, while the | |
46 installed files still think they are (will be) in /QOpenSys/perl. | |
47 | |
48 If building natively on PASE, please do the build under the /QOpenSys | |
49 directory, since Perl is happier when built on a case sensitive filesystem. | |
50 | |
51 =head2 Installing Perl in OS/400 PASE | |
52 | |
53 If you are compiling on AIX, simply do a "make install" on the AIX box. | |
54 Once the install finishes, tar up the /QOpenSys/perl directory. Transfer | |
55 the tarball to the OS/400 using FTP with the following commands: | |
56 | |
57 > binary | |
58 > site namefmt 1 | |
59 > put perl.tar /QOpenSys | |
60 | |
61 Once you have it on, simply bring up a PASE shell and extract the tarball. | |
62 | |
63 If you are compiling in PASE, then "make install" is the only thing you | |
64 will need to do. | |
65 | |
66 The default path for perl binary is /QOpenSys/perl/bin/perl. You'll | |
67 want to symlink /QOpenSys/usr/bin/perl to this file so you don't have | |
68 to modify your path. | |
69 | |
70 =head2 Using Perl in OS/400 PASE | |
71 | |
72 Perl in PASE may be used in the same manner as you would use Perl on AIX. | |
73 | |
74 Scripts starting with #!/usr/bin/perl should work if you have | |
75 /QOpenSys/usr/bin/perl symlinked to your perl binary. This will not | |
76 work if you've done a setuid/setgid or have environment variable | |
77 PASE_EXEC_QOPENSYS="N". If you have V5R1, you'll need to get the | |
78 latest PTFs to have this feature. Scripts starting with | |
79 #!/QOpenSys/perl/bin/perl should always work. | |
80 | |
81 =head2 Known Problems | |
82 | |
83 When compiling in PASE, there is no "oslevel" command. Therefore, | |
84 you may want to create a script called "oslevel" that echoes the | |
85 level of AIX that your version of PASE runtime supports. If you're | |
86 unsure, consult your documentation or use "4.3.3.0". | |
87 | |
88 If you have test cases that fail, check for the existence of spool files. | |
89 The test case may be trying to use a syscall that is not implemented | |
90 in PASE. To avoid the SIGILL, try setting the PASE_SYSCALL_NOSIGILL | |
91 environment variable or have a handler for the SIGILL. If you can | |
92 compile programs for PASE, run the config script and edit config.sh | |
93 when it gives you the option. If you want to remove fchdir(), which | |
94 isn't implement in V5R1, simply change the line that says: | |
95 | |
96 d_fchdir='define' | |
97 | |
98 to | |
99 | |
100 d_fchdir='undef' | |
101 | |
102 and then compile Perl. The places where fchdir() is used have | |
103 alternatives for systems that do not have fchdir() available. | |
104 | |
105 =head2 Perl on ILE | |
106 | |
107 There exists a port of Perl to the ILE environment. This port, however, | |
108 is based quite an old release of Perl, Perl 5.00502 (August 1998). | |
109 (As of July 2002 the latest release of Perl is 5.8.0, and even 5.6.1 | |
110 has been out since April 2001.) If you need to run Perl on ILE, though, | |
111 you may need this older port: L<http://www.cpan.org/ports/#os400> | |
112 Note that any Perl release later than 5.00502 has not been ported to ILE. | |
113 | |
114 If you need to use Perl in the ILE environment, you may want to consider | |
115 using Qp2RunPase() to call the PASE version of Perl. | |
116 | |
117 =head1 AUTHORS | |
118 | |
119 Jarkko Hietaniemi <jhi@iki.fi> | |
120 Bryan Logan <bryanlog@us.ibm.com> | |
121 David Larson <larson1@us.ibm.com> | |
122 | |
123 =cut |