home *** CD-ROM | disk | FTP | other *** search
- <HTML>
- <HEAD>
- <TITLE>README.machten - Perl version 5 on Power MachTen systems</TITLE>
- <LINK REL="stylesheet" HREF="../../Active.css" TYPE="text/css">
- <LINK REV="made" HREF="mailto:">
- </HEAD>
-
- <BODY>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
- <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
- <STRONG><P CLASS=block> README.machten - Perl version 5 on Power MachTen systems</P></STRONG>
- </TD></TR>
- </TABLE>
-
- <A NAME="__index__"></A>
- <!-- INDEX BEGIN -->
-
- <UL>
-
- <LI><A HREF="#name">NAME</A></LI>
- <LI><A HREF="#description">DESCRIPTION</A></LI>
- <UL>
-
- <LI><A HREF="#compiling perl 5 on machten">Compiling Perl 5 on MachTen</A></LI>
- <LI><A HREF="#failures during make test">Failures during <CODE>make test</CODE></A></LI>
- <LI><A HREF="#using external modules">Using external modules</A></LI>
- <LI><A HREF="#building external modules">Building external modules</A></LI>
- </UL>
-
- <LI><A HREF="#author">AUTHOR</A></LI>
- <LI><A HREF="#date">DATE</A></LI>
- </UL>
- <!-- INDEX END -->
-
- <HR>
- <P>
- <H1><A NAME="name">NAME</A></H1>
- <P>README.machten - Perl version 5 on Power MachTen systems</P>
- <P>
- <HR>
- <H1><A NAME="description">DESCRIPTION</A></H1>
- <P>This document describes how to build Perl 5 on Power MachTen systems,
- and discusses a few wrinkles in the implementation.</P>
- <P>
- <H2><A NAME="compiling perl 5 on machten">Compiling Perl 5 on MachTen</A></H2>
- <P>To compile perl under MachTen 4.1.4 (and probably earlier versions):</P>
- <PRE>
- ./Configure -de
- make
- make test
- make install</PRE>
- <P>This builds and installs a statically-linked perl; MachTen's dynamic
- linking facilities are not adequate to support Perl's use of
- dynamically linked libraries. (See <EM>hints/machten.sh</EM> for more
- information.)</P>
- <P>You should have at least 32 megabytes of free memory on your
- system before running the <CODE>make</CODE> command.</P>
- <P>For much more information on building perl -- for example, on how to
- change the default installation directory -- see <EM>INSTALL</EM>.</P>
- <P>
- <H2><A NAME="failures during make test">Failures during <CODE>make test</CODE></A></H2>
- <DL>
- <DT><STRONG><A NAME="item_op%2Flexassign%2Et">op/lexassign.t</A></STRONG><BR>
- <DD>
- This test may fail when first run after building perl. It does not
- fail subsequently. The cause is unknown.
- <P></P>
- <DT><STRONG><A NAME="item_pragma%2Fwarnings%2Et">pragma/warnings.t</A></STRONG><BR>
- <DD>
- Test 257 fails due to a failure to warn about attempts to read from a
- filehandle which is a duplicate of stdout when stdout is attached to a
- pipe. The output of the test contains a block comment which discusses
- a different failure, not applicable to MachTen.
- <P>The root of the problem is that Machten does not assign a file type to
- either end of a pipe (see <A HREF="../../lib/File/stat.html">the stat manpage</A>), resulting, among other things
- in Perl's <CODE>-p</CODE> test failing on file descriptors belonging to pipes.
- As a result, perl becomes confused, and the test for reading from a
- write-only file fails. I am reluctant to patch perl to get around
- this, as it's clearly an OS bug (about which Tenon has been informed),
- and limited in its effect on practical Perl programs.</P>
- <P></P></DL>
- <P>
- <H2><A NAME="using external modules">Using external modules</A></H2>
- <P>If warnings are enabled with Perl's <CODE>-w</CODE> command-line flag, you are
- likely to see warnings when using external modules containing XS
- (compiled) code:</P>
- <PRE>
- Subroutine DynaLoader::dl_error redefined at /usr/local/lib/perl5/5.6.0/powerpc-machten/DynaLoader.pm line 93.</PRE>
- <P>This is a harmless consequence of the static linking used for MachTen
- perl. You can suppress the warnings by using the more modern
- <CODE>-Mwarnings</CODE> instead of the traditional <CODE>-w</CODE>. (See <A HREF="../../lib/Pod/perllexwarn.html">the perllexwarn manpage</A>.)</P>
- <P>
- <H2><A NAME="building external modules">Building external modules</A></H2>
- <P>To add an external module to perl, build in the normal way, which
- is documented in <A HREF="../../lib/ExtUtils/MakeMaker.html">the ExtUtils::MakeMaker manpage</A>, or which can be driven
- automatically by the CPAN module (see <A HREF="../../lib/CPAN.html">the CPAN manpage</A>), which is part of the
- standard distribution. If wou want to install a
- module contains XS code (C or C++ source which compiles to object code
- for linking with perl), you will have to replace your perl binary with
- a new version containing the new statically-linked object module. The
- build process tells you how to do this.</P>
- <P>There is a gotcha, however, which users usually encounter immediately
- they respond to CPAN's invitation to <CODE>install Bundle::CPAN</CODE>. When
- installing a <EM>bundle</EM> -- a group of modules which together achieve
- some particular purpose, the installation process for later modules in
- the bundle tends to assume that earlier modules have been fully
- installed and are available for use. This is not true on a
- statically-linked system for earlier modules which contain XS code.
- As a result the installation of the bundle fails. The work-around is
- not to install the bundle as a one-shot operation, but instead to see
- what modules it contains, and install these one-at-a-time by hand in
- the order given.</P>
- <P>
- <HR>
- <H1><A NAME="author">AUTHOR</A></H1>
- <P>Dominic Dunlop <<A HREF="mailto:domo@computer.org">domo@computer.org</A>></P>
- <P>
- <HR>
- <H1><A NAME="date">DATE</A></H1>
- <P>Version 1.0 2000-03-22</P>
- <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
- <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
- <STRONG><P CLASS=block> README.machten - Perl version 5 on Power MachTen systems</P></STRONG>
- </TD></TR>
- </TABLE>
-
- </BODY>
-
- </HTML>
-