You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.3 KiB
89 lines
3.3 KiB
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.machten - Perl version 5 on Power MachTen systems
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This document describes how to build Perl 5 on Power MachTen systems,
|
|
and discusses a few wrinkles in the implementation.
|
|
|
|
=head2 Compiling Perl 5 on MachTen
|
|
|
|
To compile perl under MachTen 4.1.4 (and probably earlier versions):
|
|
|
|
./Configure -de
|
|
make
|
|
make test
|
|
make install
|
|
|
|
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 F<hints/machten.sh> for more
|
|
information.)
|
|
|
|
You should have at least 32 megabytes of free memory on your
|
|
system before running the C<make> command.
|
|
|
|
For much more information on building perl -- for example, on how to
|
|
change the default installation directory -- see F<INSTALL>.
|
|
|
|
=head2 Failures during C<make test>
|
|
|
|
=over 4
|
|
|
|
=item op/lexassign.t
|
|
|
|
This test may fail when first run after building perl. It does not
|
|
fail subsequently. The cause is unknown.
|
|
|
|
=item pragma/warnings.t
|
|
|
|
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.
|
|
|
|
The root of the problem is that Machten does not assign a file type to
|
|
either end of a pipe (see L<stat>), resulting, among other things
|
|
in Perl's C<-p> 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.
|
|
|
|
=back
|
|
|
|
=head2 Building external modules
|
|
|
|
To add an external module to perl, build in the normal way, which
|
|
is documented in L<ExtUtils::MakeMaker>, or which can be driven
|
|
automatically by the CPAN module (see L<CPAN>), which is part of the
|
|
standard distribution. If you want to install a module which
|
|
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.
|
|
|
|
There is a gotcha, however, which users usually encounter immediately
|
|
they respond to CPAN's invitation to C<install Bundle::CPAN>. When
|
|
installing a I<bundle> -- 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.
|
|
|
|
=head1 AUTHOR
|
|
|
|
Dominic Dunlop <[email protected]>
|
|
|
|
=head1 DATE
|
|
|
|
Version 1.0.1 2000-03-27
|