X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/afd1eb533c8ea286efcac6fd054ae7cebaf0dfe3..88a6f4fc380d30c405f82eb0f2962237fd771fea:/hints/qnx.sh diff --git a/hints/qnx.sh b/hints/qnx.sh index a90ac37..f7f8053 100644 --- a/hints/qnx.sh +++ b/hints/qnx.sh @@ -1,18 +1,20 @@ #---------------------------------------------------------------- # QNX hints # -# These hints were written for QNX4, but are in the process -# of being extended to encompass Neutrino as well. +# Most of the hints in this file are for QNX4, which needed +# more help. The QNX6 hints are located toward the bottom. # -# As of perl5.004_04, all tests pass under: -# QNX 4.23A +# perl-5.7.3 passes all tests under QNX4.24G # Watcom 10.6 with Beta/970211.wcc.update.tar.F # socket3r.lib Nov21 1996. -# perl-5.6.1 runs well on QNX4 with a few known test failures -# perl-5.6.0 ships with QNX RTP (Neutrino) but the build is -# not yet straightforward. +# perl-5.7.3 fails 2 known tests under QNX6.1.0 # -# As with many unix ports, this one depends on a few "standard" +# perl-5.10.0-tobe compiles with Watcom C 10.6 +# and QNX 4.25 patch G w/TCPSDK installed +# Some tests still fail, mostly to do with dynamic/static +# or unsuported features in QNX. +# +## As with many unix ports, this one depends on a few "standard" # unix utilities which are not necessarily standard for QNX4. # # /bin/sh This is used heavily by Configure and then by @@ -40,8 +42,20 @@ # Outstanding Issues for QNX4: # There is no support for dynamically linked libraries in # QNX4. +# +# 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. # -# ext/Cwd/Cwd.t will complain if `pwd` and cwd don't give +# cpan/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. @@ -62,6 +76,18 @@ # lib/io_udp.t test hangs because of a bug in getsockname(). # Fixed in latest BETA socket3r.lib #---------------------------------------------------------------- +# Outstanding Issues for QNX6: +# The following tests are still failing as of 5.7.3: +# +# op/sprintf.........................FAILED at test 91 +# lib/Benchmark......................FAILED at test 26 +# +# 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 and it should be +# fixed in 6.2.0. +# +#---------------------------------------------------------------- # These hints were submitted by: # Norton T. Allen # Harvard University Atmospheric Research Project @@ -208,4 +234,35 @@ if [ "$osname" = "qnx" ]; then /usr/local/bin or some other suitable location. EOF fi + + # includes a matherr() to silence noise from watcom libc + archobjs="qnx.o" + test -f qnx.c || cp qnx/qnx.c . + +else + # $^O eq nto + + ccflags='-U__STRICT_ANSI__' + + # Options required to get dynamic linking to work + lddlflags='-shared' + ccdlflags='-Wl,-E' + + # Somewhere in the build, something tries to throw a gcc + # option to $cc if it knows it invokes gcc. Our cc doesn't + # recognize that option, so we're better off setting cc=gcc. + cc='gcc' + + # gcc uses $QNX_TARGET/usr/include as the include directory. + usrinc="$QNX_TARGET/usr/include" + + # If we use perl's malloc, it dies with an invalid sbrk. + # This is probably worth tracking down someday. + usemymalloc='false' + + libswanted=`echo " $libswanted "| sed 's/ malloc / /'` + + # Some routines are only in our static libc. + # eg crypt() getlogin() getlogin_r() + usenm=false fi