The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
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
specifically designed to be readable as is.

=head1 NAME

README.irix - Perl version 5 on Irix systems

=head1 DESCRIPTION

This document describes various features of Irix that will affect how Perl
version 5 (hereafter just Perl) is compiled and/or runs.

=head2 Building 32-bit Perl in Irix

Use

	sh Configure -Dcc='cc -n32'

to compile Perl 32-bit.  Don't bother with -n32 unless you have 7.1
or later compilers (use cc -version to check).

(Building 'cc -n32' is the default.)

=head2 Building 64-bit Perl in Irix

Use

	sh Configure -Dcc='cc -64' -Duse64bitint

This requires require a 64-bit MIPS CPU (R8000, R10000, ...)

You can also use

	sh Configure -Dcc='cc -64' -Duse64bitall

but that makes no difference compared with the -Duse64bitint because
of the C<cc -64>.

You can also do

	sh Configure -Dcc='cc -n32' -Duse64bitint

to use long longs for the 64-bit integer type, in case you don't
have a 64-bit CPU.

If you are using gcc, just

	sh Configure -Dcc=gcc -Duse64bitint

should be enough, the Configure should automatically probe for the
correct 64-bit settings.

=head2 About Compiler Versions of Irix

Some Irix cc versions, e.g. 7.3.1.1m (try cc -version) have been known
to have issues (coredumps) when compiling perl.c.  If you've used
-OPT:fast_io=ON and this happens, try removing it.  If that fails, or
you didn't use that, then try adjusting other optimization options
(-LNO, -INLINE, -O3 to -O2, etcetera).  The compiler bug has been
reported to SGI.  (Allen Smith <easmith@beatrice.rutgers.edu>)

=head2 Linker Problems in Irix

If you get complaints about so_locations then search in the file
hints/irix_6.sh for "lddflags" and do the suggested adjustments.
(David Billinghurst <David.Billinghurst@riotinto.com.au>)

=head2 Malloc in Irix

Do not try to use Perl's malloc, this will lead into very mysterious
errors (especially with -Duse64bitall).

=head2 Building with threads in Irix

Run Configure with -Duseithreads which will configure Perl with
the new Perl 5.8.0 "interpreter threads", see L<threads>.

The old Perl 5.005 threads is obsolete, unmaintained, and its use is
discouraged.  If you really want it, run Configure with the
-Dusethreads -Duse5005threads options as described in INSTALL.

For either thread model and for Irix 6.2, you have to have the
following patches installed:

        1404 Irix 6.2 Posix 1003.1b man pages
        1645 Irix 6.2 & 6.3 POSIX header file updates
        2000 Irix 6.2 Posix 1003.1b support modules
        2254 Pthread library fixes
        2401 6.2 all platform kernel rollup

B<IMPORTANT>: Without patch 2401, a kernel bug in Irix 6.2 will cause
your machine to panic and crash when running threaded perl.  Irix 6.3
and later are okay.

    Thanks to Hannu Napari <Hannu.Napari@hut.fi> for the IRIX
    pthreads patches information.

=head1 AUTHOR

Jarkko Hietaniemi <jhi@iki.fi>

Please report any errors, updates, or suggestions to F<perlbug@perl.org>.