Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / sam-t2 / devtools / amd64 / man / man1 / perlvos.1
CommitLineData
920dae64
AT
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "PERLVOS 1"
132.TH PERLVOS 1 "2006-01-07" "perl v5.8.8" "Perl Programmers Reference Guide"
133.SH "NAME"
134README.vos \- Perl for Stratus VOS
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137This file contains notes for building perl on the Stratus \s-1VOS\s0
138operating system. Perl is a scripting or macro language that is
139popular on many systems. See perlbook for a number of good
140books on Perl.
141.PP
142These are instructions for building Perl from source. Most people can
143simply download a pre-compiled distribution from the \s-1VOS\s0 anonymous \s-1FTP\s0
144site. If you are running \s-1VOS\s0 Release 14.2.0 or earlier, download Perl
145from ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html If you are
146running \s-1VOS\s0 Release 14.3.0 or later, download Perl from
147ftp://ftp.stratus.com/pub/vos/posix/ga/ga.html Instructions for
148unbundling the Perl distribution file are at
149ftp://ftp.stratus.com/pub/vos/utility/utility.html
150.PP
151If you are running \s-1VOS\s0 Release 14.4.1 or later, you can obtain a
152pre\-compiled, supported copy of perl by purchasing Release 2.0.1
153(or later) of the \s-1VOS\s0 \s-1GNU\s0 \*(C+ and \s-1GNU\s0 Tools product from Stratus
154Technologies.
155.Sh "Multiple methods to build perl for \s-1VOS\s0"
156.IX Subsection "Multiple methods to build perl for VOS"
157If you elect to build perl from its source code, you have several
158different ways that you can build perl. The method that you use
159depends on the version of \s-1VOS\s0 that you are using and on the
160architecture of your Stratus hardware platform.
161.IP "1" 5
162.IX Item "1"
163If you have a Stratus \s-1XA2000\s0 (Motorola 68k\-based) platform, you
164must build perl using the alpha version of \s-1VOS\s0 \s-1POSIX\s0 support and
165using the \s-1VOS\s0 Standard C Cross\-compiler. You must build perl on
166\&\s-1VOS\s0 Release 14.1.0 (or later) on an \s-1XA/R\s0 or Continuum platform.
167.Sp
168This version of perl is properly called \*(L"miniperl\*(R" because it
169does not contain the complete perl functionality.
170.Sp
171You must build perl with the compile_perl.cm command macro found
172in the vos subdirectory.
173.IP "2" 5
174.IX Item "2"
175If you have a Stratus \s-1XA/R\s0 (Intel i860\-based) platform, you must
176build perl using the alpha version of \s-1VOS\s0 \s-1POSIX\s0 support and using
177the \s-1VOS\s0 Standard C compiler or cross\-compiler. You must build
178perl on \s-1VOS\s0 Release 14.1.0 (or later) on an \s-1XA/R\s0 or Continuum
179platform.
180.Sp
181This version of perl is properly called \*(L"miniperl\*(R" because it
182does not contain the complete perl functionality.
183.Sp
184You must build perl with the compile_perl.cm command macro found
185in the vos subdirectory.
186.IP "3" 5
187.IX Item "3"
188If you have a Stratus Continuum (PA\-RISC\-based) platform that is
189running a version of \s-1VOS\s0 earlier than \s-1VOS\s0 14.3.0, you must build
190perl using the alpha version of \s-1VOS\s0 \s-1POSIX\s0 support and using the
191\&\s-1VOS\s0 Standard C compiler or cross\-compiler. You must build perl
192on \s-1VOS\s0 Release 14.1.0 (or later) on an \s-1XA/R\s0 or Continuum
193platform.
194.Sp
195This version of perl is properly called \*(L"miniperl\*(R" because it
196does not contain the complete perl functionality.
197.Sp
198You must build perl with the compile_perl.cm command macro found
199in the vos subdirectory.
200.IP "4" 5
201.IX Item "4"
202If you have a Stratus Continuum (PA\-RISC\-based) platform that is
203running \s-1VOS\s0 Release 14.3.0 through \s-1VOS\s0 Release 14.4.1, you must
204build perl using the generally-available version of \s-1VOS\s0 \s-1POSIX\s0
205support, and using either the \s-1VOS\s0 Standard C compiler or the \s-1VOS\s0
206\&\s-1GNU\s0 C compiler. You must build perl on \s-1VOS\s0 Release 14.3.0 (or
207later) on a Continuum platform.
208.Sp
209This version of perl is properly called \*(L"miniperl\*(R" because it
210does not contain the complete perl functionality.
211.Sp
212You must build perl with the compile_perl.cm command macro found
213in the vos subdirectory.
214.IP "5" 5
215.IX Item "5"
216If you have a Stratus Continuum (PA\-RISC\-based) platform that is
217running \s-1VOS\s0 Release 14.5.0 or later, you can either use the
218previous method to build \*(L"miniperl\*(R" or you can build \*(L"full
219perl\*(R", which contains the complete functionality of perl. I
220strongly recommend that you build full perl. To build full
221perl, you must use the generally-available version of \s-1VOS\s0 \s-1POSIX\s0
222support. You must use the \s-1VOS\s0 \s-1GNU\s0 C compiler and the \s-1VOS\s0 \s-1GNU\s0
223C/\*(C+ and \s-1GNU\s0 Tools Release 2.0.1 (or later) product. You must
224build full perl on \s-1VOS\s0 Release 14.5.0 (or later) on a Continuum
225platform.
226.Sp
227You must build full perl with the compile_full_perl.cm command
228macro found in the vos subdirectory.
229.Sh "Stratus \s-1POSIX\s0 Support"
230.IX Subsection "Stratus POSIX Support"
231Note that there are two different implementations of \s-1POSIX\s0.1
232support on \s-1VOS\s0. There is an alpha version of \s-1POSIX\s0 that is
233available from the Stratus anonymous ftp site
234( ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html ). There
235is a generally-available version of \s-1POSIX\s0 that comes with \s-1VOS\s0
236Release 14.3.0 or higher. This port of \s-1POSIX\s0 will compile and
237bind with either version of \s-1POSIX\s0.
238.PP
239Most of the Perl features should work on \s-1VOS\s0 regardless of which
240version of \s-1POSIX\s0 that you are using. However, the alpha version
241of \s-1POSIX\s0 is missing a number of key functions, and therefore any
242attempt by perl.pm to call the following unimplemented \s-1POSIX\s0
243functions will result in an error message and an immediate and
244fatal call to the \s-1VOS\s0 debugger. They are \*(L"dup\*(R", \*(L"fork\*(R", and
245\&\*(L"waitpid\*(R". The lack of these functions prevents you from
246starting \s-1VOS\s0 commands and grabbing their output in perl. The
247workaround is to run the commands outside of perl, then have perl
248process the output file. These functions are all available in
249the generally-available version of \s-1POSIX\s0.
250.SH "INSTALLING PERL IN VOS"
251.IX Header "INSTALLING PERL IN VOS"
252.Sh "Compiling Perl 5 on \s-1VOS\s0"
253.IX Subsection "Compiling Perl 5 on VOS"
254Before you can build Perl 5 on \s-1VOS\s0, you need to have or acquire the
255following additional items.
256.IP "1" 5
257.IX Item "1"
258The \s-1VOS\s0 Standard C Compiler (or the \s-1VOS\s0 Standard C
259Cross\-Compiler) and the \s-1VOS\s0 C Runtime. If you are using
260the generally-available version of \s-1POSIX\s0 support, you may
261instead use the \s-1VOS\s0 \s-1GNU\s0 C/\*(C+ Compiler. These are
262standard Stratus products.
263.IP "2" 5
264.IX Item "2"
265Either the \s-1VOS\s0 \s-1OS\s0 \s-1TCP/IP\s0 or \s-1STCP\s0 product set. If you are
266building with the alpha version of \s-1POSIX\s0 you need the \s-1OS\s0
267\&\s-1TCP/IP\s0 product set. If you are building with the
268generally-available version of \s-1POSIX\s0 you need the \s-1STCP\s0
269product set. These are standard Stratus products.
270.IP "3" 5
271.IX Item "3"
272Either the alpha or generally-available version of the \s-1VOS\s0
273\&\s-1POSIX\s0.1 environment.
274.Sp
275The alpha version of \s-1POSIX\s0.1 support is available on the
276Stratus \s-1FTP\s0 site. Login anonymously to ftp.stratus.com and
277get the file /pub/vos/posix/alpha/posix.save.evf.gz in
278binary file-transfer mode. Or use the Uniform Resource
279Locator (\s-1URL\s0)
280ftp://ftp.stratus.com/pub/vos/posix/alpha/posix.save.evf.gz from
281your web browser. Instructions for unbundling this file
282are at ftp://ftp.stratus.com/pub/vos/utility/utility.html
283This is \s-1NOT\s0 a standard Stratus product.
284.Sp
285In \s-1VOS\s0 Release 14.3.0, the generally-available version of
286\&\s-1POSIX\s0.1 support is bundled with the \s-1VOS\s0 Standard C compiler
287(or Standard C Cross\-Compiler). In \s-1VOS\s0 Release 14.4.0 or
288higher, it is also bundled with the \s-1VOS\s0 C Runtime. These
289are standard Stratus products.
290.IP "4" 5
291.IX Item "4"
292You must compile this version of Perl 5 on \s-1VOS\s0 Release
29314.1.0 or higher because some of the perl source files
294contain more than 32,767 source lines. Due to \s-1VOS\s0
295release-compatibility rules, this port of perl may not
296execute on \s-1VOS\s0 Release 12 or earlier.
297.IP "5" 5
298.IX Item "5"
299If you are using the generally-available version of \s-1VOS\s0 \s-1POSIX\s0
300support, then you should also acquire the \s-1VOS\s0 \s-1GNU\s0 C/\*(C+ Compiler
301and \s-1GNU\s0 Tools product. When perl is built with this version of
302\&\s-1POSIX\s0 support, it assumes that it can find \*(L"bash\*(R", \*(L"sed\*(R" and
303other POSIX-compatible commands in the directory
304/system/gnu_library/bin.
305.PP
306To build perl using the supplied \s-1VOS\s0 command macros, change to
307the \*(L"vos\*(R" subdirectory and type the command \*(L"compile_perl
308\&\-processor X\*(R", where X is the processor type (mc68020, i80860,
309pa7100, pa8000) that you wish to use. Note that the
310generally-available version of \s-1POSIX\s0.1 support is not available
311for the mc68020 or i80860 processors.
312.PP
313Use the \*(L"\-version alpha\*(R" control argument to build perl with
314the alpha version of \s-1POSIX\s0 support, and use the \*(L"\-version
315ga\*(R" control argument to build it with the
316generally-available version of \s-1POSIX\s0. The default is \*(L"ga\*(R".
317.PP
318Use the \*(L"\-compiler cc\*(R" control argument to build perl with
319the \s-1VOS\s0 Standard C compiler. Use the \*(L"\-compiler gcc\*(R"
320control argument to build it with the \s-1GNU\s0 \s-1GCC\s0 compiler. The
321default is \*(L"cc\*(R".
322.PP
323You must have purchased the \s-1VOS\s0 Standard C Cross Compiler in
324order to compile perl for a processor type that is different
325from the processor type of the module.
326.PP
327Note that code compiled for the pa7100 processor type can
328execute on the \s-1PA7100\s0, \s-1PA8000\s0, \s-1PA8500\s0 and \s-1PA8600\s0 processors, and
329that code compiled for the pa8000 processor type can execute on
330the \s-1PA8000\s0, \s-1PA8500\s0 and \s-1PA8600\s0 processors.
331.PP
332To build full perl using the supplied Configure script and
333makefiles, change to the \*(L"vos\*(R" subdirectory and type the command
334\&\*(L"compile_full_perl\*(R" or \*(L"start_process compile_full_perl\*(R". This
335will configure, build, and test perl.
336.Sh "Installing Perl 5 on \s-1VOS\s0"
337.IX Subsection "Installing Perl 5 on VOS"
338.IP "1" 4
339.IX Item "1"
340If you have built perl using the Configure script, ensure that
341you have modify permission to \f(CW\*(C`>system>ported\*(C'\fR and type
342.Sp
343.Vb 1
344\& gmake install
345.Ve
346.IP "2" 4
347.IX Item "2"
348If you have built perl using any of the other methods, type
349.Sp
350.Vb 1
351\& install_perl -processor PROCESSOR -name NAME
352.Ve
353.Sp
354where \s-1PROCESSOR\s0 is mc68020, i80860, pa7100, or pa8000, as
355appropriate, and \s-1NAME\s0 is perl or perl5, according to which name
356you wish to use.
357.Sp
358This command macro will install perl and all of its related
359files in the proper directories.
360.IP "3" 4
361.IX Item "3"
362While there are currently no architecture-specific
363extensions or modules distributed with perl, the following
364directories can be used to hold such files:
365.Sp
366.Vb 4
367\& >system>ported>lib>perl5>5.8.0>68k
368\& >system>ported>lib>perl5>5.8.0>860
369\& >system>ported>lib>perl5>5.8.0>7100
370\& >system>ported>lib>perl5>5.8.0>8000
371.Ve
372.IP "4" 4
373.IX Item "4"
374Site-specific perl extensions and modules can be installed in one of
375two places. Put architecture-independent files into:
376.Sp
377.Vb 1
378\& >system>ported>lib>perl5>site_perl>5.8.0
379.Ve
380.Sp
381Put site-specific architecture-dependent files into one of the
382following directories:
383.Sp
384.Vb 4
385\& >system>ported>lib>perl5>site_perl>5.8.0>68k
386\& >system>ported>lib>perl5>site_perl>5.8.0>860
387\& >system>ported>lib>perl5>site_perl>5.8.0>7100
388\& >system>ported>lib>perl5>site_perl>5.8.0>8000
389.Ve
390.IP "5" 4
391.IX Item "5"
392You can examine the \f(CW@INC\fR variable from within a perl program
393to see the order in which Perl searches these directories.
394.SH "USING PERL IN VOS"
395.IX Header "USING PERL IN VOS"
396.Sh "Unimplemented Features of Perl on \s-1VOS\s0"
397.IX Subsection "Unimplemented Features of Perl on VOS"
398If perl is built with the alpha version of \s-1VOS\s0 \s-1POSIX\s0.1 support
399and if it attempts to call an unimplemented \s-1VOS\s0 \s-1POSIX\s0.1
400function, it will print a fatal error message and enter the \s-1VOS\s0
401debugger. This error is not recoverable. See vos_dummies.c for
402a list of the unimplemented \s-1POSIX\s0.1 functions. To see what
403functions are unimplemented and what the error message looks
404like, compile and execute \*(L"test_vos_dummies.c\*(R".
405.Sh "Restrictions of Perl on \s-1VOS\s0"
406.IX Subsection "Restrictions of Perl on VOS"
407This port of Perl version 5 to \s-1VOS\s0 prefers Unix\-style,
408slash-separated pathnames over VOS-style greater-than-separated
409pathnames. VOS-style pathnames should work in most contexts, but
410if you have trouble, replace all greater-than characters by slash
411characters. Because the slash character is used as a pathname
412delimiter, Perl cannot process \s-1VOS\s0 pathnames containing a slash
413character in a directory or file name; these must be renamed.
414.PP
415This port of Perl also uses Unix-epoch date values internally.
416As long as you are dealing with \s-1ASCII\s0 character string
417representations of dates, this should not be an issue. The
418supported epoch is January 1, 1980 to January 17, 2038.
419.PP
420See the file pod/perlport.pod for more information about the \s-1VOS\s0
421port of Perl.
422.Sh "Handling of underflow and overflow"
423.IX Subsection "Handling of underflow and overflow"
424Prior to \s-1VOS\s0 Release 14.7.0, \s-1VOS\s0 does not support automatically
425mapping overflowed floating-point values to +infinity, nor
426automatically mapping underflowed floating-point values to zero,
427unlike many other platforms. The Perl pack function has been
428modified to perform such mapping in software on \s-1VOS\s0. Performing
429other floating-point computations that underflow or overflow
430will probably result in \s-1SIGFPE\s0. Don't push your luck.
431.PP
432As of \s-1VOS\s0 Release 14.7.0, the \s-1VOS\s0 \s-1POSIX\s0 runtime sets up the
433PA-RISC hardware floating-point status register so that the
434overflow and underflow exceptions do not trap, but instead
435automatically convert the result to infinity or zero, as
436appropriate. As of this writing, there are still floating-point
437operations that can trap, for example, subtracting two infinite
438values. This is recorded as suggestion posix\-1022, which is not
439yet fixed.
440.SH "TEST STATUS"
441.IX Header "TEST STATUS"
442When Perl 5.8.3 is built using the native build process on \s-1VOS\s0
443Release 14.7.0 and \s-1GNU\s0 \*(C+/GNU Tools 2.0.2a, all but three
444attempted tests either pass or result in \s-1TODO\s0 (ignored)
445failures. The tests that fail are:
446.PP
447t/io/tell.t, test 28
448t/op/pack.t, test 39
449lib/Net/ing/t/450_service.t, test 8
450.SH "SUPPORT STATUS"
451.IX Header "SUPPORT STATUS"
452I'm offering this port \*(L"as is\*(R". You can ask me questions, but I
453can't guarantee I'll be able to answer them. There are some
454excellent books available on the Perl language; consult a book
455seller.
456.PP
457If you want a supported version of perl for \s-1VOS\s0, purchase the
458\&\s-1VOS\s0 \s-1GNU\s0 \*(C+ and \s-1GNU\s0 Tools Release 2.0.1 (or later) product from
459Stratus Technologies, along with a support contract (or from
460anyone else who will sell you support).
461.SH "AUTHOR"
462.IX Header "AUTHOR"
463Paul Green (Paul.Green@stratus.com)
464.SH "LAST UPDATE"
465.IX Header "LAST UPDATE"
466January 15, 2004