Protect against localizing an %ENV slice.
[p5sagit/p5-mst-13.2.git] / README.tru64
index c551a36..64cefa9 100644 (file)
@@ -15,11 +15,13 @@ is compiled and/or runs.
 =head2 Compiling Perl 5 on Tru64
 
 The recommended compiler to use in Tru64 is the native C compiler.
-The native compiler produces much faster code (the speed difference is
-noticeable: several dozen percentages) and also more correct code: if you
-are considering using the GNU C compiler you should use the gcc 2.95.3
-release since older gcc releases are known to produce buggy code when
-compiling Perl.
+The native compiler produces much faster code (the speed difference
+is noticeable: several dozen percentages) and also more correct code:
+if you are considering using the GNU C compiler you should use the
+gcc 2.95.3 since all older gcc releases are known to produce broken
+code when compiling Perl.  One manifestation of this brokenness is
+the lib/sdbm test dumping core; another is the op/regexp dumping core
+(depending on the GCC release).
 
 =head2 Using Large Files with Perl on Tru64
 
@@ -40,6 +42,20 @@ example the regular expressions are not thread-safe.  The bugs are
 very hard to fix are and therefore the 5.005 threads model is still
 classified as an experimental feature.
 
+=head2 Long Doubles on Tru64
+
+You cannot Configure Perl to use long doubles unless you have at least
+Tru64 V5.0, the long double support simply wasn't functional before
+that.
+
+At the time of this writing, there's a bug in the Tru64 libc printing
+of long doubles when not using "e" notation.  The values are correct
+and usable, but you only get a limited number of digits displayed
+unless you force the issue by using C<printf "%.33e",$num> or the like.
+For Tru64 versions V5.0A through V5.1A, a patch is expected sometime after
+perl 5.8.0 is released.  If your libc has not yet been patched, you'll get
+a warning from Configure when selecting long doubles.
+
 =head2 64-bit Perl on Tru64
 
 In Tru64 Perl's integers are automatically 64-bit wide, there is
@@ -51,11 +67,13 @@ in INSTALL.  Similarly, there is no need for -Duse64bitall.
 When compiling Perl in Tru64 you may (depending on the compiler
 release) see two warnings like this
 
-    cc: Warning: util.c, line 3797: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl)
+    cc: Warning: numeric.c, line 104: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl)
         return HUGE_VAL;
     -----------^
 
-    cc: Warning: POSIX.xs, line 1304: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl)
+and when compiling the POSIX extension
+
+    cc: Warning: const-c.inc, line 2007: In this statement, floating-point overflow occurs in evaluating the expression "1.8e308". (floatoverfl)
                 return HUGE_VAL;
     -------------------^
 
@@ -75,6 +93,24 @@ During "make test" the C<comp/cpp> will be skipped because on Tru64 it
 cannot be tested before Perl has been installed.  The test refers to
 the use of the C<-P> option of Perl.
 
+=head1 ext/ODBM_File/odbm Test Failing With Static Builds
+
+The ext/ODBM_File/odbm is known to fail with static builds
+(Configure -Dusedl) due to a known bug in Tru64's static libdbm
+library.  The good news is that you very probably don't need to ever
+use the ODBM_File extension since more advanced NDBM_File works fine,
+not to mention the even more advanced DB_File.
+
+=head1 Perl Fails Because Of Unresolved Symbol sockatmark
+
+If you get an error like
+
+    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.
+
+you need to either recompile your Perl in Tru64 4.0D or upgrade your
+Tru64 4.0D: the sockatmark() system call was added in Tru64 4.0F, and
+the IO extension refers that symbol.
+
 =head1 AUTHOR
 
 Jarkko Hietaniemi <jhi@iki.fi>