home *** CD-ROM | disk | FTP | other *** search
- 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
-