1 | If you read this file _as_is_, just ignore the funny characters you see. |
---|
2 | It is written in the POD format (see pod/perlpod.pod) which is specially |
---|
3 | designed to be readable as is. |
---|
4 | |
---|
5 | =head1 NAME |
---|
6 | |
---|
7 | README.tru64 - Perl version 5 on Tru64 (formerly known as Digital UNIX formerly known as DEC OSF/1) systems |
---|
8 | |
---|
9 | =head1 DESCRIPTION |
---|
10 | |
---|
11 | This document describes various features of HP's (formerly Compaq's, |
---|
12 | formerly Digital's) Unix operating system (Tru64) that will affect |
---|
13 | how Perl version 5 (hereafter just Perl) is configured, compiled |
---|
14 | and/or runs. |
---|
15 | |
---|
16 | =head2 Compiling Perl 5 on Tru64 |
---|
17 | |
---|
18 | The recommended compiler to use in Tru64 is the native C compiler. |
---|
19 | The native compiler produces much faster code (the speed difference is |
---|
20 | noticeable: several dozen percentages) and also more correct code: if |
---|
21 | you are considering using the GNU C compiler you should use at the |
---|
22 | very least the release of 2.95.3 since all older gcc releases are |
---|
23 | known to produce broken code when compiling Perl. One manifestation |
---|
24 | of this brokenness is the lib/sdbm test dumping core; another is many |
---|
25 | of the op/regexp and op/pat, or ext/Storable tests dumping core |
---|
26 | (the exact pattern of failures depending on the GCC release and |
---|
27 | optimization flags). |
---|
28 | |
---|
29 | =head2 Using Large Files with Perl on Tru64 |
---|
30 | |
---|
31 | In Tru64 Perl is automatically able to use large files, that is, |
---|
32 | files larger than 2 gigabytes, there is no need to use the Configure |
---|
33 | -Duselargefiles option as described in INSTALL (though using the option |
---|
34 | is harmless). |
---|
35 | |
---|
36 | =head2 Threaded Perl on Tru64 |
---|
37 | |
---|
38 | If you want to use threads, you should primarily use the new Perl |
---|
39 | 5.8.0 threads model by running Configure with -Duseithreads. |
---|
40 | |
---|
41 | The old Perl 5.005 threads is obsolete, unmaintained, and its use is |
---|
42 | discouraged. If you really want it, run Configure with the |
---|
43 | -Dusethreads -Duse5005threads options as described in INSTALL. |
---|
44 | |
---|
45 | Either thread model is going to work only in Tru64 4.0 and newer |
---|
46 | releases, older operating releases like 3.2 aren't probably going |
---|
47 | to work properly with threads. |
---|
48 | |
---|
49 | =head2 Long Doubles on Tru64 |
---|
50 | |
---|
51 | You cannot Configure Perl to use long doubles unless you have at least |
---|
52 | Tru64 V5.0, the long double support simply wasn't functional enough |
---|
53 | before that. Perl's Configure will override attempts to use the long |
---|
54 | doubles (you can notice this by Configure finding out that the modfl() |
---|
55 | function does not work as it should). |
---|
56 | |
---|
57 | At the time of this writing (June 2002), there is a known bug in the |
---|
58 | Tru64 libc printing of long doubles when not using "e" notation. |
---|
59 | The values are correct and usable, but you only get a limited number |
---|
60 | of digits displayed unless you force the issue by using C<printf |
---|
61 | "%.33e",$num> or the like. For Tru64 versions V5.0A through V5.1A, a |
---|
62 | patch is expected sometime after perl 5.8.0 is released. If your libc |
---|
63 | has not yet been patched, you'll get a warning from Configure when |
---|
64 | selecting long doubles. |
---|
65 | |
---|
66 | =head2 64-bit Perl on Tru64 |
---|
67 | |
---|
68 | In Tru64 Perl's integers are automatically 64-bit wide, there is |
---|
69 | no need to use the Configure -Duse64bitint option as described |
---|
70 | in INSTALL. Similarly, there is no need for -Duse64bitall |
---|
71 | since pointers are automatically 64-bit wide. |
---|
72 | |
---|
73 | =head2 Warnings about floating-point overflow when compiling Perl on Tru64 |
---|
74 | |
---|
75 | When compiling Perl in Tru64 you may (depending on the compiler |
---|
76 | release) see two warnings like this |
---|
77 | |
---|
78 | cc: Warning: numeric.c, line 104: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl) |
---|
79 | return HUGE_VAL; |
---|
80 | -----------^ |
---|
81 | |
---|
82 | and when compiling the POSIX extension |
---|
83 | |
---|
84 | cc: Warning: const-c.inc, line 2007: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl) |
---|
85 | return HUGE_VAL; |
---|
86 | -------------------^ |
---|
87 | |
---|
88 | The exact line numbers may vary between Perl releases. The warnings |
---|
89 | are benign and can be ignored: in later C compiler releases the warnings |
---|
90 | should be gone. |
---|
91 | |
---|
92 | When the file F<pp_sys.c> is being compiled you may (depending on the |
---|
93 | operating system release) see an additional compiler flag being used: |
---|
94 | C<-DNO_EFF_ONLY_OK>. This is normal and refers to a feature that is |
---|
95 | relevant only if you use the C<filetest> pragma. In older releases of |
---|
96 | the operating system the feature was broken and the NO_EFF_ONLY_OK |
---|
97 | instructs Perl not to use the feature. |
---|
98 | |
---|
99 | =head1 Testing Perl on Tru64 |
---|
100 | |
---|
101 | During "make test" the C<comp/cpp> will be skipped because on Tru64 it |
---|
102 | cannot be tested before Perl has been installed. The test refers to |
---|
103 | the use of the C<-P> option of Perl. |
---|
104 | |
---|
105 | =head1 ext/ODBM_File/odbm Test Failing With Static Builds |
---|
106 | |
---|
107 | The ext/ODBM_File/odbm is known to fail with static builds |
---|
108 | (Configure -Uusedl) due to a known bug in Tru64's static libdbm |
---|
109 | library. The good news is that you very probably don't need to ever |
---|
110 | use the ODBM_File extension since more advanced NDBM_File works fine, |
---|
111 | not to mention the even more advanced DB_File. |
---|
112 | |
---|
113 | =head1 Perl Fails Because Of Unresolved Symbol sockatmark |
---|
114 | |
---|
115 | If you get an error like |
---|
116 | |
---|
117 | Can't load '.../OSF1/lib/perl5/5.8.0/alpha-dec_osf/auto/IO/IO.so' for module IO: Unresolved symbol in .../lib/perl5/5.8.0/alpha-dec_osf/auto/IO/IO.so: sockatmark at .../lib/perl5/5.8.0/alpha-dec_osf/XSLoader.pm line 75. |
---|
118 | |
---|
119 | you need to either recompile your Perl in Tru64 4.0D or upgrade your |
---|
120 | Tru64 4.0D to at least 4.0F: the sockatmark() system call was |
---|
121 | added in Tru64 4.0F, and the IO extension refers that symbol. |
---|
122 | |
---|
123 | =head1 AUTHOR |
---|
124 | |
---|
125 | Jarkko Hietaniemi <jhi@iki.fi> |
---|
126 | |
---|
127 | =cut |
---|