Commit | Line | Data |
---|---|---|
ea3bceb2 JH |
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 | ||
88ec1f5d JH |
11 | This document describes various features of HP's (formerly Compaq's, |
12 | formerly Digital's) Unix operating system (Tru64) that will affect | |
92c48b5b JH |
13 | how Perl version 5 (hereafter just Perl) is configured, compiled |
14 | and/or runs. | |
ea3bceb2 JH |
15 | |
16 | =head2 Compiling Perl 5 on Tru64 | |
17 | ||
18 | The recommended compiler to use in Tru64 is the native C compiler. | |
88ec1f5d JH |
19 | The native compiler produces much faster code (the speed difference is |
20 | noticeable: several dozen percentages) and also more correct code: if | |
92c48b5b JH |
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). | |
ea3bceb2 JH |
28 | |
29 | =head2 Using Large Files with Perl on Tru64 | |
30 | ||
88ec1f5d JH |
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 | |
92c48b5b JH |
33 | -Duselargefiles option as described in INSTALL (though using the option |
34 | is harmless). | |
ea3bceb2 JH |
35 | |
36 | =head2 Threaded Perl on Tru64 | |
37 | ||
88ec1f5d JH |
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. | |
ea3bceb2 | 40 | |
88ec1f5d JH |
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. | |
ea3bceb2 | 48 | |
bef5f079 JH |
49 | =head2 Long Doubles on Tru64 |
50 | ||
92c48b5b JH |
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). | |
bef5f079 | 56 | |
88ec1f5d JH |
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. | |
fa17d112 | 65 | |
5b7ea690 JH |
66 | =head2 db-hash.t failing on Tru64 |
67 | ||
68 | The Berkeley DB 1.85 coming with the Tru64 is unfortunately buggy. | |
69 | In general in Tru64 V4.* it seemed to be more stable, but in V5.* | |
70 | something broke (even though the DB stayed at release 1.85) and | |
71 | the DB_File extension test db-hash.t may fail by dumping core after | |
72 | the subtest 21. There really is no good cure as of Tru64 V5.1A expect | |
73 | installing a newer Berkeley DB and supplying the right directories for | |
74 | -Dlocincpth=/some/include and -Dloclibpth=/some/lib when running Configure. | |
75 | ||
76 | You can also work around the problem by disabling the DB_File by | |
77 | specifying -Ui_db to Configure, and then using the BerkeleyFile module | |
78 | from CPAN instead of DB_File. The BerkeleyFile works with Berkeley DB | |
79 | versions 2.* or greater. | |
80 | ||
81 | The Berkeley DB 4.0.14 has been tested with Tru64 V5.1A and found | |
82 | to work. The latest Berkeley DB can be found from F<http://www.sleepycat.com>. | |
83 | ||
ea3bceb2 JH |
84 | =head2 64-bit Perl on Tru64 |
85 | ||
86 | In Tru64 Perl's integers are automatically 64-bit wide, there is | |
87 | no need to use the Configure -Duse64bitint option as described | |
88ec1f5d JH |
88 | in INSTALL. Similarly, there is no need for -Duse64bitall |
89 | since pointers are automatically 64-bit wide. | |
ea3bceb2 JH |
90 | |
91 | =head2 Warnings about floating-point overflow when compiling Perl on Tru64 | |
92 | ||
93 | When compiling Perl in Tru64 you may (depending on the compiler | |
94 | release) see two warnings like this | |
95 | ||
d780cd7a | 96 | cc: Warning: numeric.c, line 104: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl) |
ea3bceb2 JH |
97 | return HUGE_VAL; |
98 | -----------^ | |
99 | ||
ef3337d4 JH |
100 | and when compiling the POSIX extension |
101 | ||
102 | cc: Warning: const-c.inc, line 2007: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl) | |
ea3bceb2 JH |
103 | return HUGE_VAL; |
104 | -------------------^ | |
105 | ||
92c48b5b JH |
106 | The exact line numbers may vary between Perl releases. The warnings |
107 | are benign and can be ignored: in later C compiler releases the warnings | |
108 | should be gone. | |
ea3bceb2 JH |
109 | |
110 | When the file F<pp_sys.c> is being compiled you may (depending on the | |
111 | operating system release) see an additional compiler flag being used: | |
112 | C<-DNO_EFF_ONLY_OK>. This is normal and refers to a feature that is | |
113 | relevant only if you use the C<filetest> pragma. In older releases of | |
114 | the operating system the feature was broken and the NO_EFF_ONLY_OK | |
115 | instructs Perl not to use the feature. | |
116 | ||
117 | =head1 Testing Perl on Tru64 | |
118 | ||
119 | During "make test" the C<comp/cpp> will be skipped because on Tru64 it | |
120 | cannot be tested before Perl has been installed. The test refers to | |
121 | the use of the C<-P> option of Perl. | |
122 | ||
2dfde39d JH |
123 | =head1 ext/ODBM_File/odbm Test Failing With Static Builds |
124 | ||
125 | The ext/ODBM_File/odbm is known to fail with static builds | |
88ec1f5d | 126 | (Configure -Uusedl) due to a known bug in Tru64's static libdbm |
2dfde39d JH |
127 | library. The good news is that you very probably don't need to ever |
128 | use the ODBM_File extension since more advanced NDBM_File works fine, | |
129 | not to mention the even more advanced DB_File. | |
130 | ||
9a8de003 JH |
131 | =head1 Perl Fails Because Of Unresolved Symbol sockatmark |
132 | ||
133 | If you get an error like | |
134 | ||
4282de36 | 135 | 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. |
9a8de003 JH |
136 | |
137 | you need to either recompile your Perl in Tru64 4.0D or upgrade your | |
92c48b5b JH |
138 | Tru64 4.0D to at least 4.0F: the sockatmark() system call was |
139 | added in Tru64 4.0F, and the IO extension refers that symbol. | |
9a8de003 | 140 | |
ea3bceb2 JH |
141 | =head1 AUTHOR |
142 | ||
143 | Jarkko Hietaniemi <jhi@iki.fi> | |
144 | ||
145 | =cut |