diff options
Diffstat (limited to 'upstream/debian-bookworm/man1/perltru64.1')
-rw-r--r-- | upstream/debian-bookworm/man1/perltru64.1 | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/upstream/debian-bookworm/man1/perltru64.1 b/upstream/debian-bookworm/man1/perltru64.1 new file mode 100644 index 00000000..b2a25eab --- /dev/null +++ b/upstream/debian-bookworm/man1/perltru64.1 @@ -0,0 +1,256 @@ +.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" ======================================================================== +.\" +.IX Title "PERLTRU64 1" +.TH PERLTRU64 1 "2023-11-25" "perl v5.36.0" "Perl Programmers Reference Guide" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +perltru64 \- Perl version 5 on Tru64 (formerly known as Digital UNIX formerly known as DEC OSF/1) systems +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +This document describes various features of \s-1HP\s0's (formerly Compaq's, +formerly Digital's) Unix operating system (Tru64) that will affect +how Perl version 5 (hereafter just Perl) is configured, compiled +and/or runs. +.SS "Compiling Perl 5 on Tru64" +.IX Subsection "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 \s-1GNU C\s0 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 \s-1GCC\s0 release and +optimization flags). +.PP +Both the native cc and gcc seem to consume lots of memory when +building Perl. toke.c is a known trouble spot when optimizing: +256 megabytes of data section seems to be enough. Another known +trouble spot is the mktables script which builds the Unicode support +tables. 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 +(for example: \f(CW\*(C`ulimit \-d 262144\*(C'\fR) +.PP +Also, Configure might abort with +.PP +.Vb 2 +\& Build a threading Perl? [n] +\& Configure[2437]: Syntax error at line 1 : \*(Aqconfig.sh\*(Aq is not expected. +.Ve +.PP +This indicates that Configure is being run with a broken Korn shell +(even though you think you are using a Bourne shell by using +\&\*(L"sh Configure\*(R" or \*(L"./Configure\*(R"). The Korn shell bug has been reported +to Compaq as of February 1999 but in the meanwhile, the reason ksh is +being used is that you have the environment variable \s-1BIN_SH\s0 set to +\&'xpg4'. This causes /bin/sh to delegate its duties to /bin/posix/sh +(a ksh). Unset the environment variable and rerun Configure. +.SS "Using Large Files with Perl on Tru64" +.IX Subsection "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 \s-1INSTALL\s0 (though using the option +is harmless). +.SS "Threaded Perl on Tru64" +.IX Subsection "Threaded Perl on Tru64" +If you want to use threads, you should primarily use the Perl +5.8.0 threads model by running Configure with \-Duseithreads. +.PP +Perl threading 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. +.PP +In Tru64 V5 (at least V5.1A, V5.1B) you cannot build threaded Perl with gcc +because the system header <pthread.h> 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. +.SS "Long Doubles on Tru64" +.IX Subsection "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. Perl's Configure will override attempts to use the long +doubles (you can notice this by Configure finding out that the \fBmodfl()\fR +function does not work as it should). +.PP +At the time of this writing (June 2002), there is a known bug in the +Tru64 libc printing of long doubles when not using \*(L"e\*(R" notation. +The values are correct and usable, but you only get a limited number +of digits displayed unless you force the issue by using \f(CW\*(C`printf +"%.33e",$num\*(C'\fR 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. +.SS "DB_File tests failing on Tru64" +.IX Subsection "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 \s-1DB\s0 into the system and the +\&\-I and \-L compiler and linker flags introduce version conflicts with +the \s-1DB 1.85\s0 headers and libraries that came with the Tru64. For example, +mixing a \s-1DB\s0 v2 library with the \s-1DB\s0 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. +.PP +The second option is to explicitly instruct Configure to detect the +newer Berkeley \s-1DB\s0 installation, by supplying the right directories with +\&\f(CW\*(C`\-Dlocincpth=/some/include\*(C'\fR and \f(CW\*(C`\-Dloclibpth=/some/lib\*(C'\fR \fBand\fR before +running \*(L"make test\*(R" setting your \s-1LD_LIBRARY_PATH\s0 to \fI/some/lib\fR. +.PP +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 \s-1CPAN\s0 instead of DB_File. +The BerkeleyDB works with Berkeley \s-1DB\s0 versions 2.* or greater. +.PP +The Berkeley \s-1DB 4.1.25\s0 has been tested with Tru64 V5.1A and found +to work. The latest Berkeley \s-1DB\s0 can be found from <http://www.sleepycat.com>. +.SS "64\-bit Perl on Tru64" +.IX Subsection "64-bit Perl on Tru64" +In Tru64 Perl's integers are automatically 64\-bit wide, there is +no need to use the Configure \-Duse64bitint option as described +in \s-1INSTALL.\s0 Similarly, there is no need for \-Duse64bitall +since pointers are automatically 64\-bit wide. +.SS "Warnings about floating-point overflow when compiling Perl on Tru64" +.IX Subsection "Warnings about floating-point overflow when compiling Perl on Tru64" +When compiling Perl in Tru64 you may (depending on the compiler +release) see two warnings like this +.PP +.Vb 4 +\& cc: Warning: numeric.c, line 104: In this statement, floating\-point +\& overflow occurs in evaluating the expression "1.8e308". (floatoverfl) +\& return HUGE_VAL; +\& \-\-\-\-\-\-\-\-\-\-\-^ +.Ve +.PP +and when compiling the \s-1POSIX\s0 extension +.PP +.Vb 4 +\& cc: Warning: const\-c.inc, line 2007: In this statement, floating\-point +\& overflow occurs in evaluating the expression "1.8e308". (floatoverfl) +\& return HUGE_VAL; +\& \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-^ +.Ve +.PP +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. +.PP +When the file \fIpp_sys.c\fR is being compiled you may (depending on the +operating system release) see an additional compiler flag being used: +\&\f(CW\*(C`\-DNO_EFF_ONLY_OK\*(C'\fR. This is normal and refers to a feature that is +relevant only if you use the \f(CW\*(C`filetest\*(C'\fR pragma. In older releases of +the operating system the feature was broken and the \s-1NO_EFF_ONLY_OK\s0 +instructs Perl not to use the feature. +.SH "Testing Perl on Tru64" +.IX Header "Testing Perl on Tru64" +During \*(L"make test\*(R" the \f(CW\*(C`comp\*(C'\fR/\f(CW\*(C`cpp\*(C'\fR will be skipped because on Tru64 it +cannot be tested before Perl has been installed. The test refers to +the use of the \f(CW\*(C`\-P\*(C'\fR option of Perl. +.SH "ext/ODBM_File/odbm Test Failing With Static Builds" +.IX Header "ext/ODBM_File/odbm Test Failing With Static Builds" +The ext/ODBM_File/odbm is known to fail with static builds +(Configure \-Uusedl) 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. +.SH "Perl Fails Because Of Unresolved Symbol sockatmark" +.IX Header "Perl Fails Because Of Unresolved Symbol sockatmark" +If you get an error like +.PP +.Vb 1 +\& Can\*(Aqt load \*(Aq.../OSF1/lib/perl5/5.8.0/alpha\-dec_osf/auto/IO/IO.so\*(Aq 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. +.Ve +.PP +you need to either recompile your Perl in Tru64 4.0D or upgrade your +Tru64 4.0D to at least 4.0F: the \fBsockatmark()\fR system call was +added in Tru64 4.0F, and the \s-1IO\s0 extension refers that symbol. +.SH "read_cur_obj_info: bad file magic number" +.IX Header "read_cur_obj_info: bad file magic number" +You may be mixing the Tru64 cc/ar/ld with the \s-1GNU\s0 gcc/ar/ld. +That may work, but sometimes it doesn't (your gcc or \s-1GNU\s0 utils +may have been compiled for an incompatible \s-1OS\s0 release). +.PP +Try 'which ld' and 'which ld' (or try 'ar \-\-version' and 'ld \-\-version', +which work only for the \s-1GNU\s0 tools, and will announce themselves to be such), +and adjust your \s-1PATH\s0 so that you are consistently using either +the native tools or the \s-1GNU\s0 tools. After fixing your \s-1PATH,\s0 you should +do 'make distclean' and start all the way from running the Configure +since you may have quite a confused situation. +.SH "AUTHOR" +.IX Header "AUTHOR" +Jarkko Hietaniemi <jhi@iki.fi> |