X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/88ec1f5d7ae65b59677ec3c8c39f53ac99eccf98..5bad81ff778a1fc1412fecc296e452f55cd9e5c7:/README.tru64 diff --git a/README.tru64 b/README.tru64 index 1ec08ff..fac7d40 100644 --- a/README.tru64 +++ b/README.tru64 @@ -10,24 +10,36 @@ README.tru64 - Perl version 5 on Tru64 (formerly known as Digital UNIX formerly This document describes various features of HP's (formerly Compaq's, formerly Digital's) Unix operating system (Tru64) that will affect -how Perl version 5 is configured, compiled and/or runs. +how Perl version 5 (hereafter just Perl) is configured, 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 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 and op/pat, -or ext/Storable tests dumping core (depending on the GCC release). +you are considering using the GNU C compiler you should use at the +very least the release of 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 many +of the op/regexp and op/pat, or ext/Storable tests dumping core +(the exact pattern of failures depending on the GCC release and +optimization flags). + +gcc 3.2.1 is known to work okay with Perl 5.8.0. However, when +optimizing the toke.c gcc likes to have a lot of memory, 256 megabytes +seems to be enough. The default setting of the process data section +in Tru64 should be one gigabyte, but some sites/setups might have +lowered that. The configuration process of Perl checks for too low +process limits, and lowers the optimization for the toke.c if +necessary, and also gives advice on how to raise the process limits. =head2 Using Large Files with Perl on Tru64 In Tru64 Perl is automatically able to use large files, that is, files larger than 2 gigabytes, there is no need to use the Configure --Duselargefiles option as described in INSTALL. +-Duselargefiles option as described in INSTALL (though using the option +is harmless). =head2 Threaded Perl on Tru64 @@ -42,11 +54,18 @@ Either thread model is going to work only in Tru64 4.0 and newer releases, older operating releases like 3.2 aren't probably going to work properly with threads. +In Tru64 V5 (at least V5.1A, V5.1B) you cannot build threaded Perl with gcc +because the system header explicitly checks for supported +C compilers, gcc (at least 3.2.2) not being one of them. But the +system C compiler should work just fine. + =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 -enough before that. +You cannot Configure Perl to use long doubles unless you have at least +Tru64 V5.0, the long double support simply wasn't functional enough +before that. Perl's Configure will override attempts to use the long +doubles (you can notice this by Configure finding out that the modfl() +function does not work as it should). At the time of this writing (June 2002), there is a known bug in the Tru64 libc printing of long doubles when not using "e" notation. @@ -57,6 +76,29 @@ 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 DB_File tests failing on Tru64 + +The DB_File tests (db-btree.t, db-hash.t, db-recno.t) may fail you +have installed a newer version of Berkeley DB into the system and the +-I and -L compiler and linker flags introduce version conflicts with +the DB 1.85 headers and libraries that came with the Tru64. For example, +mixing a DB v2 library with the DB v1 headers is a bad idea. Watch +out for Configure options -Dlocincpth and -Dloclibpth, and check your +/usr/local/include and /usr/local/lib since they are included by default. + +The second option is to explicitly instruct Configure to detect the +newer Berkeley DB installation, by supplying the right directories with +C<-Dlocincpth=/some/include> and C<-Dloclibpth=/some/lib> B before +running "make test" setting your LD_LIBRARY_PATH to F. + +The third option is to work around the problem by disabling the +DB_File completely when build Perl by specifying -Ui_db to Configure, +and then using the BerkeleyDB module from CPAN instead of DB_File. +The BerkeleyDB works with Berkeley DB versions 2.* or greater. + +The Berkeley DB 4.1.25 has been tested with Tru64 V5.1A and found +to work. The latest Berkeley DB can be found from F. + =head2 64-bit Perl on Tru64 In Tru64 Perl's integers are automatically 64-bit wide, there is @@ -79,9 +121,9 @@ and when compiling the POSIX extension return HUGE_VAL; -------------------^ -The exact line numbers may vary between Perl releases. -The warnings are benign and can be ignored: in later C compiler -releases the warnings should be gone. +The exact line numbers may vary between Perl releases. The warnings +are benign and can be ignored: in later C compiler releases the warnings +should be gone. When the file F is being compiled you may (depending on the operating system release) see an additional compiler flag being used: @@ -111,8 +153,8 @@ 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. +Tru64 4.0D to at least 4.0F: the sockatmark() system call was +added in Tru64 4.0F, and the IO extension refers that symbol. =head1 AUTHOR