diff options
Diffstat (limited to 'upstream/fedora-40/man1/perlqnx.1')
-rw-r--r-- | upstream/fedora-40/man1/perlqnx.1 | 251 |
1 files changed, 251 insertions, 0 deletions
diff --git a/upstream/fedora-40/man1/perlqnx.1 b/upstream/fedora-40/man1/perlqnx.1 new file mode 100644 index 00000000..0d3cd049 --- /dev/null +++ b/upstream/fedora-40/man1/perlqnx.1 @@ -0,0 +1,251 @@ +.\" -*- mode: troff; coding: utf-8 -*- +.\" Automatically generated by Pod::Man 5.01 (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 +.. +.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. +.ie n \{\ +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. 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 "PERLQNX 1" +.TH PERLQNX 1 2024-01-25 "perl v5.38.2" "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 +perlqnx \- Perl version 5 on QNX +.SH DESCRIPTION +.IX Header "DESCRIPTION" +As of perl5.7.2 all tests pass under: +.PP +.Vb 3 +\& QNX 4.24G +\& Watcom 10.6 with Beta/970211.wcc.update.tar.F +\& socket3r.lib Nov21 1996. +.Ve +.PP +As of perl5.8.1 there is at least one test still failing. +.PP +Some tests may complain under known circumstances. +.PP +See below and hints/qnx.sh for more information. +.PP +Under QNX 6.2.0 there are still a few tests which fail. +See below and hints/qnx.sh for more information. +.SS "Required Software for Compiling Perl on QNX4" +.IX Subsection "Required Software for Compiling Perl on QNX4" +As with many unix ports, this one depends on a few "standard" +unix utilities which are not necessarily standard for QNX4. +.IP /bin/sh 4 +.IX Item "/bin/sh" +This is used heavily by Configure and then by +perl itself. QNX4's version is fine, but Configure +will choke on the 16\-bit version, so if you are +running QNX 4.22, link /bin/sh to /bin32/ksh +.IP ar 4 +.IX Item "ar" +This is the standard unix library builder. +We use wlib. With Watcom 10.6, when wlib is +linked as "ar", it behaves like ar and all is +fine. Under 9.5, a cover is required. One is +included in ../qnx +.IP nm 4 +.IX Item "nm" +This is used (optionally) by configure to list +the contents of libraries. I will generate +a cover function on the fly in the UU directory. +.IP cpp 4 +.IX Item "cpp" +Configure and perl need a way to invoke a C +preprocessor. I have created a simple cover +for cc which does the right thing. Without this, +Configure will create its own wrapper which works, +but it doesn't handle some of the command line arguments +that perl will throw at it. +.IP make 4 +.IX Item "make" +You really need GNU make to compile this. GNU make +ships by default with QNX 4.23, but you can get it +from quics for earlier versions. +.SS "Outstanding Issues with Perl on QNX4" +.IX Subsection "Outstanding Issues with Perl on QNX4" +There is no support for dynamically linked libraries in QNX4. +.PP +If you wish to compile with the Socket extension, you need +to have the TCP/IP toolkit, and you need to make sure that +\&\-lsocket locates the correct copy of socket3r.lib. Beware +that the Watcom compiler ships with a stub version of +socket3r.lib which has very little functionality. Also +beware the order in which wlink searches directories for +libraries. You may have /usr/lib/socket3r.lib pointing to +the correct library, but wlink may pick up +/usr/watcom/10.6/usr/lib/socket3r.lib instead. Make sure +they both point to the correct library, that is, +/usr/tcptk/current/usr/lib/socket3r.lib. +.PP +The following tests may report errors under QNX4: +.PP +dist/Cwd/Cwd.t will complain if `pwd` and cwd don't give +the same results. cwd calls `fullpath \-t`, so if you +cd `fullpath \-t` before running the test, it will +pass. +.PP +lib/File/Find/taint.t will complain if '.' is in your +PATH. The PATH test is triggered because cwd calls +`fullpath \-t`. +.PP +ext/IO/lib/IO/t/io_sock.t: Subtests 14 and 22 are skipped due to +the fact that the functionality to read back the non-blocking +status of a socket is not implemented in QNX's TCP/IP. This has +been reported to QNX and it may work with later versions of +TCP/IP. +.PP +t/io/tell.t: Subtest 27 is failing. We are still investigating. +.SS "QNX auxiliary files" +.IX Subsection "QNX auxiliary files" +The files in the "qnx" directory are: +.IP qnx/ar 4 +.IX Item "qnx/ar" +A script that emulates the standard unix archive (aka library) +utility. Under Watcom 10.6, ar is linked to wlib and provides the +expected interface. With Watcom 9.5, a cover function is +required. This one is fairly crude but has proved adequate for +compiling perl. +.IP qnx/cpp 4 +.IX Item "qnx/cpp" +A script that provides C preprocessing functionality. Configure can +generate a similar cover, but it doesn't handle all the command-line +options that perl throws at it. This might be reasonably placed in +/usr/local/bin. +.SS "Outstanding issues with perl under QNX6" +.IX Subsection "Outstanding issues with perl under QNX6" +The following tests are still failing for Perl 5.8.1 under QNX 6.2.0: +.PP +.Vb 2 +\& op/sprintf.........................FAILED at test 91 +\& lib/Benchmark......................FAILED at test 26 +.Ve +.PP +This is due to a bug in the C library's printf routine. +printf("'%e'", 0. ) produces '0.000000e+0', but ANSI requires +\&'0.000000e+00'. QNX has acknowledged the bug. +.SS Cross-compilation +.IX Subsection "Cross-compilation" +Perl supports cross-compiling to QNX NTO through the +Native Development Kit (NDK) for the Blackberry 10. This means that you +can cross-compile for both ARM and x86 versions of the platform. +.PP +\fISetting up a cross-compilation environment\fR +.IX Subsection "Setting up a cross-compilation environment" +.PP +You can download the NDK from +<http://developer.blackberry.com/native/downloads/>. +.PP +See +<http://developer.blackberry.com/native/documentation/cascades/getting_started/setting_up.html> +for instructions to set up your device prior to attempting anything else. +.PP +Once you've installed the NDK and set up your device, all that's +left to do is setting up the device and the cross-compilation +environment. Blackberry provides a script, \f(CW\*(C`bbndk\-env.sh\*(C'\fR (occasionally +named something like \f(CW\*(C`bbndk\-env_10_1_0_4828.sh\*(C'\fR) which can be used +to do this. However, there's a bit of a snag that we have to work through: +The script modifies PATH so that 'gcc' or 'ar' point to their +cross-compilation equivalents, which screws over the build process. +.PP +So instead you'll want to do something like this: +.PP +.Vb 3 +\& $ orig_path=$PATH +\& $ source $location_of_bbndk/bbndk\-env*.sh +\& $ export PATH="$orig_path:$PATH" +.Ve +.PP +Besides putting the cross-compiler and the rest of the toolchain in your +PATH, this will also provide the QNX_TARGET variable, which +we will pass to Configure through \-Dsysroot. +.PP +\fIPreparing the target system\fR +.IX Subsection "Preparing the target system" +.PP +It's quite possible that the target system doesn't have a readily +available /tmp, so it's generally safer to do something like this: +.PP +.Vb 3 +\& $ ssh $TARGETUSER@$TARGETHOST \*(Aqrm \-rf perl; mkdir perl; mkdir perl/tmp\*(Aq +\& $ export TARGETDIR=\`ssh $TARGETUSER@$TARGETHOST pwd\`/perl +\& $ export TARGETENV="export TMPDIR=$TARGETDIR/tmp; " +.Ve +.PP +Later on, we'll pass this to Configure through \-Dtargetenv +.PP +\fICalling Configure\fR +.IX Subsection "Calling Configure" +.PP +If you are targetting an ARM device \-\- which currently includes the vast +majority of phones and tablets \-\- you'll want to pass +\&\-Dcc=arm\-unknown\-nto\-qnx8.0.0eabi\-gcc to Configure. Alternatively, if you +are targetting an x86 device, or using the simulator provided with the NDK, +you should specify \-Dcc=ntox86\-gcc instead. +.PP +A sample Configure invocation looks something like this: +.PP +.Vb 6 +\& ./Configure \-des \-Dusecrosscompile \e +\& \-Dsysroot=$QNX_TARGET \e +\& \-Dtargetdir=$TARGETDIR \e +\& \-Dtargetenv="$TARGETENV" \e +\& \-Dcc=ntox86\-gcc \e +\& \-Dtarghost=... # Usual cross\-compilation options +.Ve +.SH AUTHOR +.IX Header "AUTHOR" +Norton T. Allen (allen@huarp.harvard.edu) |