1 | If you read this file _as_is_, just ignore the funny characters you
|
---|
2 | see. It is written in the POD format (see pod/perlpod.pod) which is
|
---|
3 | specifically designed to be readable as is.
|
---|
4 |
|
---|
5 | =head1 NAME
|
---|
6 |
|
---|
7 | README.irix - Perl version 5 on Irix systems
|
---|
8 |
|
---|
9 | =head1 DESCRIPTION
|
---|
10 |
|
---|
11 | This document describes various features of Irix that will affect how Perl
|
---|
12 | version 5 (hereafter just Perl) is compiled and/or runs.
|
---|
13 |
|
---|
14 | =head2 Building 32-bit Perl in Irix
|
---|
15 |
|
---|
16 | Use
|
---|
17 |
|
---|
18 | sh Configure -Dcc='cc -n32'
|
---|
19 |
|
---|
20 | to compile Perl 32-bit. Don't bother with -n32 unless you have 7.1
|
---|
21 | or later compilers (use cc -version to check).
|
---|
22 |
|
---|
23 | (Building 'cc -n32' is the default.)
|
---|
24 |
|
---|
25 | =head2 Building 64-bit Perl in Irix
|
---|
26 |
|
---|
27 | Use
|
---|
28 |
|
---|
29 | sh Configure -Dcc='cc -64' -Duse64bitint
|
---|
30 |
|
---|
31 | This requires require a 64-bit MIPS CPU (R8000, R10000, ...)
|
---|
32 |
|
---|
33 | You can also use
|
---|
34 |
|
---|
35 | sh Configure -Dcc='cc -64' -Duse64bitall
|
---|
36 |
|
---|
37 | but that makes no difference compared with the -Duse64bitint because
|
---|
38 | of the C<cc -64>.
|
---|
39 |
|
---|
40 | You can also do
|
---|
41 |
|
---|
42 | sh Configure -Dcc='cc -n32' -Duse64bitint
|
---|
43 |
|
---|
44 | to use long longs for the 64-bit integer type, in case you don't
|
---|
45 | have a 64-bit CPU.
|
---|
46 |
|
---|
47 | If you are using gcc, just
|
---|
48 |
|
---|
49 | sh Configure -Dcc=gcc -Duse64bitint
|
---|
50 |
|
---|
51 | should be enough, the Configure should automatically probe for the
|
---|
52 | correct 64-bit settings.
|
---|
53 |
|
---|
54 | =head2 About Compiler Versions of Irix
|
---|
55 |
|
---|
56 | Some Irix cc versions, e.g. 7.3.1.1m (try cc -version) have been known
|
---|
57 | to have issues (coredumps) when compiling perl.c. If you've used
|
---|
58 | -OPT:fast_io=ON and this happens, try removing it. If that fails, or
|
---|
59 | you didn't use that, then try adjusting other optimization options
|
---|
60 | (-LNO, -INLINE, -O3 to -O2, etcetera). The compiler bug has been
|
---|
61 | reported to SGI. (Allen Smith <easmith@beatrice.rutgers.edu>)
|
---|
62 |
|
---|
63 | =head2 Linker Problems in Irix
|
---|
64 |
|
---|
65 | If you get complaints about so_locations then search in the file
|
---|
66 | hints/irix_6.sh for "lddflags" and do the suggested adjustments.
|
---|
67 | (David Billinghurst <David.Billinghurst@riotinto.com.au>)
|
---|
68 |
|
---|
69 | =head2 Malloc in Irix
|
---|
70 |
|
---|
71 | Do not try to use Perl's malloc, this will lead into very mysterious
|
---|
72 | errors (especially with -Duse64bitall).
|
---|
73 |
|
---|
74 | =head2 Building with threads in Irix
|
---|
75 |
|
---|
76 | Run Configure with -Duseithreads which will configure Perl with
|
---|
77 | the new Perl 5.8.0 "interpreter threads", see L<threads>.
|
---|
78 |
|
---|
79 | The old Perl 5.005 threads is obsolete, unmaintained, and its use is
|
---|
80 | discouraged. If you really want it, run Configure with the
|
---|
81 | -Dusethreads -Duse5005threads options as described in INSTALL.
|
---|
82 |
|
---|
83 | For either thread model and for Irix 6.2, you have to have the
|
---|
84 | following patches installed:
|
---|
85 |
|
---|
86 | 1404 Irix 6.2 Posix 1003.1b man pages
|
---|
87 | 1645 Irix 6.2 & 6.3 POSIX header file updates
|
---|
88 | 2000 Irix 6.2 Posix 1003.1b support modules
|
---|
89 | 2254 Pthread library fixes
|
---|
90 | 2401 6.2 all platform kernel rollup
|
---|
91 |
|
---|
92 | B<IMPORTANT>: Without patch 2401, a kernel bug in Irix 6.2 will cause
|
---|
93 | your machine to panic and crash when running threaded perl. Irix 6.3
|
---|
94 | and later are okay.
|
---|
95 |
|
---|
96 | Thanks to Hannu Napari <Hannu.Napari@hut.fi> for the IRIX
|
---|
97 | pthreads patches information.
|
---|
98 |
|
---|
99 | =head2 Irix 5.3
|
---|
100 |
|
---|
101 | While running Configure and when building, you are likely to get
|
---|
102 | quite a few of these warnings:
|
---|
103 |
|
---|
104 | ld:
|
---|
105 | The shared object /usr/lib/libm.so did not resolve any symbols.
|
---|
106 | You may want to remove it from your link line.
|
---|
107 |
|
---|
108 | Ignore them: in IRIX 5.3 there is no way to quieten ld about this.
|
---|
109 |
|
---|
110 | During compilation you will see this warning from toke.c:
|
---|
111 |
|
---|
112 | uopt: Warning: Perl_yylex: this procedure not optimized because it
|
---|
113 | exceeds size threshold; to optimize this procedure, use -Olimit option
|
---|
114 | with value >= 4252.
|
---|
115 |
|
---|
116 | Ignore the warning.
|
---|
117 |
|
---|
118 | In IRIX 5.3 and with Perl 5.8.1 (Perl 5.8.0 didn't compile in IRIX 5.3)
|
---|
119 | the following failures are known.
|
---|
120 |
|
---|
121 | Failed Test Stat Wstat Total Fail Failed List of Failed
|
---|
122 | --------------------------------------------------------------------------
|
---|
123 | ../ext/List/Util/t/shuffle.t 0 139 ?? ?? % ??
|
---|
124 | ../lib/Math/Trig.t 255 65280 29 12 41.38% 24-29
|
---|
125 | ../lib/sort.t 0 138 119 72 60.50% 48-119
|
---|
126 | 56 tests and 474 subtests skipped.
|
---|
127 | Failed 3/811 test scripts, 99.63% okay. 78/75813 subtests failed, 99.90% okay.
|
---|
128 |
|
---|
129 | They are suspected to be compiler errors (at least the shuffle.t
|
---|
130 | failure is known from some IRIX 6 setups) and math library errors
|
---|
131 | (the Trig.t failure), but since IRIX 5 is long since end-of-lifed,
|
---|
132 | further fixes for the IRIX are unlikely. If you can get gcc for 5.3,
|
---|
133 | you could try that, too, since gcc in IRIX 6 is a known workaround for
|
---|
134 | at least the shuffle.t and sort.t failures.
|
---|
135 |
|
---|
136 | =head1 AUTHOR
|
---|
137 |
|
---|
138 | Jarkko Hietaniemi <jhi@iki.fi>
|
---|
139 |
|
---|
140 | Please report any errors, updates, or suggestions to F<perlbug@perl.org>.
|
---|
141 |
|
---|