Commit | Line | Data |
---|---|---|
469e7be4 JH |
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 | ||
3df9be30 | 14 | =head2 Building 32-bit Perl in Irix |
469e7be4 JH |
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 | ||
3df9be30 | 25 | =head2 Building 64-bit Perl in Irix |
469e7be4 JH |
26 | |
27 | Use | |
d6fd60d6 | 28 | |
538426ad | 29 | sh Configure -Dcc='cc -64' -Duse64bitint |
469e7be4 | 30 | |
538426ad JH |
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. | |
469e7be4 | 53 | |
3df9be30 | 54 | =head2 About Compiler Versions of Irix |
469e7be4 | 55 | |
3df9be30 | 56 | Some Irix cc versions, e.g. 7.3.1.1m (try cc -version) have been known |
469e7be4 JH |
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 | ||
3df9be30 | 63 | =head2 Linker Problems in Irix |
469e7be4 JH |
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 | ||
3df9be30 | 69 | =head2 Malloc in Irix |
469e7be4 JH |
70 | |
71 | Do not try to use Perl's malloc, this will lead into very mysterious | |
72 | errors (especially with -Duse64bitall). | |
73 | ||
538426ad | 74 | =head2 Building with threads in Irix |
469e7be4 | 75 | |
741e2d40 | 76 | Run Configure with -Duseithreads which will configure Perl with |
294f22c5 | 77 | the Perl 5.8.0 "interpreter threads", see L<threads>. |
741e2d40 | 78 | |
294f22c5 MB |
79 | For Irix 6.2 with perl threads, you have to have the following |
80 | patches installed: | |
469e7be4 JH |
81 | |
82 | 1404 Irix 6.2 Posix 1003.1b man pages | |
3df9be30 | 83 | 1645 Irix 6.2 & 6.3 POSIX header file updates |
469e7be4 JH |
84 | 2000 Irix 6.2 Posix 1003.1b support modules |
85 | 2254 Pthread library fixes | |
86 | 2401 6.2 all platform kernel rollup | |
87 | ||
538426ad | 88 | B<IMPORTANT>: Without patch 2401, a kernel bug in Irix 6.2 will cause |
3df9be30 | 89 | your machine to panic and crash when running threaded perl. Irix 6.3 |
469e7be4 JH |
90 | and later are okay. |
91 | ||
741e2d40 JH |
92 | Thanks to Hannu Napari <Hannu.Napari@hut.fi> for the IRIX |
93 | pthreads patches information. | |
94 | ||
271230c2 JH |
95 | =head2 Irix 5.3 |
96 | ||
641ea345 JH |
97 | While running Configure and when building, you are likely to get |
98 | quite a few of these warnings: | |
99 | ||
100 | ld: | |
101 | The shared object /usr/lib/libm.so did not resolve any symbols. | |
102 | You may want to remove it from your link line. | |
103 | ||
104 | Ignore them: in IRIX 5.3 there is no way to quieten ld about this. | |
105 | ||
106 | During compilation you will see this warning from toke.c: | |
107 | ||
108 | uopt: Warning: Perl_yylex: this procedure not optimized because it | |
109 | exceeds size threshold; to optimize this procedure, use -Olimit option | |
110 | with value >= 4252. | |
111 | ||
112 | Ignore the warning. | |
113 | ||
271230c2 JH |
114 | In IRIX 5.3 and with Perl 5.8.1 (Perl 5.8.0 didn't compile in IRIX 5.3) |
115 | the following failures are known. | |
116 | ||
117 | Failed Test Stat Wstat Total Fail Failed List of Failed | |
118 | -------------------------------------------------------------------------- | |
119 | ../ext/List/Util/t/shuffle.t 0 139 ?? ?? % ?? | |
641ea345 | 120 | ../lib/Math/Trig.t 255 65280 29 12 41.38% 24-29 |
271230c2 | 121 | ../lib/sort.t 0 138 119 72 60.50% 48-119 |
641ea345 JH |
122 | 56 tests and 474 subtests skipped. |
123 | Failed 3/811 test scripts, 99.63% okay. 78/75813 subtests failed, 99.90% okay. | |
271230c2 | 124 | |
641ea345 JH |
125 | They are suspected to be compiler errors (at least the shuffle.t |
126 | failure is known from some IRIX 6 setups) and math library errors | |
127 | (the Trig.t failure), but since IRIX 5 is long since end-of-lifed, | |
128 | further fixes for the IRIX are unlikely. If you can get gcc for 5.3, | |
271230c2 | 129 | you could try that, too, since gcc in IRIX 6 is a known workaround for |
641ea345 | 130 | at least the shuffle.t and sort.t failures. |
271230c2 | 131 | |
469e7be4 JH |
132 | =head1 AUTHOR |
133 | ||
134 | Jarkko Hietaniemi <jhi@iki.fi> | |
135 | ||
136 | Please report any errors, updates, or suggestions to F<perlbug@perl.org>. | |
137 |