mirror of
https://github.com/Perl/perl5.git
synced 2026-01-26 16:39:36 +00:00
OS/400 PASE port
Message-ID: <20020829192251.GA27102@lyta.hut.fi> p4raw-id: //depot/perl@17827
This commit is contained in:
parent
c38ddbc436
commit
522b859adc
14
Configure
14
Configure
@ -5418,7 +5418,7 @@ case "$usenm" in
|
||||
esac
|
||||
case "$dflt" in
|
||||
'')
|
||||
if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then
|
||||
if $test "$osname" = aix -a "X$PASE" != "$Xdefine" -a ! -f /lib/syscalls.exp; then
|
||||
echo " "
|
||||
echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4
|
||||
echo "'nm' won't be sufficient on this sytem." >&4
|
||||
@ -5765,11 +5765,19 @@ else
|
||||
fi
|
||||
fi
|
||||
nm_extract="$com"
|
||||
if $test -f /lib/syscalls.exp; then
|
||||
case "$PASE" in
|
||||
define)
|
||||
echo " "
|
||||
echo "Since you are compiling for PASE, extracting more symbols from libc.a...">&4
|
||||
nm -Tv /lib/libc.a | grep '^\.[a-z]' | awk '$2 == "T" {print $1}' | sed 's/^.//' >> libc.list
|
||||
;;
|
||||
*) if $test -f /lib/syscalls.exp; then
|
||||
echo " "
|
||||
echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4
|
||||
$sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*[ ]*$/\1/p' /lib/syscalls.exp >>libc.list
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
$rm -f libnames libpath
|
||||
|
||||
2
MANIFEST
2
MANIFEST
@ -809,6 +809,7 @@ hints/openbsd.sh Hints for named architecture
|
||||
hints/opus.sh Hints for named architecture
|
||||
hints/os2.sh Hints for named architecture
|
||||
hints/os390.sh Hints for named architecture
|
||||
hints/os400.sh Hints for named architecture
|
||||
hints/posix-bc.sh Hints for named architecture
|
||||
hints/powerux.sh Hints for named architecture
|
||||
hints/qnx.sh Hints for named architecture
|
||||
@ -2296,6 +2297,7 @@ README.mpeix Notes about MPE/iX port
|
||||
README.netware Notes about NetWare port
|
||||
README.os2 Notes about OS/2 port
|
||||
README.os390 Notes about OS/390 (nee MVS) port
|
||||
README.os400 Notes about OS/400 port
|
||||
README.plan9 Notes about Plan9 port
|
||||
README.qnx Notes about QNX port
|
||||
README.solaris Notes about Solaris port
|
||||
|
||||
90
README.os400
Normal file
90
README.os400
Normal file
@ -0,0 +1,90 @@
|
||||
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 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 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
|
||||
24
hints/aix.sh
24
hints/aix.sh
@ -535,4 +535,28 @@ else
|
||||
esac
|
||||
fi
|
||||
|
||||
case "$PASE" in
|
||||
define)
|
||||
case "$prefix" in
|
||||
'') prefix=/QOpenSys/perl ;;
|
||||
esac
|
||||
cat >&4 <<EOF
|
||||
|
||||
***
|
||||
*** You seem to be compiling in AIX for the OS/400 PASE environment.
|
||||
*** I'm not going to use the AIX bind, nsl, and possible util libraries, then.
|
||||
*** I'm also not going to install perl as /usr/bin/perl.
|
||||
*** Perl will be installed under $prefix.
|
||||
*** For instructions how to install this build from AIX to PASE,
|
||||
*** see the file README.os400. Accept the "aix" for the question
|
||||
*** about "Operating system name".
|
||||
***
|
||||
EOF
|
||||
set `echo " $libswanted " | sed -e 's@ bind @ @' -e 's@ nsl @ @' -e 's@ util @ @'`
|
||||
shift
|
||||
libswanted="$*"
|
||||
installusrbinperl="$undef"
|
||||
;;
|
||||
esac
|
||||
|
||||
# EOF
|
||||
|
||||
24
hints/os400.sh
Normal file
24
hints/os400.sh
Normal file
@ -0,0 +1,24 @@
|
||||
#
|
||||
# We will just reuse the AIX hints since we support only building
|
||||
# for the PASE and the PASE hints are merged with the AIX hints.
|
||||
#
|
||||
|
||||
case "$PASE" in
|
||||
'') cat >&4 <<EOF
|
||||
***
|
||||
*** This build process only works with the PASE environment (not ILE).
|
||||
*** You must supply the -DPASE parameter to the Configure script,
|
||||
*** please read the file README.os400. Exiting now.
|
||||
***
|
||||
EOF
|
||||
exit 1
|
||||
;;
|
||||
*) cat >&4 <<EOF
|
||||
***
|
||||
*** Using the AIX hints file, $src/hints/aix.sh.
|
||||
***
|
||||
EOF
|
||||
osname=aix
|
||||
. $src/hints/aix.sh
|
||||
;;
|
||||
esac
|
||||
11
lib/Cwd.pm
11
lib/Cwd.pm
@ -192,7 +192,16 @@ foreach my $try (qw(/bin/pwd /usr/bin/pwd)) {
|
||||
last;
|
||||
}
|
||||
}
|
||||
$pwd_cmd ||= 'pwd';
|
||||
unless ($pwd_cmd) {
|
||||
if (-x '/QOpenSys/bin/pwd') { # OS/400 PASE.
|
||||
$pwd_cmd = '/QOpenSys/bin/pwd' ;
|
||||
} else {
|
||||
# Isn't this wrong? _backtick_pwd() will fail if somenone has
|
||||
# pwd in their path but it is not /bin/pwd or /usr/bin/pwd?
|
||||
# See [perl #16774]. --jhi
|
||||
$pwd_cmd = 'pwd';
|
||||
}
|
||||
}
|
||||
|
||||
# The 'natural and safe form' for UNIX (pwd may be setuid root)
|
||||
sub _backtick_pwd {
|
||||
|
||||
@ -81,6 +81,7 @@ if (-d "pod") {
|
||||
perlnetware
|
||||
perlos2
|
||||
perlos390
|
||||
perlos400
|
||||
perlqnx
|
||||
perlplan9
|
||||
perlsolaris
|
||||
|
||||
@ -166,6 +166,7 @@ For ease of access, the Perl manual has been split up into several sections.
|
||||
perlnetware Perl notes for NetWare
|
||||
perlos2 Perl notes for OS/2
|
||||
perlos390 Perl notes for OS/390
|
||||
perlos400 Perl notes for OS/400
|
||||
perlplan9 Perl notes for Plan 9
|
||||
perlqnx Perl notes for QNX
|
||||
perlsolaris Perl notes for Solaris
|
||||
|
||||
@ -1248,12 +1248,16 @@ Legacy multi byte EBCDIC code pages XXX.
|
||||
There may be a few system dependent issues
|
||||
of concern to EBCDIC Perl programmers.
|
||||
|
||||
=head2 OS/400
|
||||
|
||||
The PASE environment.
|
||||
=head2 OS/400
|
||||
|
||||
=over 8
|
||||
|
||||
=item PASE
|
||||
|
||||
The PASE environment is runtime environment for OS/400 that can run
|
||||
executables built for PowerPC AIX in OS/400, see L<perlos400>. PASE
|
||||
is ASCII-based, not EBCDIC-based as the ILE.
|
||||
|
||||
=item IFS access
|
||||
|
||||
XXX.
|
||||
|
||||
@ -188,9 +188,9 @@ The Unix column assumes that you are not accessing a serial line
|
||||
"\n", and "\n" on output becomes CRLF.
|
||||
|
||||
These are just the most common definitions of C<\n> and C<\r> in Perl.
|
||||
There may well be others. For example, on an EBCDIC implementation such
|
||||
as z/OS or OS/400 the above material is similar to "Unix" but the code
|
||||
numbers change:
|
||||
There may well be others. For example, on an EBCDIC implementation
|
||||
such as z/OS (OS/390) or OS/400 (using the ILE, the PASE is ASCII-based)
|
||||
the above material is similar to "Unix" but the code numbers change:
|
||||
|
||||
LF eq \025 eq \x15 eq chr(21) eq CP-1047 21
|
||||
LF eq \045 eq \x25 eq \cU eq chr(37) eq CP-0037 37
|
||||
@ -1136,7 +1136,9 @@ Character Code Set ID 0037 for OS/400 and either 1047 or POSIX-BC for S/390
|
||||
systems). On the mainframe perl currently works under the "Unix system
|
||||
services for OS/390" (formerly known as OpenEdition), VM/ESA OpenEdition, or
|
||||
the BS200 POSIX-BC system (BS2000 is supported in perl 5.6 and greater).
|
||||
See L<perlos390> for details.
|
||||
See L<perlos390> for details. Note that for OS/400 there is also a port of
|
||||
Perl 5.8.1/5.9.0 or later to the PASE which is ASCII-based (as opposed to
|
||||
ILE which is EBCDIC-based), see L<perlos400>.
|
||||
|
||||
As of R2.5 of USS for OS/390 and Version 2.3 of VM/ESA these Unix
|
||||
sub-systems do not support the C<#!> shebang trick for script invocation.
|
||||
@ -2053,7 +2055,7 @@ First public release with perl5.005.
|
||||
|
||||
=head1 Supported Platforms
|
||||
|
||||
As of June 2002 (the Perl release 5.8.0), the following platforms are
|
||||
As of July 2002 (the Perl release 5.8.0), the following platforms are
|
||||
able to build Perl from the standard source code distribution
|
||||
available at http://www.cpan.org/src/index.html
|
||||
|
||||
@ -2078,6 +2080,7 @@ available at http://www.cpan.org/src/index.html
|
||||
OpenBSD
|
||||
OpenVMS (VMS)
|
||||
OS/2
|
||||
OS/400 (using the PASE) (since Perl 5.8.1/5.9.0)
|
||||
PowerUX
|
||||
POSIX-BC (BS2000)
|
||||
QNX
|
||||
@ -2161,7 +2164,7 @@ binaries available via http://www.cpan.org/ports/
|
||||
|
||||
Perl release
|
||||
|
||||
OS/400 5.005_02
|
||||
OS/400 (ILE) 5.005_02
|
||||
Tandem Guardian 5.004
|
||||
|
||||
The following platforms have only binaries available via
|
||||
@ -2184,9 +2187,10 @@ L<perlaix>, L<perlamiga>, L<perlapollo>, L<perlbeos>, L<perlbs2000>,
|
||||
L<perlce>, L<perlcygwin>, L<perldgux>, L<perldos>, L<perlepoc>,
|
||||
L<perlebcdic>, L<perlfreebsd>, L<perlhurd>, L<perlhpux>, L<perlirix>,
|
||||
L<perlmachten>, L<perlmacos>, L<perlmint>, L<perlmpeix>,
|
||||
L<perlnetware>, L<perlos2>, L<perlos390>, L<perlplan9>, L<perlqnx>,
|
||||
L<perlsolaris>, L<perltru64>, L<perlunicode>, L<perlvmesa>,
|
||||
L<perlvms>, L<perlvos>, L<perlwin32>, and L<Win32>.
|
||||
L<perlnetware>, L<perlos2>, L<perlos390>, L<perlos400>,
|
||||
L<perlplan9>, L<perlqnx>, L<perlsolaris>, L<perltru64>,
|
||||
L<perlunicode>, L<perlvmesa>, L<perlvms>, L<perlvos>,
|
||||
L<perlwin32>, and L<Win32>.
|
||||
|
||||
=head1 AUTHORS / CONTRIBUTORS
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user