This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / README.irix
index d2bcb4c..5e9446a 100644 (file)
@@ -1,17 +1,19 @@
+# vim: syntax=pod
+
 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
+perlirix - 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
+=head2 Building 32-bit Perl in Irix
 
 Use
 
@@ -22,51 +24,118 @@ or later compilers (use cc -version to check).
 
 (Building 'cc -n32' is the default.)
 
-=head2 Building 64-bot
+=head2 Building 64-bit Perl in Irix
 
 Use
-       
-       sh Configure -Dcc='cc -64'
 
-to compiler Perl 64-bit.
+       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
 
-=head2 About Compiler Versions
+       sh Configure -Dcc='cc -n32' -Duse64bitint
 
-Some IRIX cc versions, e.g. 7.3.1.1m (try cc -version) have been known
+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
+(-LNO, -INLINE, -O3 to -O2, et cetera).  The compiler bug has been
 reported to SGI.  (Allen Smith <easmith@beatrice.rutgers.edu>)
 
-=head2 Linker Problems
+=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
+=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
+=head2 Building with threads in Irix
+
+Run Configure with -Duseithreads which will configure Perl with
+the Perl 5.8.0 "interpreter threads", see L<threads>.
 
-For IRIX 6.2, you have to have the following patches installed:
+For Irix 6.2 with perl threads, 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
+        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
 
-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
+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.
+
+=head2 Irix 5.3
+
+While running Configure and when building, you are likely to get
+quite a few of these warnings:
+
+  ld:
+  The shared object /usr/lib/libm.so did not resolve any symbols.
+        You may want to remove it from your link line.
+
+Ignore them: in IRIX 5.3 there is no way to quieten ld about this.
+
+During compilation you will see this warning from toke.c:
+
+  uopt: Warning: Perl_yylex: this procedure not optimized because it
+        exceeds size threshold; to optimize this procedure, use -Olimit
+        option with value >= 4252.
+
+Ignore the warning.
+
+In IRIX 5.3 and with Perl 5.8.1 (Perl 5.8.0 didn't compile in IRIX 5.3)
+the following failures are known.
+
+ Failed Test                  Stat Wstat Total Fail  Failed|Failing List
+ -----------------------------------------------------------------------
+ ../ext/List/Util/t/shuffle.t    0   139    ??   ??       %  ??
+ ../lib/Math/Trig.t            255 65280    29   12  41.38%  24-29
+ ../lib/sort.t                   0   138   119   72  60.50%  48-119
+ 56 tests and 474 subtests skipped.
+ Failed 3/811 test scripts, 99.63% okay. 78/75813 subtests failed,
+    99.90% okay.
+
+They are suspected to be compiler errors (at least the shuffle.t
+failure is known from some IRIX 6 setups) and math library errors
+(the Trig.t failure), but since IRIX 5 is long since end-of-lifed,
+further fixes for the IRIX are unlikely.  If you can get gcc for 5.3,
+you could try that, too, since gcc in IRIX 6 is a known workaround for
+at least the shuffle.t and sort.t failures.
+
 =head1 AUTHOR
 
 Jarkko Hietaniemi <jhi@iki.fi>
 
-Please report any errors, updates, or suggestions to F<perlbug@perl.org>.
+Please report any errors, updates, or suggestions to
+L<https://github.com/Perl/perl5/issues>.