This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Not that I know anything about Windows compilers
[perl5.git] / README.tru64
CommitLineData
ea3bceb2
JH
1If you read this file _as_is_, just ignore the funny characters you see.
2It is written in the POD format (see pod/perlpod.pod) which is specially
3designed to be readable as is.
4
5=head1 NAME
6
7README.tru64 - Perl version 5 on Tru64 (formerly known as Digital UNIX formerly known as DEC OSF/1) systems
8
9=head1 DESCRIPTION
10
11This document describes various features of Compaq's (formerly Digital's)
12Unix operating system (Tru64) that will affect how Perl version 5
13is compiled and/or runs.
14
15=head2 Compiling Perl 5 on Tru64
16
17The recommended compiler to use in Tru64 is the native C compiler.
8fa7f367
JH
18The native compiler produces much faster code (the speed difference
19is noticeable: several dozen percentages) and also more correct code:
20if you are considering using the GNU C compiler you should use the
21gcc 2.95.3 since all older gcc releases are known to produce broken
22code when compiling Perl. One manifestation of this brokenness is
23the 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
28In Tru64 Perl is automatically able to use large files, that is, files
29larger 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
34To compile Perl to use the old Perl 5.005 threads model, run Configure
35with the -Dusethreads -Duse5005threads options as described in INSTALL.
36This will probably only work in Tru64 4.0 and newer releases, older
37operating releases like 3.2 aren't probably going to work properly
38with threads.
39
40Beware: the Perl 5.005 threads model is known to have bugs, for
41example the regular expressions are not thread-safe. The bugs are
42very hard to fix are and therefore the 5.005 threads model is still
43classified as an experimental feature.
44
bef5f079
JH
45=head2 Long Doubles on Tru64
46
47You cannot Configure Perl to use long doubles unless you have at least
48Tru64 V5.0, the long double support simply wasn't functional before
49that.
50
fa17d112
SB
51At the time of this writing, there's a bug in the Tru64 libc printing
52of long doubles when not using "e" notation. The values are correct
53and usable, but you only get a limited number of digits displayed
54unless you force the issue by using C<printf "%.33e",$num> or the like.
55For Tru64 versions V5.0A through V5.1A, a patch is expected sometime after
56perl 5.8.0 is released. If your libc has not yet been patched, you'll get
57a warning from Configure when selecting long doubles.
58
ea3bceb2
JH
59=head2 64-bit Perl on Tru64
60
61In Tru64 Perl's integers are automatically 64-bit wide, there is
62no need to use the Configure -Duse64bitint option as described
63in INSTALL. Similarly, there is no need for -Duse64bitall.
64
65=head2 Warnings about floating-point overflow when compiling Perl on Tru64
66
67When compiling Perl in Tru64 you may (depending on the compiler
68release) 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
74and 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
80The exact line numbers may vary between Perl releases.
81The warnings are benign and can be ignored.
82
83When the file F<pp_sys.c> is being compiled you may (depending on the
84operating system release) see an additional compiler flag being used:
85C<-DNO_EFF_ONLY_OK>. This is normal and refers to a feature that is
86relevant only if you use the C<filetest> pragma. In older releases of
87the operating system the feature was broken and the NO_EFF_ONLY_OK
88instructs Perl not to use the feature.
89
90=head1 Testing Perl on Tru64
91
92During "make test" the C<comp/cpp> will be skipped because on Tru64 it
93cannot be tested before Perl has been installed. The test refers to
94the use of the C<-P> option of Perl.
95
2dfde39d
JH
96=head1 ext/ODBM_File/odbm Test Failing With Static Builds
97
98The ext/ODBM_File/odbm is known to fail with static builds
99(Configure -Dusedl) due to a known bug in Tru64's static libdbm
100library. The good news is that you very probably don't need to ever
101use the ODBM_File extension since more advanced NDBM_File works fine,
102not to mention the even more advanced DB_File.
103
9a8de003
JH
104=head1 Perl Fails Because Of Unresolved Symbol sockatmark
105
106If you get an error like
107
4282de36 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.
9a8de003
JH
109
110you need to either recompile your Perl in Tru64 4.0D or upgrade your
111Tru64 4.0D: the sockatmark() system call was added in Tru64 4.0F, and
112the IO extension refers that symbol.
113
ea3bceb2
JH
114=head1 AUTHOR
115
116Jarkko Hietaniemi <jhi@iki.fi>
117
118=cut