diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/pods/perlos400.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/pods/perlos400.pod | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/pods/perlos400.pod b/Master/tlpkg/tlperl/lib/pods/perlos400.pod new file mode 100644 index 00000000000..cd789166955 --- /dev/null +++ b/Master/tlpkg/tlperl/lib/pods/perlos400.pod @@ -0,0 +1,120 @@ +If you read this file _as_is_, just ignore the funny characters you see. +It is written in the POD format (see pod/perlpod.pod) which is specially +designed to be readable as is. + +=head1 NAME + +README.os400 - Perl version 5 on OS/400 + +=head1 DESCRIPTION + +This document describes various features of IBM's OS/400 operating +system that will affect how Perl version 5 (hereafter just Perl) is +compiled and/or runs. + +By far the easiest way to build Perl for OS/400 is to use the PASE +(Portable Application Solutions Environment), for more information see +http://www.iseries.ibm.com/developer/factory/pase/index.html +This environment allows one to use AIX APIs while programming, and it +provides a runtime that allows AIX binaries to execute directly on the +PowerPC iSeries. + +=head2 Compiling Perl for OS/400 PASE + +The recommended way to build Perl for the OS/400 PASE is to build the +Perl 5 source code (release 5.8.1 or later) under AIX. + +The trick is to give a special parameter to the Configure shell script +when running it on AIX: + + sh Configure -DPASE ... + +The default installation directory of Perl under PASE is /QOpenSys/perl. +This can be modified if needed with Configure parameter -Dprefix=/some/dir. + +Starting from OS/400 V5R2 the IBM Visual Age compiler is supported +on OS/400 PASE, so it is possible to build Perl natively on OS/400. +The easier way, however, is to compile in AIX, as just described. + +If you don't want to install the compiled Perl in AIX into /QOpenSys +(for packaging it before copying it to PASE), you can use a Configure +parameter: -Dinstallprefix=/tmp/QOpenSys/perl. This will cause the +"make install" to install everything into that directory, while the +installed files still think they are (will be) in /QOpenSys/perl. + +If building natively on PASE, please do the build under the /QOpenSys +directory, since Perl is happier when built on a case sensitive filesystem. + +=head2 Installing Perl in OS/400 PASE + +If you are compiling on AIX, simply do a "make install" on the AIX box. +Once the install finishes, tar up the /QOpenSys/perl directory. Transfer +the tarball to the OS/400 using FTP with the following commands: + + > binary + > site namefmt 1 + > put perl.tar /QOpenSys + +Once you have it on, simply bring up a PASE shell and extract the tarball. + +If you are compiling in PASE, then "make install" is the only thing you +will need to do. + +The default path for perl binary is /QOpenSys/perl/bin/perl. You'll +want to symlink /QOpenSys/usr/bin/perl to this file so you don't have +to modify your path. + +=head2 Using Perl in OS/400 PASE + +Perl in PASE may be used in the same manner as you would use Perl on AIX. + +Scripts starting with #!/usr/bin/perl should work if you have +/QOpenSys/usr/bin/perl symlinked to your perl binary. This will not +work if you've done a setuid/setgid or have environment variable +PASE_EXEC_QOPENSYS="N". If you have V5R1, you'll need to get the +latest PTFs to have this feature. Scripts starting with +#!/QOpenSys/perl/bin/perl should always work. + +=head2 Known Problems + +When compiling in PASE, there is no "oslevel" command. Therefore, +you may want to create a script called "oslevel" that echoes the +level of AIX that your version of PASE runtime supports. If you're +unsure, consult your documentation or use "4.3.3.0". + +If you have test cases that fail, check for the existence of spool files. +The test case may be trying to use a syscall that is not implemented +in PASE. To avoid the SIGILL, try setting the PASE_SYSCALL_NOSIGILL +environment variable or have a handler for the SIGILL. If you can +compile programs for PASE, run the config script and edit config.sh +when it gives you the option. If you want to remove fchdir(), which +isn't implement in V5R1, simply change the line that says: + +d_fchdir='define' + +to + +d_fchdir='undef' + +and then compile Perl. The places where fchdir() is used have +alternatives for systems that do not have fchdir() available. + +=head2 Perl on ILE + +There exists a port of Perl to the ILE environment. This port, however, +is based quite an old release of Perl, Perl 5.00502 (August 1998). +(As of July 2002 the latest release of Perl is 5.8.0, and even 5.6.1 +has been out since April 2001.) If you need to run Perl on ILE, though, +you may need this older port: http://www.cpan.org/ports/#os400 +Note that any Perl release later than 5.00502 has not been ported to ILE. + +If you need to use Perl in the ILE environment, you may want to consider +using Qp2RunPase() to call the PASE version of Perl. + +=head1 AUTHORS + +Jarkko Hietaniemi <jhi@iki.fi> +Bryan Logan <bryanlog@us.ibm.com> +David Larson <larson1@us.ibm.com> + +=cut |