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 7perlqnx - Perl version 5 on QNX 8 9=head1 DESCRIPTION 10 11As of perl5.7.2 all tests pass under: 12 13 QNX 4.24G 14 Watcom 10.6 with Beta/970211.wcc.update.tar.F 15 socket3r.lib Nov21 1996. 16 17As of perl5.8.1 there is at least one test still failing. 18 19Some tests may complain under known circumstances. 20 21See below and hints/qnx.sh for more information. 22 23Under QNX 6.2.0 there are still a few tests which fail. 24See below and hints/qnx.sh for more information. 25 26=head2 Required Software for Compiling Perl on QNX4 27 28As with many unix ports, this one depends on a few "standard" 29unix utilities which are not necessarily standard for QNX4. 30 31=over 4 32 33=item /bin/sh 34 35This is used heavily by Configure and then by 36perl itself. QNX4's version is fine, but Configure 37will choke on the 16-bit version, so if you are 38running QNX 4.22, link /bin/sh to /bin32/ksh 39 40=item ar 41 42This is the standard unix library builder. 43We use wlib. With Watcom 10.6, when wlib is 44linked as "ar", it behaves like ar and all is 45fine. Under 9.5, a cover is required. One is 46included in ../qnx 47 48=item nm 49 50This is used (optionally) by configure to list 51the contents of libraries. I will generate 52a cover function on the fly in the UU directory. 53 54=item cpp 55 56Configure and perl need a way to invoke a C 57preprocessor. I have created a simple cover 58for cc which does the right thing. Without this, 59Configure will create its own wrapper which works, 60but it doesn't handle some of the command line arguments 61that perl will throw at it. 62 63=item make 64 65You really need GNU make to compile this. GNU make 66ships by default with QNX 4.23, but you can get it 67from quics for earlier versions. 68 69=back 70 71=head2 Outstanding Issues with Perl on QNX4 72 73There is no support for dynamically linked libraries in QNX4. 74 75If you wish to compile with the Socket extension, you need 76to have the TCP/IP toolkit, and you need to make sure that 77-lsocket locates the correct copy of socket3r.lib. Beware 78that the Watcom compiler ships with a stub version of 79socket3r.lib which has very little functionality. Also 80beware the order in which wlink searches directories for 81libraries. You may have /usr/lib/socket3r.lib pointing to 82the correct library, but wlink may pick up 83/usr/watcom/10.6/usr/lib/socket3r.lib instead. Make sure 84they both point to the correct library, that is, 85/usr/tcptk/current/usr/lib/socket3r.lib. 86 87The following tests may report errors under QNX4: 88 89dist/Cwd/Cwd.t will complain if `pwd` and cwd don't give 90the same results. cwd calls `fullpath -t`, so if you 91cd `fullpath -t` before running the test, it will 92pass. 93 94lib/File/Find/taint.t will complain if '.' is in your 95PATH. The PATH test is triggered because cwd calls 96`fullpath -t`. 97 98ext/IO/lib/IO/t/io_sock.t: Subtests 14 and 22 are skipped due to 99the fact that the functionality to read back the non-blocking 100status of a socket is not implemented in QNX's TCP/IP. This has 101been reported to QNX and it may work with later versions of 102TCP/IP. 103 104t/io/tell.t: Subtest 27 is failing. We are still investigating. 105 106=head2 QNX auxiliary files 107 108The files in the "qnx" directory are: 109 110=over 4 111 112=item qnx/ar 113 114A script that emulates the standard unix archive (aka library) 115utility. Under Watcom 10.6, ar is linked to wlib and provides the 116expected interface. With Watcom 9.5, a cover function is 117required. This one is fairly crude but has proved adequate for 118compiling perl. 119 120=item qnx/cpp 121 122A script that provides C preprocessing functionality. Configure can 123generate a similar cover, but it doesn't handle all the command-line 124options that perl throws at it. This might be reasonably placed in 125/usr/local/bin. 126 127=back 128 129=head2 Outstanding issues with perl under QNX6 130 131The following tests are still failing for Perl 5.8.1 under QNX 6.2.0: 132 133 op/sprintf.........................FAILED at test 91 134 lib/Benchmark......................FAILED at test 26 135 136This is due to a bug in the C library's printf routine. 137printf("'%e'", 0. ) produces '0.000000e+0', but ANSI requires 138'0.000000e+00'. QNX has acknowledged the bug. 139 140=head1 AUTHOR 141 142Norton T. Allen (allen@huarp.harvard.edu) 143 144