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