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 | ||
11 | This document describes various features of Compaq's (formerly Digital's) | |
12 | Unix operating system (Tru64) that will affect how Perl version 5 | |
13 | is compiled and/or runs. | |
14 | ||
15 | =head2 Compiling Perl 5 on Tru64 | |
16 | ||
17 | The recommended compiler to use in Tru64 is the native C compiler. | |
8fa7f367 JH |
18 | The native compiler produces much faster code (the speed difference |
19 | is noticeable: several dozen percentages) and also more correct code: | |
20 | if you are considering using the GNU C compiler you should use the | |
21 | gcc 2.95.3 since all older gcc releases are known to produce broken | |
22 | code when compiling Perl. One manifestation of this brokenness is | |
23 | the lib/sdbm test dumping core; another is the op/regexp dumping core | |
24 | (depending on the GCC release). | |
ea3bceb2 JH |
25 | |
26 | =head2 Using Large Files with Perl on Tru64 | |
27 | ||
28 | In Tru64 Perl is automatically able to use large files, that is, files | |
29 | larger than 2 gigabytes, there is no need to use the Configure | |
30 | -Duselargefiles option as described in INSTALL. | |
31 | ||
32 | =head2 Threaded Perl on Tru64 | |
33 | ||
34 | To compile Perl to use the old Perl 5.005 threads model, run Configure | |
35 | with the -Dusethreads -Duse5005threads options as described in INSTALL. | |
36 | This will probably only work in Tru64 4.0 and newer releases, older | |
37 | operating releases like 3.2 aren't probably going to work properly | |
38 | with threads. | |
39 | ||
40 | Beware: the Perl 5.005 threads model is known to have bugs, for | |
41 | example the regular expressions are not thread-safe. The bugs are | |
42 | very hard to fix are and therefore the 5.005 threads model is still | |
43 | classified as an experimental feature. | |
44 | ||
bef5f079 JH |
45 | =head2 Long Doubles on Tru64 |
46 | ||
47 | You cannot Configure Perl to use long doubles unless you have at least | |
48 | Tru64 V5.0, the long double support simply wasn't functional before | |
49 | that. | |
50 | ||
fa17d112 SB |
51 | At the time of this writing, there's a bug in the Tru64 libc printing |
52 | of long doubles when not using "e" notation. The values are correct | |
53 | and usable, but you only get a limited number of digits displayed | |
54 | unless you force the issue by using C<printf "%.33e",$num> or the like. | |
55 | For Tru64 versions V5.0A through V5.1A, a patch is expected sometime after | |
56 | perl 5.8.0 is released. If your libc has not yet been patched, you'll get | |
57 | a warning from Configure when selecting long doubles. | |
58 | ||
ea3bceb2 JH |
59 | =head2 64-bit Perl on Tru64 |
60 | ||
61 | In Tru64 Perl's integers are automatically 64-bit wide, there is | |
62 | no need to use the Configure -Duse64bitint option as described | |
63 | in INSTALL. Similarly, there is no need for -Duse64bitall. | |
64 | ||
65 | =head2 Warnings about floating-point overflow when compiling Perl on Tru64 | |
66 | ||
67 | When compiling Perl in Tru64 you may (depending on the compiler | |
68 | release) see two warnings like this | |
69 | ||
d780cd7a | 70 | cc: Warning: numeric.c, line 104: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl) |
ea3bceb2 JH |
71 | return HUGE_VAL; |
72 | -----------^ | |
73 | ||
ef3337d4 JH |
74 | and when compiling the POSIX extension |
75 | ||
76 | cc: Warning: const-c.inc, line 2007: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl) | |
ea3bceb2 JH |
77 | return HUGE_VAL; |
78 | -------------------^ | |
79 | ||
80 | The exact line numbers may vary between Perl releases. | |
81 | The warnings are benign and can be ignored. | |
82 | ||
83 | When the file F<pp_sys.c> is being compiled you may (depending on the | |
84 | operating system release) see an additional compiler flag being used: | |
85 | C<-DNO_EFF_ONLY_OK>. This is normal and refers to a feature that is | |
86 | relevant only if you use the C<filetest> pragma. In older releases of | |
87 | the operating system the feature was broken and the NO_EFF_ONLY_OK | |
88 | instructs Perl not to use the feature. | |
89 | ||
90 | =head1 Testing Perl on Tru64 | |
91 | ||
92 | During "make test" the C<comp/cpp> will be skipped because on Tru64 it | |
93 | cannot be tested before Perl has been installed. The test refers to | |
94 | the use of the C<-P> option of Perl. | |
95 | ||
2dfde39d JH |
96 | =head1 ext/ODBM_File/odbm Test Failing With Static Builds |
97 | ||
98 | The ext/ODBM_File/odbm is known to fail with static builds | |
99 | (Configure -Dusedl) due to a known bug in Tru64's static libdbm | |
100 | library. The good news is that you very probably don't need to ever | |
101 | use the ODBM_File extension since more advanced NDBM_File works fine, | |
102 | not to mention the even more advanced DB_File. | |
103 | ||
498ea806 CN |
104 | =head1 Perl Fails Because Of Unresolved Symbol sockatmark |
105 | ||
106 | If you get an error like | |
107 | ||
108 | 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. | |
109 | ||
110 | you need to either recompile your Perl in Tru64 4.0D or upgrade your | |
111 | Tru64 4.0D: the sockatmark() system call was added in Tru64 4.0F, and | |
112 | the IO extension refers that symbol. | |
113 | ||
ea3bceb2 JH |
114 | =head1 AUTHOR |
115 | ||
116 | Jarkko Hietaniemi <jhi@iki.fi> | |
117 | ||
118 | =cut |