This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix error messages returned by S_require_tie_mod. Fix small leaks
[perl5.git] / hints / qnx.sh
index 24199c9..482c8ab 100644 (file)
@@ -1,16 +1,13 @@
 #----------------------------------------------------------------
 # 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"
 # unix utilities which are not necessarily standard for QNX4.
 # 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
 #   the same results. cwd calls `fullpath -t`, so if you
 #   PATH. The PATH test is triggered because cwd calls
 #   `fullpath -t`.
 #
-#   lib/ExtUtils.t: If you follow these hints and include
-#   -w4 in your ccflags, this test will complain about
-#   extra .err files appearing in its test directory.
-#
-#   ext/IO/lib/IO/t/io_sock.t Still investigating
-#   ext/POSIX/sigaction.t Still investigating
+#   ext/IO/lib/IO/t/io_sock.t: Subtest 14 is 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.
 #
 # Older issues:
 #   lib/posix.t test failed on test 17 because acos(1) != 0.
 #   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
@@ -209,4 +229,21 @@ if [ "$osname" = "qnx" ]; then
          /usr/local/bin or some other suitable location.
        EOF
   fi
+else
+  # $^O eq nto
+
+  ccflags='-DDLOPEN_WONT_DO_RELATIVE_PATHS'
+
+  # 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'
+
+  # If we use perl's malloc, it dies with an invalid sbrk.
+  # This is probably worth tracking down someday.
+  usemymalloc='false'
 fi