Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX® Momentics® Development Suite 6.3.0 Service Pack 1 Professional and Standard Editions Release Notes

QNX® Momentics® Development Suite 6.3.0 SP1

Date of this edition: November 17, 2014


Note: Changes to these notes since January 24, 2005 are highlighted below with this icon: New!

Target OS: QNX® Neutrino® 6.3.0

Host OS: Microsoft Windows XP SP1 or SP2, 2000 SP4, NT SP6a; Sun Solaris 7 or 8; QNX® Neutrino® 6.3.0; Linux Red Hat 8.0, 9.0, or Enterprise WS 3 or 4


Note:
  • As mentioned in the installation note for QNX Momentics 6.3.0, we've deprecated support for Windows NT hosts. QNX Momentics 6.3.0 is the last release that you can install on Windows NT.
  • QNX Neutrino 6.3.0 supports only the new flash filesystem (FFS3). The older flash filesystem (FFS2) has been discontinued.
  • For the most up-to-date version of these notes, log into your myQNX account, and then go to the Download Center area of www.qnx.com.


Caution: Make sure that Plug and Play OS is disabled in the BIOS before you run QNX Neutrino self-hosted.

Service Pack 1 includes all of the patches previously released for QNX Momentics 6.3.0, including the SH4 Critical Patch and the SH4 Floating Point Patch.

Contents...


Note: Throughout this document, you may see reference numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.

What's new in QNX Momentics 6.3.0 SP1?

Here are the main new features in Service Pack 1:

bootpd
In 6.3.0, this daemon was provided in the Extended Networking TDK. With SP1, we're providing it for all QNX Momentics users, to support the booting of diskless nodes for development use; it's still licensed for distribution as part of the Extended Networking TDK. This release includes bootpd binaries for all targets. For more information, see the Neutrino Utilities Reference. (Ref# 21126)
mkimage
Formerly had no knowledge of FFS3 images, causing it to give an “Unknown image” warning when combining .ifs with version 3 .efs files. We've added code to parse flash filesystem version 3 images. (Ref# 20386)
Power Management
The io-net, io-char, and io-graphics I/O subsystems have been enhanced to support future power-management features. Applications developed with QNX Momentics 6.3.0 will continue to work. The new functionality will be made fully available in a future release of Power Management.

The OS images that we ship start procnto with the -v option, so that the kernel provides you with more information when a signal terminates a process.

Changes

Here are the main changes in 6.3.0 SP1 (in alphabetical order):


Note: You'll find a list of fixes at the end of this document.

Changes: Character-device drivers

If you've written a character-device driver that links against the libio-char.a library, note that there has been a change in the API to accommodate power management. You need to update any driver source code originally written for 6.3.0 and earlier if you plan to compile it against the new library in 6.3.0 SP1.


Note: You don't need to regenerate any binaries. This is an issue only if you're rebuilding old source code on the new 6.3.0 SP1 system.

For more information, see the release notes for the Character DDK.

Changes: Compiler and tools

ln-w
This utility now implements the functionality of symbolic links; there's a new -s option for creating them. (Ref# 21924)
gcc 3.3.1
An optimization error in gcc 3.3.1 used to make the compiler fault on BSP and DDK code. (Ref# 19949)
gcc 2.95.3 and 3.3.1
The libgcc.a for gcc 2.95.3 and 3.3.1 didn't correctly initialize the Floating Point Status/Control Register (fpscr) support code on SH4 for QNX Neutrino. (Ref# 21275 and 21408, respectively)
  • Workaround: Create static archives instead of shared objects or DLLs, and link statically. Or, for user-defined shared libraries built with gcc 3.3.1, declare a constructor that initializes the fpscr support code correctly. For example:
    extern unsigned __fpscr_values[];
    static void on_lib_load(void) __attribute__((constructor));
    
    static void on_lib_load(void) {
      __fpscr_values[0] = 0x00040004;
      __fpscr_values[1] = 0x000c0004;
    }
  • Solution: Apply SP1 and relink all shared objects that use the fpscr.

You can determine which shared objects use the fpscr by running this command:

ntosh-objdump -D lib_my_dll.so | grep fpscr_values

Since this bug also affects SHLE system shared libraries, you should rebuild any target systems that use any of the shared libraries in SP1, to make sure that the fixed shared libraries are used in the boot image and the target file system.

The system shared libraries under $QNX_TARGET/shle that are affected are:

  • lib/gcc/3.3.1/libcpp.so
  • lib/gcc/3.3.1/libecpp-ne.so
  • lib/gcc/3.3.1/libcpp-ne.so
  • lib/gcc/2.95.3/libcpp.so
  • lib/gcc/2.95.3/libecpp.so
  • lib/gcc/2.95.3/libcpp-ne.so
  • lib/dll/devn-dm9102.so
  • lib/dll/devn-ne2000.so
  • lib/dll/devn-speedo.so
  • lib/dll/devg-coral.so
  • lib/dll/devg-rotate270.so
  • lib/dll/devg-smi5xx.so
  • lib/dll/devg-tvia.so
  • lib/dll/deva-util-restore.so
  • lib/dll/npm-ttcpip.so
  • lib/dll/npm-tcpip-v4.so
  • lib/dll/npm-pppmgr.so
  • lib/dll/npm-qnet-l4_lite.so
  • lib/dll/npm-qnet-compat.so
  • lib/dll/npm-tcpip.so
  • lib/dll/npm-qnet.so
  • lib/dll/fs-ext2.so
  • lib/libasound.so.2
  • lib/libusbdi.so.2
  • lib/libbessel.so.1
  • lib/libc.so.2
  • lib/libm.so.2
  • lib/libsocket.so.2
  • usr/lib/malloc_g/libmalloc.so.2
  • usr/lib/librpc.so.2
  • lib/dll/mmedia/oggi_decoder.so
  • lib/dll/mmedia/midi_parser.so
  • lib/dll/mmedia/audio_writer.so
  • lib/dll/gri-photon.so
  • lib/dll/gri-gl.so
  • lib/dll/gl/gl-mesa.so
  • lib/dll/gl/gl-ph.so
  • lib/dll/pi_io_png.so
  • lib/dll/vpi.so
  • lib/dll/phfont.so
  • lib/libFF-T2K.so.2
  • lib/libFF-T2K.so
  • usr/lib/libavcodec.so.1
  • usr/lib/libavcodec.so
  • usr/lib/libvorbis.so.1
  • usr/lib/libxing_audio.so.1
  • usr/lib/libvorbis.so
  • usr/lib/libxing_audio.so
  • usr/lib/libph.so.3
  • usr/lib/libAp.so.3
  • usr/lib/libgri.so.2
  • usr/lib/libphrender.so.2
  • usr/lib/libGLU.so.4
  • usr/lib/libGL.so.3
  • usr/lib/libmedia.so.2
  • usr/lib/libjpeg.so.3
  • usr/lib/libph.so
  • usr/lib/libAp.so
  • usr/lib/libgri.so
  • usr/lib/libphrender.so
  • usr/lib/libGLU.so
  • usr/lib/libGL.so
  • usr/lib/libmedia.so
  • usr/lib/libjpeg.so
  • usr/photon/dll/shelf/pload.so
  • usr/photon/dll/shelf/volume.so
  • lib/gcc/3.3.1/libstdc++.so
  • lib/libstdc++.so.5.0.5
  • lib/libstdc++.so.5

The system shared libraries under $QNX_HOST/usr/lib/gcc-lib/ntosh/2.95.3/ml that are affected are:

  • libgcc.a
  • fpic/libgcc.a
  • fpic/fexceptions/libgcc.a
  • fexceptions/libgcc.a

The system shared libraries under $QNX_HOST/usr/lib/gcc-lib/sh-unknown-nto-qnx6.3.0/3.3.1 that are affected are:

  • libgcc.a
  • pic/libgcc.a
Utilities Reference
Added entries for gcov, gprof, mksbp, and qde. (Ref# 17542)

Changes: Core OS

procnto*
  • The previous versions of procnto and procnto-instr for SHLE didn't invalidate the data cache properly on requests for PROT_NOCACHE memory. As a result, if that memory had been used through a cached mapping (and unmapped) shortly before, a cache line castout/flush could have corrupted an already in-use noncacheable mapping.

    This memory-corruption bug affected programs that allocated noncacheable RAM from the system. This bug didn't affect noncacheable mapping to device registers in device drivers.

    This bug affected the QNX SH4 USB driver, which couldn't start properly because its noncacheable RAM mapping was corrupted. Other QNX-supplied drivers on the SH4 platform that might have been affected by this problem are devb* (e.g. devb-eide), most*, deva* (e.g. deva-tahoe), devn*, devu*, and devg* (e.g. devg-amanda). (Ref# 19459)

  • A problem with instrumentation could have caused a kernel stack overflow when instrumentation was turned on in SH4 platforms. We moved the instrumentation event after the shadow mask snapshot. The event itself was modifying the SR register before we could snapshot it properly, enabling interrupts before they should have been. (Ref# 21039)
  • Single-stepping into a kernel call formerly could cause the kernel call to fail with an ENOSYS. On taking a debug exception on entering the kernel, the EAX register holding the syscall number was corrupted. When returning to the normal code path for kernel entry, the syscall number was invalid, resulting in a bad kernel call.

    This could have shown up when you used gdb to do a source-line step over a kernel call (or a library function that did a kernel call e.g. mmap()). (Ref# 19351)

  • Addressed an x86 issue where under certain conditions, loading the data segment register from a user process with another valid segment descriptor could cause the kernel to crash. The scope of the issue is extremely limited, as the segment descriptor must have already been an existing legitimate segment (i.e. code segment). Assembly language inside the application itself must also have been explicitly coded, as the compiler doesn't generate code that exposes this issue. (Ref# 18836)
  • Fixed an issue where a mmap() with a bad FD would result in a proc dump (due to an issues in the resmgr library), and also addressed the fact that EBADF wasn't being returned. (Ref# 19126)
  • Extensive allocation of uncached memory could cause extra pressure on certain ranges of memory used to map and fulfill these requests in low-memory situations. This extra pressure on selected address ranges could result in premature allocation failures (even though some memory remained). (Ref# 21156)
  • Addressed an issue on x86 platforms, where page directories used for memory management could be allocated from high-memory areas above the 4-gigabyte mark. A specific limitation on the x86 architecture doesn't allow page directories to be above 4 gigabytes. Page directories allocated by the memory manager now come from below the 4-gigabyte range. (Ref# 20995)
  • Fixed an issue where, under some circumstances, we could leak physical memory when encountering a low-memory situation on x86 platforms.

    On a large mmap() request, it was possible that during the mapping of that memory, there wouldn't be enough memory to allocate further L2 page tables. On L2 allocation failures, mem_virtual (x86 only) recovers by unmapping the physical address space mapped up to that point. The issue was that we allocated X bytes of physical RAM for the anonymous mapping, but managed to map only N bytes. When we freed N bytes from the page tables, we leaked the remaining XN bytes.

    Now, we reset the page table to zero out the physical addresses, free all the physical memory, and then carry on as usual. (Ref# 11408)

  • The kernel wasn't clearing all session data when Qnet was terminated. This could have occurred only if there were open connections to a remote node at the time. If you restarted Qnet, it could have been unstable, causing data corruption on a new Qnet session, or causing io-net to fault. This has been fixed. (Ref# 20817)
  • Fixed a race condition where client applications that were sending a signal or a pulse over the network might have ended up being blocked permanently if the target server application terminated while the message was being sent. (Ref# 20817)
  • On all SH4 systems with multiple-way cache systems, the system formerly could incorrectly report an out-of-memory condition under low-memory conditions. (Ref# 21452)
  • Attempting to call msync() on an illegal or unmapped address formerly caused a thread in procnto to lock up and never return. The process's address space was also held locked during this time, which could have caused other messages (such as mmap()) to block. (Ref# 21484)
  • During the creation of a shared object, an error during the initialization (either allocation of backing store memory or reading of contents from the filesystem) used to result in a partially created object. The mmap() function returned a virtual address, but accessing that memory resulted in a SIGSEGV. (Ref# 21521)
  • During creation of a shared object, the object used to be initialized via a (temporary) cached mapping. If the final mapping was non-cached (i.e. PROT_NOCACHE), it's possible that writes to this object could then have been overwritten by data that was being flushed from the previous cached copy. (Ref# 21335)
  • Using the debug procfs interface to read memory from io-net (with Qnet loaded) on a remote node formerly could lock up, due to a resource deadlock. (Ref# 19697)
  • When building a driver that took over an interrupt from a mini-driver, if you used InterruptAttachEvent() with the bit _NTO_INTR_FLAGS_END ORed in the flag argument, the interrupt formerly wasn't properly unmasked or masked after the interrupt was enabled at the source. This caused “out of interrupt events” messages to appear. (Ref# 20110)
  • We added code to work around a defect on the MPC8560 CPU that made TCP/IP fail. For more information about this defect, see CPU29 in MPC8560 PowerQUICC III Device Errata, available from Freescale's website. (Ref# 21363)
mkefs
On a Windows-hosted development machine, if a mkefs buildfile set the filter to deflate, temporary files of the form sXXX were left in C:\. One temporary file was left for each file compressed. The deflate.exe program now removes these temporary files. (Ref# 19278)
shm_ctl_special()
This function, which gives special attributes to a shared-memory object, is now documented in the Neutrino Library Reference. (Ref# 18667, 21565)
asyncmsg_*()
The asynchronous-message functions are now documented in the Neutrino Library Reference. There's also an OS Technote, Asynchronous Messaging, that explains how to use these functions. (Ref# 19011)

Note: The asynchronous-message functions are experimental and could change.

/etc/rc.d/rc.local
New! For your convenience, 6.3.0 installed an empty, executable version of /etc/rc.d/rc.local. However, the permissions were 777 (read, write, and execute for everyone). To make your system more secure, SP1 changes the permissions to 750 (read, write, execute for the user; read, execute for the group; no permissions for others). (Ref# 22665)

Changes: Filesystems

find and inode numbers on big-endian platforms
File inode numbers in the find utility weren't being correctly treated as off_t variables. When compiled as _FILE_OFFSET_BITS=64 on big-endian platforms, this resulted in their always being displayed (for example, using find -printf "%i") as 0. The find utility now correctly displays the inode field as a 64-bit value where appropriate. (Ref# 19172)
fseeko64() and ftello64()
The stdio library didn't contain 64-bit variants of the fseeko() and ftello() routines. Thus, an application program compiled as _FILE_OFFSET_BITS=64 using these routines would be passing a 64-bit offset into a function expecting only a 32-bit value. The impact was that these routines wouldn't operate correctly (they'd randomly fail or seek to the wrong location); the behavior of the standard utilities head and tail might also have been affected. (Ref# 20437)
C++ and <stdio.h> _FILE_OFFSET_BITS=64
The 64-bit function mappings in <stdio.h> for the fopen(), freopen() and tmpfile() routines generated warnings within the namespace std scope. Compiling C++ code as _FILE_OFFSET_BITS=64 would produce “already declared in this scope” warnings from <stdio.h>. The header file has been fixed. (Ref# 20624)
Resource managers and the IOFUNC_MOUNT_32BIT flag
The iofunc library didn't implement the IOFUNC_MOUNT_32BIT flag. The intent of this flag, when used by a filesystem resource manager, is to indicate that it deals only with 32-bit file sizes and offsets (most likely it's compiled with _IOFUNC_OFFSET_BITS=32, _FILE_OFFSET_BITS=32, or both).

However, a 64-bit client application (compiled with _FILE_OFFSET_BITS=64 or using O_LARGEFILE) could seek or otherwise attempt to access a file beyond the 32-bit/2GB limit, whereas the server is manipulating only 32-bits, resulting in an inconsistent file.

The IOFUNC_MOUNT_32BIT flag in an iofunc_mount_t is now honored, and the iofunc library detects any attempt to access beyond a 32-bit offset and fails with EOVERFLOW. (Ref# 21122)

umount can SIGSEGV a devb-* driver
In rare cases, a umount of a disk filesystem formerly could cause the associated devb-* driver (actually the io-blk.so library) to crash with a SIGSEGV. This has been fixed. (Ref# 19387)
fs-cifs
When fs-cifs connected to a Windows server, a unique session was created. When a second fs-cifs process was started, it didn't specify an identifier different from the first instance, and thus confused the server, which thought that the original fs-cifs process had reestablished its connection. The server then terminated the first session.

This repeated: the second session was disconnected when the first fs-cifs detected that it had been disconnected and reestablished its link to the server. This continued back and forth each time file access was required from the server.

This issue has been fixed, and multiple CIFS sessions are supported, which can enhance performance. These modifications also allow a fs-cifs process to create a local mountpoint nested within the local mountpoint path of another fs-cifs process. (Ref# 15452, 21532)

fs-nfs2, fs-nfs3
If an unexpected packet (perhaps generated by a misconfigured server) taking the form of a RPC response “NFS NULL” packet arrived while there was a pending open() from a client application that the server hadn't yet responded to, fs-nfs2 or fs-nfs3 formerly might have faulted. This has been fixed. (Ref# 21480)
fs-nfs3
When a user accesses a file, its inode is added to the read cache for fs-nfs3. If another operation occurred on the same file while it was still in the cache, but that operation failed due to lack of permission (e.g. another user who doesn't have permission to access the file attempted to do so, or the permission of the file or directory it's in changed) the inode formerly wasn't unlocked. The next attempt to access this file would permanently block, or fs-nfs3 may no longer respond if it entered its cache-recycle routines. A file remains in the cache for 1 second after the last access. (Ref# 21599)

Flash drivers

  • On 32-bit wide Intel flash, if an attempt to access flash using a 16-bit aligned address failed, the flash driver used to crash when it reset the hardware. The reset callback now aligns the addresses properly. (Ref# 20151)

Changes: IDE

C/C++ editor
Error markers in the editor sometimes appeared in the currently displayed file, even if it wasn't the file that contained the error. (Ref# 20197)
IDE User's Guide
Various updates include new documentation for the Export… command, information about opening C/C++ headers from the editor, etc. (Ref# 19758, 20341, 20579, 20718, 20991, 21051, 21143, 21150, 21206, 21209, 21210, 21211, 21259, 21262)
System Builder
Now supports projects that have more than one buildfile (e.g. big- and little-endian). (Ref# 19122)

Changes: I/O devices

io-char
  • The terminal POSIX support library incorrectly treated a physical break condition on a serial line and the receipt of the INTR character as the same event, and thus used the wrong tty flags to control the handling behavior. A physical break should be configured by the IGNBRK and BRKINT flags, whereas a keyboard interrupt is configured by the VINTR character and the ISIG flag. The effect of this may be seen as the inability to use Ctrl-C in certain terminal configurations (for example esh, which despite +isig intr=03 didn't also configure -ignbrk +brkint). (Ref# 19736)
  • The terminal POSIX support library incorrectly discarded an input 0x00 character when in ICANON (edited) mode, although it was available to be read in non-ICANON (raw) mode. (Ref# 21082)
  • The terminal POSIX support library incorrectly implemented the IGNPAR flag. This flag, when used with INPCK, should cause parity checking of input characters to be performed, and any characters with a parity error should be discarded and not be made available to be read. However the bad characters weren't being ignored. (Ref# 21083)

The above problems have all been corrected in the io-char.a library; the changes affect all devc-* drivers (because they're statically linked against this library).

io-hid, hidview
QNX Momentics 6.3.0 didn't include these utilities for SHLE. (Ref# 20843)
io-usb
  • The io-usb server formerly may have faulted if a USB client driver detached from a device without aborting active transactions. Drivers should abort transactions before detaching from a device. We changed io-usb to automatically abort transactions for a client driver when it detaches from a device. (Ref# 21424)
  • We fixed a problem with USB hubs on Renesas Big Sur/Amanda. USB Request Blocks (URBs) didn't automatically abort when the usb utility detached from the stack. This caused an error if you ran usb before and after unplugging a USB device from a USB hub. (Ref# 21624)
devu-mouse, devu-kbd
While slaying devu-mouse or devu-kbd, the driver formerly could fault. The driver was changed to properly abort/wait for all USB transactions to complete before freeing memory used in the enqueued USB transactions. (Ref# 21422)
devb-umass
The mass-storage driver didn't work on Renesas Big Sur/Amanda. The driver would run, and the device entry would be created, but the partition information wouldn't show up. (Ref# 21251)
libusbdi.so.2
Occasionally, USB client drivers would fault on startup. Clients were being notified of device insertion before the memory was completely initialized. (Ref# 21432)
devu-ehci.so
  • The driver aborted transactions but the hardware still issued tokens on the USB bus for the aborted transaction. The EHCI chip cached the schedule for device endpoints and overwrote the status for the aborted transaction. (Ref# 21545)
  • The driver completed Write URBs even though the transactions didn't actually go out on the bus. (Ref# 21546)
  • It was possible for clients not to be notified of a completed transaction until a subsequent USB transfer occurred. The EHCI chip hadn't updated the in-memory transaction status at the the time of interrupt. The driver was changed to also check the status from the schedule's “endpoint cached area.” See the EHCI documentation for details. (Ref# 21547)

Changes: Networking

devn-smc9000.so
  • We implemented a workaround for a device lockup that happened when a receive overrun occurred. (Ref# 21392)
  • We fixed an unaligned data access in the devn-smc9000.so driver that formerly could cause io-net to SIGBUS. Service Pack 1 includes the new binary; the BSP source patches include the new source. (Ref# 19170)

Changes: Photon

libgri.a, libgri.so
Entering into Photon direct mode formerly could fail, due to an error in the size of the region data used for a region change. (Ref# 21708)
phrelay, Phindows
These programs now support offscreen contexts. This solves various problems when using Phindows, including the following:
  • PhAB's zoom feature didn't work at all over phrelay.
  • PtOSContainer widgets didn't display correctly (when edited in PhAB or when used in a Photon application).
  • The Mozilla web browser didn't run at all.
  • Voyager with the Mozserver server didn't display any content.
  • Voyager with the Netfront server (from the Web Browser TDK) displayed with a lot of unnecessary redrawing, flickering and poor performance.

For more information, see the Phindows for QNX Neutrino User's Guide. We'll add support for offscreen contexts to phditto in a future release. (Ref# 21727)

Changes: Protocols

npm-qnet-compat.so
  • A race condition existed where Qnet could fault io-net. This could have happened when a client application sent a message (e.g. write() or read()) to a server application on another node. If the server application terminated while the message was being sent, or during the reply from the server back to the client, the client application's Qnet might have caused io-net to fault.

    This problem occurred only if the send or reply message buffer was larger than the MTU of the network being used. For example, with Ethernet, if the message buffer was larger than 1500 bytes, multiple packets needed to be sent to transmit the message. This has been fixed. (Ref# 21119, 21406)

  • Depending on how the discovery took place, a 128-byte buffer of memory formerly could be lost at the initial discovery of each peer node on the network. This has been fixed. (Ref# 19242)
TCP/IP stack (npm-tcpip-v4.so and npm-tcpip-v6.so)
  • The Stream Control Transmission Protocol DLL (lsm-sctp.so) requires a stack of 4096 bytes. The default stack size for npm-tcpip-v6.so has been increased. (Ref# 20789)
  • The TCP/IP stack may receive an incorrectly formatted mount command for another manager and silently discard it instead of returning an error back to mount for it to report to the user. This has been fixed. (Ref# 19039)
  • We divided the documentation for npm-tcpip.so into separate entries for npm-tcpip-v4.so and npm-tcpip-v6.so. (Ref# 21038)
dhcp.client
The dhcp-up script (see the documentation for dhcp.client in the Utilities Reference) now sets the DOMAIN and NAMESERVER2 environment variables. The relay agent IP address, the server name, and siaddr were added as well. (Ref# 20093)

The dhcp.client previously sent a request to the DHCP server for the DHCP options that it could apply (IP address, netmask, etc.), but users couldn't modify this list. We've added support for a /etc/dhcp/dhcp-options file, so that you can request options that aren't handled by dhcp.client directly.

When received from the server, these options are passed to the /etc/dhcp/dhcp-up script. Previously, dhcp.client relied on the server's passing all options in its client definition to that client whether those specific options were requested or not. If you're adding option handling to the dhcp-up script, you must also add that option to the dhcp-options file. For more information, see dhcp.client in the Utilities Reference. (Ref# 19509)

ntpd and ntpdate
These binaries can now adjust the time if the value to process is less than 1ms in the past. (Ref# 17593)
netstat
The netstat utility formerly used TCP by default to request information from a nameserver. This caused a problem with nameservers that supported only UDP. UDP is now the default, but you can ask to use TCP by specifying the -T option to netstat. (Ref# 20332)
rcp
This utility uses ftruncate() when copying a file, and rcp used to fail if the filesystem didn't support this function (i.e. ftruncate() failed with ENOSYS). It now continues. (Ref# 16487)
slinger
Slinger used to corrupt the beginning of the CGI script data stream if the HTTP request was a POST request. This has been fixed. (Ref# 20118)
ping
We modified ping to not require the FPU. (Ref# 15324)
npm-pppmgr.so
The PPPD dial-on-demand feature didn't work when used in combination with the persist pppd option. This has been fixed. (Ref# 19667)
pppd
  • This daemon used to leak memory when used in on-demand mode, as the connection was dropped and reestablished over time. (Ref# 21427)
  • Whenever you start pppd in on-demand mode, a session is established. When you terminate pppd, the created PPP interface should be destroyed. Formerly, the interface wasn't destroyed, so it was listed when pppd wasn't running. This has been fixed. (Ref# 21418)
pppoed
As a convenience, pppoed mounts the io-net DLL npm-pppoe.so if io-net hasn't already loaded it. The pppoed daemon used to do this using the system() function, which locates the mount command with the PATH of the user executing pppoed.

This was a security problem, because non-privileged users could have placed their own mount command in the path and had it executed as root. This could allow a local non-root user root access. The pppoed daemon now calls mount() directly. (Ref# 21675)

arp
Proxy ARP entries couldn't be added with the arp utility. This has been fixed. (Ref# 21179)
<netinet6/in6.h>
Compiling a C++ application using this header file (which <arpa/inet.h> includes) resulted in an error:
In file included from /usr/qnx630/target/qnx6/usr/include/arpa/inet.h:79,
from tst.cc:3:
/usr/qnx630/target/qnx6/usr/include/sys/types.h:263: error: `size_t' not
declared

This has been fixed. (Ref# 21204)

<kvm.h>
Compiling a C++ application using this header file used to result in an error related to undefined references. This has been fixed. (Ref# 19974)
ntpd and ntpdate
When ntpd or ntpdate (in broadcast/multicast mode, -M option) received an update from the NTP server, if the result of the comparison between the current time and the time from the server was 0 (i.e. no update was needed), an incorrect random residual value might have been stored. This residual value would then be added to the next time-synchronization update if the comparison between the current time and the time from the server was nonzero. This has been fixed. (Ref# 21766)
RPC library (librpc.so)
If you're using the RPC library, and you have a multithreaded application that uses thread-specific data with a key of 0, the RPC library could have corrupted the thread-specific data of the other thread, for example created by the Photon library. This has been fixed. (Ref# 21657, 21775)
lsm-sctp.so
This module, which implements Stream Control Transmission Protocol services, is now described in the Neutrino Utilities Reference. (Ref# 20787)

Changes: Shared memory on ARM processors

The behavior of the SHMCTL_GLOBAL and SHMCTL_PHYS flags has changed for ARM processors.


Note: This actually changed in QNX Momentics 6.3.0 but wasn't included in the release notes.

On ARM, you can use shm_ctl() to create shared memory objects that can be mapped outside the regular process address space to overcome the 32 MB address-space limitation.

In 6.2.1, these objects, when mapped, weren't protected and were potentially accessible via their global virtual addresses from any suitably privileged process. This access was restricted to processes that had performed ThreadCtl(_NTO_TCTL_IO), so in general, this was restricted to drivers or other system processes. The SHMCTL_LOWERPROT flag lowered this restriction so that any user process could potentially access these mappings without having to use ThreadCtl(_NTO_TCTL_IO) first.

In 6.3.0, these global mappings are protected, so that only the process that performed the mmap() of the shared memory object can access it. If you have any code written for 6.2.1 that relies on the implicit access allowed by these global mappings, you must modify it to use the flags to explicitly remove the per-process protection:

  • SHMCTL_PRIV disables the per-process protection and restricts access to processes that have performed a ThreadCtl(_NTO_TCTL_IO). This is equivalent to the default 6.2.1 behavior.
  • SHMCTL_LOWERPROT disables the per-process protection and allows access from any user process. This behavior is the same as the use of this flag in 6.2.1.

In addition to the per-process protection, 6.3.0 changes the alignment of the virtual addresses where these global mappings are placed:

  • In 6.2.1, mappings were aligned on a 4 KB boundary.
  • In 6.3.0, mappings are aligned on a 1 MB boundary. This alignment must be honored even if MAP_FIXED is used.

In 6.2.1, mmap() mapped separate objects like this:

  • First object at 0x80000000 - 0x80002fff
  • Second object at 0x80003000 - 0x80005fff.

In 6.3.0, mmap() maps these objects as:

  • First object at 0x80000000 - 0x80002fff
  • Second object at 0x80100000 - 0x80102fff.

If you have any code written for 6.2.1 that makes assumptions about the alignment of mappings or uses MAP_FIXED with non-1 MB alignment, you must modify it to comply with the new behavior.

Experimental items


Caution: Experimental software is primarily provided for customers and the community to try out, and perhaps to get a glimpse of what might be in store for the future. For information about the use of experimental software, see the Commercial Software License Agreement (CSLA) or Partner Software License Agreement (PSLA) in the Licensing area of our website, http://www.qnx.com/legal/licensing/.

The experimental items in QNX Momentics 6.3.0 are:

  • asynchronous messaging

Known issues

The 6.3.0 SP1 release contains known issues in these areas:


Note: We're actively investigating all known issues.

Known issues: Audio

  • The graphics drivers run at a higher priority than applications, but they shouldn't run at a higher priority than the audio, or else breaks in the audio occur. (Ref# 4026)

    Workaround: Use the on command to adjust the priorities of the audio and graphics drivers.

  • New! QNX Momentics 6.3.0 should have included deva-ctrl-ymfds1.so, but didn't. (Ref# 24662)

Known issues: Block-oriented drivers

devb-*
High-priority threads can get starved off by lower ones via devb-* because the filesystem uses sleepon_*() functions, which don't inherit priorities. (Ref# 2109)
devb-adpu320
Reading DVD-RAM causes devb-adpu320 to become blocked on a CONDVAR. (Ref# 19772)
devb-doc, devb-doc3, dformat, dformat3
The Disk On Chip drivers were provided by the vendor. If you run use -i on them, the state is given as Experimental. (Ref# 23101)

Known issues: Booting

The combination of F1 and F4 for diskboot (Safe Mode, Don't mount filesystems) doesn't work. (Ref# 21876)

Workaround: Press F5 to start the debug shell; it simply starts fesh just after mounting the filesystems. If you want to run a consistency check a filesystem, run /sbin/chkfsys after the shell starts.

Known issues: BSPs and DDKs

  • Don't use a BSP with SP1 unless the BSP's release notes state that you should. Please contact us for more information.
  • On Neutrino hosts, running the default uninstall script uninstalls both the binary and source BSP packages. (Ref# 18894)

Known issues: Compiler and tools

addvariant
New! This script doesn't work on Windows hosts, because it needs the xargs utility. (Ref# 24569)
bison
On self-hosted Neutrino systems, bison.simple is located in ${QNX_HOST}/usr/share/bison, but the tools expect to find it in /usr/share/bison. (Ref# 18563)

Workarounds:

  • Update your profile to include these exports:
    export BISON_SIMPLE=$QNX_HOST/usr/share/bison/bison.simple
    export BISON_HAIRY=$QNX_HOST/usr/share/bison/bison.hairy

    Or:

  • Create the following link:
    ln -s /usr/qnx630/host/qnx6/x86/usr/share/bison /usr/share
gcc
  • If you're using gcc 3.3.1 with the deprecated GNU libstdc++ library, cout/cin doesn't work on SH targets. Use the Dinkum C++ library instead.
  • MIPS C++ support with gcc 3.3.1 works only with the Dinkumware NO_EXCEPTION libraries. Anything else will generate a SIGILL error.
  • On MIPS, code that uses exceptions in shared libraries generates a SIGILL or other signal. Exceptions work as expected in static libraries and executables. (Ref# 23355)
  • The __builtin_return_address() function doesn't work for SH targets using gcc 2.95.3. (Ref# 19706)

    Workaround: On SH, the return address is usually stored in the PR register, but __builtin_return_address() is corrupting the register's contents. The solution is to add some assembly code to store the PR register. Use sts pr,variable instead of __builtin_return_address().

    For example, if your code is doing this:

    void *operator new(size_t size) {
        void* line = (void*)__builtin_return_address(0);
    
        return(debug_malloc(0, (int)line, size));
    }

    use this SH code to store the PR register:

    void *operator new(size_t size) {
    #ifdef __SH__
        void *line;
        asm volatile ("sts pr,%0;" :"=r"(line) );
    #else
        void* line = (void*)__builtin_return_address(0);
    #endif
    
        return(debug_malloc(0, (int)line, size));
    }
  • There's an alignment issue with gcc 2.95.3, where an __attribute__((__aligned__(N))) applied to a typedef also applies that alignment to the base type. (Ref# 18662)

    For example, the following code applies an alignment of 8 to both my_long_long_t and the long long:

    typedef long long my_long_long_t __attribute__((__aligned__(8)));

    Workaround: Make a duplicate typedef of a dummy type:

    typedef long long my_dummy_t;
    typedef my_dummy_t my_long_long_t __attribute__((__aligned__(8)));
  • The gcc compiler's stabs and stabs+ debug format (-gstabs or -gstabs+) can sometimes report the wrong address when analyzed with addr2line. This may cause the IDE to wrongly identify source code line numbers. In most cases, the next or previous line is identified, so it's generally obvious, but potentially confusing. (Ref# 18965)

    Workaround: Use the dwarf-2 debug format (-gdwarf-2) instead of stabs.

  • Nested functions (i.e. one function declared inside another) aren't standard C or C++, and they can cause problems on SH and PPC platforms. We recommend that you not use GNU extensions to ANSI C; for more information, see “Extensions to the C Language Family” in the gcc documentation at www.gnu.org.
  • With gcc 2.95.x and 3.x, C++ shared objects can optionally use __cxa_atexit(), which allows their destructors (normally registered with atexit()) to be called at dlclose() time. This feature isn't yet supported; as a result, you can't use dlopen() and dlclose() on C++ shared objects. (Ref# 19702)

    Workaround: Add the following to your C++ shared library:

    #include <dlfcn.h>
    
    /*
    * stick around for atexit(dtors)
    * add to common.mk:
    * CCFLAGS += -DSONAME_STR=\"$(notdir $(FULLNAME)$(VERSION_TAG_$(BUILD_TYPE)))\"
    */
    
    extern void hackslash(void) __attribute__((constructor));
    
    void hackslash(void) {
      dlopen(SONAME_STR,RTLD_NOW);
    }
        
  • On most platforms, the gcc 3.3.1 options -fpic and -fPIC are synonymous, but on PPC they're different and incompatible. We chose -fpic over -fPIC for performance reasons, and our PPC OS is built that way. (Ref# 21947)

    Workaround: If you see problems (such as relocation-truncation errors) at link time when building shared objects, consider splitting your shared object into multiple shared objects.

  • When you're compiling with gcc 3.3.1 for MIPS, you might get this error:
    relocation truncated to fit: R_MIPS_GPREL16
      

    (Ref# 22822)

    Workaround: Pass the -Wc,-G4 option to qcc.

  • gcc 2.95.3 ignores #pragma pack() directives for global structures on the ARM platform. For example, the strucutre in this code is still padded to 8 bytes instead of the expected 5:
    #pragma pack(1)
    struct five {
        unsigned char a;
        unsigned b;
    };
    
    struct five five;

    (Ref# 5151)

    Workaround: This problem doesn't affect code generated with gcc 3.3.1.

  • New! Compiles for PPC targets can fail with gcc 3.3.1, because ntoppc-gcc-3.3.1 defines __svr4__, but shouldn't. (Ref# 22504)

    Workaround: Undefine __svr4__; for example:

    make CCOPTS=U__svr4__
      
  • New! Both gcc 2.95.3 and 3.3.1 report parsing errors for seemingly simple code. (Ref# 20409)

    Workaround: See “Parse errors for simple code” in gcc.gnu.org/bugs.html#known.

gdb
  • Watchpoints don't work on the Freescale 8540ADS and Lite5200 platforms. (Ref# 21293)
  • If you have two breakpoints exactly one instruction apart, the second breakpoint won't stop the debugger. (Ref# 20833)
  • gdb may display a “Compiled with unknown debugging format” warning when debugging binaries compiled with gcc 3.3.1. This doesn't seem to affect the debugger in any way. (Ref# 20658)
  • New! If you run gdb over phditto, gdb hangs, because the Photon server spawned by phrelay inherits phrelay's set of ignored signals including SIGUSR1, which gdb relies on. (Ref# 24817)

    Workaround: Launch pterm windows using pwm's Desktop Menu (press Alt-Enter or right-click on the desktop background) instead of using the Terminal button on the shelf. Only pterm windows started by shelf inherit the ignored SIGUSR1.

    Another option is to write a wrapper around gdb to reset SIGUSR1.

ld
  • Between the 2.10.1 version of the GNU linker in QNX Momentics 6.2.1 and the 2.12.1 version in QNX Momentics 6.3.0, a bug was fixed in the handling of relocation addends for SH targets. As a result of this fix, SH startup binaries (e.g. startup-systemh) that were created prior to QNX Momentics 6.3.0 won't work correctly if included in a boot image generated in QNX Momentics 6.3.0.

    Workaround: Rebuild the startup binary using QNX Momentics 6.3.0. The resulting startup will work with both 6.2.1 and 6.3.0.

  • Version 2.12.1 of ld produces bad R_386_NONE relocations if you're using gcc 2.95.3 and C++ to build shared objects. (Ref# 20433)

    Workaround: SP1 also includes version 2.10.1, and the qcc configuration files have been set up to use the older linker only if you're using gcc 2.95.3 and C++ to build shared objects.

make
New! Our recursive makefiles use the value of the NAME environment variable (if set) to name the resulting binary. We realized (too late) that this was too generic a variable to use for this purpose; if you have a NAME environment variable set on your system for some other purpose (e.g. your name or email address), its value will be used as the name of your binaries. We apologize for this mix-up. (Ref# 29843)

Workaround: Unset the NAME environment variable before you build any executables.

gzip
Our implementation of gzip doesn't handle large (64-bit) files or the most recent GNU gzip archives. (Ref# 19651)
qconfig
After you've installed SP1 on a self-hosted Neutrino system, qconfig erroneously lists 6.3.0 and 6.3.0 SP1 as separate versions. It doesn't matter which version you choose. (Ref# 23085)
qcp
The qcp utility works only on x86 platforms. (Ref# 9500)
Neutrino-specific
New! SP1 doesn't update the /usr/include directory on self-hosted systems (although most of the files in it are symbolic links). (Ref# 27226)

Workaround: When you compile, use $QNX_TARGET/usr/include instead of /usr/include as the location of the system header files.

Windows-specific
  • On Windows hosts, usemsg's -o option doesn't work correctly if you have a Cygwin mountpoint for /. (Ref# 21561)
  • The IDE and tools suffer from performance problems when installed on a Windows workstation with Novell client software. The problem also affects all Cygwin applications. (Ref# 21730)
  • Because of recent changes to the Cygwin library, you can't use COM1 as the port name for serial debugging under Windows. Instead, you must use /dev/com1.

Known issues: Core OS

pipe()
  • When there are multiple writers to a pipe and the O_NONBLOCK flag is clear, a write of less than PIPE_BUF bytes into a full pipe could cause loss of data in the particular write even though the write returns with no error. (Ref# 20220)
  • When there are multiple readers and writers to a pipe, and reader/writer processes terminate repeatedly, the pipe manager may fault. (Ref# 20128)
fork()
Physically contiguous areas aren't preserved across a fork(). If one process does a mmap() with MAP_ANON|MAP_PHYS to obtain a physically contiguous memory (drivers and the like), and then forks, the child process (which is supposed to be a duplicate of the parent) actually doesn't enforce contiguous areas when copying the parent's mappings. (Ref# 17531)
sysconf()
The value that sysconf( _SC_OPEN_MAX ) returns might not be correct if you've used the -F option to procnto to change the maximum number of file descriptors per process. (Ref# 16966)
procnto
  • New! Specifying the -as option to procnto on SH platforms is the same as specifying -ad, not -ae as stated in the Utilities Reference. (Ref# 22858)
  • Creating threads over and over can exhaust memory. When creating a thread, the OS uses _smalloc() to allocate memory for various internal data structures, but it can't return the memory to the free pool of general memory (the memory is held in the _smalloc() heap) for future allocations by the kernel or a user. Memory gets very fragmented with all these little objects holding onto memory; eventually large (4 MB and greater) contiguous allocations could start to fail. (Ref# 16405)
  • The 74xx series PPCs with a 60x bus (not MBX) don't support 16-byte bus transactions. This limitation can cause unexpected alignment exceptions when using Altivec instructions to/from uncached memory regions. Symptomatic of this issue, passing messages to or from uncached memory regions can result in a kernel crash, due to the 60x bus limitation. (Ref# 14878)

    Workarounds:

    • Don't pass messages to or from uncached memory regions.
    • Disable the PPC_CPU_ALTIVEC feature flag in startup-* code to avoid using Altivec instructions in a message pass. (This also means that the OS won't save and restore the Altivec register set on a context switch.)
  • In earlier versions of QNX Neutrino, mqueue managed message queues and named semaphores; now, procnto handles named semaphores. The documentation doesn't mention this.

    The main implication of this change is that if your embedded system uses named semaphores but not message queues, you don't need to include mqueue in your OS image. (Ref# 21823)

  • On Broadcom MIPS BCM1250 and BCM1125 chips, the startup program doesn't add cache callouts for the onboard L2 cache. This causes msync() operations that attempt to flush the cache not to force the data all the way to main memory. This isn't normally a problem, because the L2 cache uses a bus-snooping protocol and maintains consistency with the main memory anyway. You might have problems if you have the same region of memory mapped both with and without the PROT_NOCACHE attribute. (Ref# 21855)
procnto-smp
When a child process terminates, sometimes procnto-smp doesn't notify the parent process. This happens only on Qnet with five or more nodes, and it seems to occur more often if the system is busy and the child process is multithreaded. (Ref# 15756)
name_attach()
In QNX Momentics 6.2.1B, the name_attach() server side never had to handle any _IO_* messages, but could set an error code of ENOSYS for them all. In 6.3.0, an _IO_CONNECT message is sent when the client does a name_open(); if the server doesn't reply with an EOK, the client fails to connect to the server. This message is needed in the remote case to force the establishment of the network link, and to determine that the server is actually there. (Ref# 20507)

Workaround: Add code to the server to handle this message. For an example, see the online documentation for name_attach() in the Neutrino Library Reference.

RPC Library (librpc.so, librpc.so.2, librpc.a, librpcS.a)
If all available memory is exhausted, the RPC library can potentially fault if a malloc() call fails during the first execution of either a clnt_broadcast() call or a rpc_broadcast() call. Memory corruption may occur if all thread-specific data keys are exhausted before the RPC library functions have been called. (Ref# 21945)
<stdio.h>
A duplicate declaration of vsnprintf() causes compile warnings. (Ref# 21880)
fork()
In extremely limited cases, it's possible that a call to fork() may fail and set errno to EINTR. This issue is limited to only x86, PowerPC, and SH architectures and usually occurs only when stacks have dynamically allocated all backing store (e.g. a 512KB stack has 512KB memory allocated) through heavy stack usage followed by a call to fork(). (Ref# 18408)
_cmdname()
The documentation has incorrect information about what this function returns. (Ref# 21809)

This function actually returns a pointer to the pathname used to load the process, or NULL if an error occurred.


Note: Don't change the string that the returned value points to if you passed NULL for the buff parameter.

swapctl
The Utilities Reference still includes an entry for swapctl, even though we no longer ship the utility. (Ref# 22227)
Thread priorities
The QNX Neutrino Microkernel chapter of the System Architecture implies that non-root threads can never have a priority above 63. A non-root thread can't set its priority above 63, but it might run temporarily at higher priorities because of priority inheritance. (Ref# 22317)
getgrouplist()
The list of groups that this function creates still includes the group ID that you pass as the basegid argument. Typically, you pass the group number from the password file for this argument. (Ref# 15547)
mkefs
New! Under Windows, if you redirect the output from mkefs to a file, the end-of-line characters will be DOS-style (CR, LF) instead of UNIX-style (CR). (Ref# 19065)

Workaround: Under Windows, use this syntax:

mkefs buildfile outputfile
  

instead of redirecting the output:

mkefs buildfile > outputfile
  
Bessel functions
New! According to POSIX 1003.1, the Bessel functions — j0(), j1(), jn(), y0(), y1(), and yn() — should be declared in <math.h>. They currently aren't declared in any header, but the functions are in libbessel.a and libbessel.so. (Ref# 23554)

Workaround: Declare them in your program; for the correct prototypes, see the entries for these functions in the Neutrino Library Reference.

FILE* I/O functions
New! If a FILE* stream is placed into unbuffered mode (so theoretically all writes should physically happen immediately and any failures be detected), the low-level functions correctly indicate the errors, but the FILE*-oriented output functions (fwrite(), fprintf(), etc.) don't propagate these errors back as their return values. For example, if there's no space left on the disk, these functions don't indicate that an error has occurred. (Ref# 19598)

Workaround: Use the file-descriptor I/O functions instead, or call ferror() to check for errors after each call to fwrite(), fprintf(), and so on.

asctime(), ctime(), gmtime(), and localtime()
New! These functions return a time in one of two static buffers (either a tm structure or an array of type char). Calling any of these functions can change the data in both these buffers. The documentation needs to make this clear. (Ref# 24716; Ticket ID 69174)
mq
New! If you use the instrumented kernel to trace events while you're using mq, emitting _NTO_TRACE_COMM_SMSG communication-class events might cause your application to crash with an EFAULT when it calls mq_send(). We've encountered this problem on SHLE boards. (Ref# 38082)

Workaround: Filter out the _NTO_TRACE_COMM_SMSG events by doing one of the following:

  • On the command line, filter out all COMM-class messages by passing the -F6 option to tracelogger.
  • In your application, filter out COMM_SMSG messages by calling:
    TraceEvent( _NTO_TRACE_DELEVENT, _NTO_TRACE_COMM, _NTO_TRACE_COMM_SMSG);
        
  • In the IDE, filter out COMM_SMSG messages with qconn by selecting the Class Specific mode in the System Profiler Configuration dialog, then selecting the Communication tab, selecting the Event Specific mode, and then disabling Send Message.

The side effect of filtering out these events is that the IDE's System Profiler won't be able to show you any message-passing.

ELF64_R_INFO()
New! The definition of this macro is incorrect in <sys/elf.h>. It uses Elf32_Xword() instead of the Elf64_Xword() macro. (Ref# 40936)

Workaround: Edit the header file and change this line:

#define ELF64_R_INFO(s,t)	((((Elf32_Xword)(s))<<32) | ((Elf64_Xword)((t)&0xffffffff)))
  

to this:

#define ELF64_R_INFO(s,t)	((((Elf64_Xword)(s))<<32) | ((Elf64_Xword)((t)&0xffffffff)))
  

Known issues: Documentation

  • New! The telephone numbers and email addresses for Technical Support in the Welcome to QNX Momentics guide are now obsolete. For up-to-date information, see the Technical Support section in the Services area of our website, www.qnx.com. (Ref# 26700)
  • New! The documentation for startup-bios doesn't describe the -I option. (Ref# 24418)

    Workaround: Here's the description:

    -I irq
    Make irq the highest-priority hardware interrupt in the system. You can specify a number from 0 through 7 (the default is 3).

Known issues: Filesystems

fs-pkg
This filesystem isn't designed to let you use chmod or chown on “virtual” fs-pkg directories. (Ref# 9552)
fs-cifs
A CIFS server may send a NETBIOS Keepalive message to a client to demonstrate to the client that the server is still present. This message isn't typically needed, because the TCP protocol's Keepalive message does the same thing. This message may be sent after three or more hours of inactivity on the link. The fs-cifs manager doesn't expect this message and might become confused. When this occurs, user operations may permanently block on fs-cifs, and data might be corrupted. We've seen this server behavior only with Windows 2000 and Windows XP at this point. (Ref# 22226)

Workaround: Restart fs-cifs.

fs-nfs3
New! If you're using fs-nfs3 with asynchronous writes, and the server is using root-squashing (i.e. it maps root to anonymous or nobody), you can create directories and files, but when you open a file and put data in it, save, and reopen it, the file is always empty. (Ref# 25113)

Workaround: Do one of the following:

  • Use the no_root_squash option on the server.

    Or:

  • Run fs-nfs3 with the -w sync=hard option.

Known issues: IDE


Caution: If you use the CVS Checkout as... command and specify an existing directory, the contents of that directory are deleted and replaced with the checked-out files — without prompting. This is a problem in Eclipse (see bug 25783 at www.eclipse.org).

Workaround: Make sure you specify a new subdirectory as the location.


  • For QNX C/C++ projects, the Installation directory (in the project Properties dialog on the QNX C/C++ Project-->General tab) is relative to QNX_TARGET/PROCESSOR. (Ref# 15004)

    Workaround: Use a relative path for the Installation directory. For example, a path that starts with ../../../../ is relative to the root of your installation drive on Win32 hosts.

  • For MIPS only, the dietitian can't shrink the socket library because the library exports symbols that should be resolved in the C library. This problem (Ref# 12394) was fixed on all platforms except MIPS. (Ref# 15986)
  • The System Profiler sometimes fails to upload a log file when initiated from the IDE. Subsequent uploads work. (Ref# 19754)

    Workaround: Try again; it will work the second time.

  • In the System Profiler, filtering out event owners might cause the scrollbar to be set incorrectly. (Ref# 19913)
  • If you check out an existing PhAB project from CVS, the IDE starts PhAB before checking the project out. PhAB creates some directories, and then the CVS checkout says that the files already exist. After telling the IDE to replace the files with the ones from CVS, PhAB still thinks that it's the old set of widgets (empty project).

    Workaround: To check out projects from CVS, use Check out Project, and then convert the projects; don't use Check out as..., which generates invalid configurations. (Ref# 18405)

  • The IDE doesn't correctly parse compiler errors from gcc 3.3.1. (Ref# 19221)

    Workaround: Add -fmessage-length=0 to the qcc or gcc command-line options.

  • You can't currently launch a telnet session from the IDE to a target running QNX Neutrino 6.3.0. (Ref# 19282)
  • If you import a System Builder project by copying an existing .bld file from a previous installation, the project isn't properly converted. (Ref# 20073)

    Workaround: Restart the IDE after copying the .bld file.

  • The IDE has problems when projects are located in a remote (network drive) directory, and the network isn't reachable. (Ref# 11719)

    Workaround: Close any project that you created on a remote drive before disconnecting the drive.

  • In the System Information perspective, the System Blocking Graph doesn't show the Blocked Folks for clients that are Send- or Reply-blocked. The information for a process's threads might not be updated, even if the process is in the target list. (Ref# 10772, 14428)
  • Creating new variants for BSP projects can work incorrectly. As a result, the variant folder can get the wrong name, which in turn can lead to the wrong name for the resulting binary file. BSP projects also ignore any advanced properties when building. (Ref# 20268, 21661, 22123, 22145)

    Workaround: Change the folder name manually, using the Rename option in the C/C++ view. The correct directory name for the debug variant should be release_variant_name.g. For example, for the release variant ixdp2400.dll.le, the debug directory should be named ixdp2400.dll.le.g.

  • Line numbers in the Memory Analysis, Application Profiler, and Code Coverage tools are incorrect on SH and MIPS targets. On x86, PowerPC, and ARM targets, the line numbers are off by 1 if you use the stabs debugging format. (Ref# 21198, 21412)

    Workaround: For x86, PowerPC, and ARM targets, use the DWARF debugging format, by adding -gdwarf-2 option to the compile flags.

  • The IDE incorrectly lets you choose the Intel C Compiler (icc) for non-x86 targets such as PowerPC or MIPS. (Ref# 22636)

    Workaround: Build only x86 variants with ICC.

  • Linux bootp servers won't let you specify a buildfile without a leading slash. The IDE's tftp server can't find /file.ifs, but it can find file.ifs. (Ref# 18032)
  • If you edit the properties of an OS image in the System Builder perspective, the combobox of procnto variants is always empty. (Ref # 22957).

    Workaround: Type the name of the variant in the combobox. If the variant exists in the /QNX630/target/qnx6/cpu/boot/sys directory, the System Builder uses it to build the image. For example, to switch from procnto to procnto-instr when procnto is the only selection, type procnto-instr in the combobox.

  • The gcc compiler's stabs and stabs+ debug format (-gstabs or -gstabs+) can sometimes report the wrong address when analyzed with addr2line. This may cause the IDE to wrongly identify source code line numbers. In most cases, the next or previous line is identified, so it's generally obvious, but potentially confusing. (Ref# 18965)

    Workaround: Use the dwarf-2 debug format (-gdwarf-2) instead of stabs.

  • New! Opening a PhAB 6.2.1 project in the 6.3 IDE or PhAB converts it to a 6.3 project, which then won't run correctly if compiled for a 6.2.1 target. (Ref# 24298)

    Workaround: If you're using the coexistence feature in the IDE to target Neutrino 6.2.1, you should set the IDE to open the 6.2.1 version of PhAB. To do this, change the Path to Photon Appbuilder setting on the Appbuilder preferences dialog (Window-->Preferences-->QNX-->Appbuilder).

  • New! If you don't have a web browser in any of the directories listed in your PATH variable, you can't display the documentation in the IDE. (Ref# 29861)

    Workaround: Specify a browser for the IDE to use, by choosing Window-->Preferences, and then choosing Help from the list on the left side of the dialog. In the right part of the dialog, select Custom Browser and fill in the path to the browser below.

Linux-hosted IDE

  • Under Linux with GTK, if you work extensively in the IDE (e.g. switching in and out of debugging) for a few hours (four hours on average), you get a JVM termination with the following at the top of the resultant hs_err_pidxxxx.log file:
    An unexpected exception has been detected in native code outside the VM.

    This is because of a memory leak in Eclipse; we've submitted a problem report to eclipse.org. (Ref# 22396)

    Workaround: Use the following commands to launch Eclipse using the simpler (but more stable) Motif window manager instead of GTK:

    cd $QNX_HOST/usr/qde/eclipse
    $QNX_HOST/usr/qde/eclipse/eclipse -vm $QNX_HOST/usr/qde/eclipse/jre/bin/java \ 
     -ws motif -data $HOME/workspace -vmargs -Xms256m -Xmx512m &
        

    Note: We haven't tested this configuration as thoroughly as we've tested the GTK one.

  • On Linux hosts, it's possible to start multiple instances of the IDE on the same workspace, but this can corrupt the workspace. (Ref# 19384)

    Workaround: Don't start multiple instances of the IDE.

  • Serial debugging via pdebug doesn't work in some versions of Linux, including Red Hat 8 and 9. Red Hat and Suse (and probably most of the distros) run mgetty on the available serial ports by default, probably to facilitate modems and serial terminals. (Ref# 19718)

    Workaround: If you stop mgetty, serial debugging works.

Neutrino-hosted IDE

  • On some systems, moving the Help window out of focus corrupts the window contents. (Ref# 19944)

Solaris-host IDE

  • If you're using the IDE, make sure you have the appropriate patch installed to run the Java 2 SE 1.4.2 VM under Solaris. You can download the patch from java.sun.com:

    http://java.sun.com/j2se/1.4.2/download.html

  • The IDE uses Mozilla, which isn't installed by default, to display the documentation. You need to change this to hotjava; in the IDE, choose Windows-->Preferences-->Help and change the Custom Browser Command from mozilla %1 to hotjava %1.

Known issues: I/O devices

io-usb
  • In some cases when unmounting DLLs and running the usb utility at the same time, some memory allocated by io-usb isn't freed. This is a rare situation. (Ref# 21716)
  • The io-usb server crashes if you repeatedly mount and umount and plug and unplug devices attached to the port. (Ref# 21556)
devu-kbd, devu-mouse
These drivers for USB keyboards and mice aren't documented. (Ref# 22528)

Here's a summary:

Syntax:

  • devu-kbd [options] &
  • devu-mouse [options] &

Options:

-n name
The device name to use. The default is /dev/usbkbd0 for devu-kbd, and /dev/usbmouse0 for devu-mouse.
-v
Be verbose.
-w sec
Wait sec seconds for the USB stack (default: 60 seconds).
-s stack
The name of the stack to attach to (default: /dev/usb).

You need to start a USB stack before you start these drivers; for more information, see io-usb in the Utilities Reference, and “USB devices” in the Connecting Hardware chapter of the Neutrino User's Guide.

Known issues: Licensing

  • If a disk is full (on any host) when you execute QNX Momentics-licensed components, you might not get a meaningful message to alert you of the problem. Instead, you may be requested to type in your license key (but doing so doesn't rectify the issue). Check your disk and free up some space if necessary. We'll provide a clearer message in a future release. (Ref# 21116)

Known issues: Multimedia

soundfile.so, soundfile_noph.so
Loading these legacy plugins causes a SIGBUS error. (Ref# 21707)

Workaround: Use the -ae option to procnto to enable alignment fault emulation.

Known issues: Networking

npm-qnet.so
Redundant GNS servers have a window where service could be lost. If connectivity is lost to a gns process in server mode while it's acting as a redundant server, and while client gns processes running on other nodes are registering services, the server may become out of sync with the other redundant servers. (Ref# 20008)
GNS (name_attach())
Currently, GNS isn't compatible with the resource manager framework. (Ref# 20062)

Workaround: Your resource manager must handle the raw QNX messages until this is corrected.

npm-qnet-l4_lite.so
  • This DLL has many options to alter how Qnet functions (e.g. timeouts, retries, and idle times). You shouldn't use these options unless you're trying to overcome an issue related to your environment. Qnet is optimized to function with its default settings. (Ref# 21298)
  • Before 6.3.0, you could mount and umount the Qnet DLL (npm-qnet.so). Starting with 6.3.0, you can't unmount npm-qnet-l4_lite.so. The documentation needs to mention this. (Ref# 22231)
  • The documentation for npm-qnet-l4_lite.so gives contradictory advice about the bind and resolve options. (Ref# 23018)

    Workaround: Here's the correct advice:

    • The combination of bind=en and resolve=dns is invalid.
    • If you use the bind=ip option, you also need to use the resolve=dns or resolve=file option. The resolver is used to map the nodename to the IP address; you can't use the default resolver with the bind=ip option.
gns
A gns daemon can't act as both a client and server at the same time. If a local service is registered with a GNS client, the client can forward that information to redundant or backup servers; a server can't forward the information. (Ref# 21037)
fs-nfs2
If a path ends in a slash, it must be a directory. When accessing a link with a trailing slash, fs-nfs2 immediately returns EINVAL, instead of resolving the link and reporting errors such as EPERM (permission denied) or ENOTDIR (not a directory) before returning EINVAL (invalid argument). This behavior was seen as an optimization to reduce network traffic, because this kind of file access will ultimately fail. Strict POSIX behavior will be added in a future release. (Ref# 20877, 20878)
fs-nfs3
  • The fs-nfs3 filesystem has a race condition where it may become unstable if you umount your mountpoint while there are outstanding requests in progress (e.g. a write() or copy of a file). A symptom of this condition is that when you try to remount the NFS server, you get the error:
    mount: Can't mount [mount point] (type nfs) 
    mount: Possible reason: Resource busy

    If this condition doesn't go away, restart fs-nfs3. (Ref# 15078)

  • The fs-nfs3 manager can't accept write() buffers larger than 8KB. (Ref# 20810)
slinger
  • When slinger is executing a CGI script and setting the environment variables to be passed to the script, the environment variable SERVER_ROOT is set to / instead of to the directory specified by HTTPD_SCRIPTALIAS. The actual current working directory of slinger is correct; it's just the environment variable that's wrong. (Ref# 20795)
  • New! Slinger lets a remote user access files outside of its root directory (as identified by the HTTPD_ROOT_DIR environment variable) by including ../ in the URI of the request sent to slinger (e.g. http://hostname/././../../etc/passwd). (Ref# 21825)

    Workaround: Install the TCP/IP Security Patch from our website.

  • New! A large HTTP GET request-URI (greater than the value of PATH_MAX) can overflow Slinger's internal buffer and cause a fault. (Ref# 21965)

    Workaround: Install the TCP/IP Security Patch from our website.

telnetd
New! During the initialization of the telnet link, if the client sends a large number of parameters to negotiate, telnetd can overrun its reply buffer with the responses to all of the request's parameters. (Ref# 21965)

Workaround: Install the TCP/IP Security Patch from our website.

tftp
  • tftp can terminate with a floating-point exception when printing statistics from a get or put command when you're using verbose mode. (Ref# 20615)
  • tftp can fault if you press Enter at the “To” prompt without supplying the host parameter. (Ref# 20064)
rpcgen
This utility looks for the C preprocessor in the wrong place on QNX Neutrino hosts. (Ref# 8461)

Workaround: Create a symbolic link:

ln -s /usr/qnx630/host/qnx6/x86/usr/bin/qcc /usr/bin/qcc
  
TCP/IP stack (npm-tcpip-v4.so or npm-tcpip-v6.so)
  • If a socket has been completely torn down at the protocol level and the stack receives a DCMD_IP_FDINFO devctl requesting protocol-level information on that socket (e.g. the sin utility), the stack can fault. (Ref# 21549)
  • If you connect() on an unlinked or nonexistent AF_LOCAL socket, errno is incorrectly set to ECONNREFUSED instead of ENOENT. (Ref# 21664)
  • If a program calls bind() for an AF_LOCAL socket, and the path namespace entry is created, the TCP/IP stack will leak a small amount of memory, even if the path is unlinked. (Ref# 21639)
  • If a packet is smaller than the minimum Ethernet packet size, the packet may be padded with random data, rather than zeroes. (Ref# 21460)
  • The TCP/IP stack obtains a timer, which starts at time 0, from the process manager. If the TCP/IP stack and a TCP/IP application that tries to connect to a remote host start executing too soon, the TCP/IP stack may apply a time of 0 seconds to ARP cache entry structures.

    If this occurs, you may end up with a permanent ARP entry (i.e. one that never times out). You can also end up with permanent, incomplete ARP entries that never time out and that the TCP/IP stack doesn't attempt to resolve. If this happens, your host won't be able to communicate with one or (possibly) more remote hosts (i.e. the ones the TCP/IP application in the OS image is trying to reach).

    You can check for permanent ARP entries by running the arp -an command and examining the output. The only permanent entries listed should be for the IP addresses assigned to your host's interfaces; there shouldn't be any permanent, incomplete entries. If you find a permanent entry that isn't for the IP address of an interface on your host, and you didn't explicitly create a permanent entry, then you could be encountering this problem. (Ref# 21395)

    Workaround: In the buildfile for your OS image, delay the start of the TCP/IP stack or the first TCP/IP application by at least one second, by using the sleep command (e.g. sleep 1) or some other delay mechanism.

devn-smc9000
Not all IPv6 multicast protocols function properly with this driver. (Ref# 21720)
devn-i82544.so
  • If you use more than 64 Tx descriptors, the PPC version of the driver is inoperative. (Ref #22848)

    Workaround: We've temporarily changed the PPC version of this driver to use 64 Tx descriptors by default (on other targets, the default is 128). This may result in lost packets for high-throughput transmit operations.

  • There appear to be endian issues with the devn-i82544.so driver on PPC; the following values are reported incorrectly (Ref# 22854):
    • hardware checksumming: netstat -p event counts
    • nicinfo Tx/Rx packet counts.
rcp
New! This utility sets its user ID to root. It was reported that you can overrun the source/target file argument buffers in the utility, giving yourself root access. Under QNX Neutrino, rcp spawns the cp utility for local file-copying operations; it's the cp utility that faults. When rcp spawns cp, it does so with the credentials of the user who launched rcp, rather than root's. (Ref# 22002)

Known issues: Photon

PT_CB_ACTIVATE and PT_CB_ARM
These callbacks don't work with PtText and PtNumeric. (Ref# 21608)

Workaround: For a PtText, add this code:

int raw_text_callback( PtWidget_t *widget, void *data,
                       PtCallbackInfo_t *cbinfo )
{
    PtSuperClassRawEvent( PtBasic, widget, cbinfo->event );
    return Pt_CONTINUE;
}
  

When you create a PtText widget, add this code:

PtRawCallback_t text_cb = { Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE,
  raw_text_callback };
…

PtSetArg( …, Pt_CB_RAW, &text_cb, Pt_LINK_INSERT );
… = PtCreateWidget( PtText, … );
  

You can use similar code for a PtNumeric widget.

PdGetOffscreenContextPtr()
This function leaks memory on MIPS hardware. (Ref# 8065)
ptermcs
This utility core-dumps when saving. The problem is in PxTerminalBuildCharsets(): if the “internal” charset is NULL but the “font charset” is specified, it builds a bad data structure that causes PxTerminalSaveCharsets() to crash. (Ref# 19568)
phlocale
When you select a specific language, the ABLANG environment variable isn't set until you log out and back in. The documentation should mention this. (Ref# 19550)
PhAB
  • The template editor currently lets you delete or rename the widget template, but doesn't provide a way to restore the default value. (Ref# 21969)
  • If you're using bash as your shell in Neutrino, PhAB doesn't populate the list of targets when you try to build an application. (Ref# 22850)
  • New! Opening a PhAB 6.2.1 project in the 6.3 IDE or PhAB converts it to a 6.3 project, which then won't run correctly if compiled for a 6.2.1 target. (Ref# 24298)

    Workaround: If you're using the coexistence feature in the IDE to target Neutrino 6.2.1, you should set the IDE to open the 6.2.1 version of PhAB. To do this, change the Path to Photon Appbuilder setting on the Appbuilder preferences dialog (Window-->Preferences-->QNX-->Appbuilder).

PhAB for Windows
  • If you create an application, and then build it, the Make Application window has an extra unreadable character at the end of each line. (Ref# 22190)
  • If you start PhAB through the IDE on a Windows XP SP2 host, several security-alert dialogs are displayed, because the Windows XP SP2 firewall detects the background TCP/IP communication between the PhAB application and the Photon server. (Ref# 22282)

    Workaround: Configure Windows to unblock. Once you've done this, Windows won't display the security warnings when you restart PhAB.

  • In the PHINDOWSOPTS section of the Using PhAB Under Microsoft Windows appendix of the Photon Programmer's Guide, step 2 of the example gives the wrong path. (Ref# 20918)

    Workaround: Use -P%QNX_TARGET%/usr/photon/palette/grey.pal instead of -P%QNX_HOST%/usr/photon/palette/grey.pal.

  • In the Using PhAB under Microsoft Windows appendix of the Photon Programmer's Guide, the command for linking a shared object is incorrect. (Ref# 20982)

    Workaround: In both the “Custom widget development and PhAB” and the “Photon Hook DLLs” sections, change the fourth step by replacing:

    -e __cygwin_dll_entry@12
        

    with:

    -e _dll_entry@12
        
$HOME/.ph/phapps
Note that this file, which contains a list of the applications that you want Photon to launch automatically when it starts, must be executable. (Ref# 22196)
mkfontdir
If you're using mkfontdir on Linux or Solaris, make sure that your LD_LIBRARY_PATH includes the correct library paths. As well, because these operating systems have their own version of mkfontdir, you need to start the utility with the full path to start the QNX version. (Ref# 22155)

The paths for these operating systems are:

  • LD_LIBRARY_PATH should include $QNX_HOST/usr/lib.
  • Run using $QNX_HOST/usr/bin/mkfontdir.
voyager
If you use voyager with vserver on a Malta board or any other platform that doesn't have a Floating Point Unit, voyager continually fails with a SIGFPE error when it tries to load a page. (Ref# 22404)

Workaround: Rebuild the OS image so that it uses floating-point emulation, by specifying the -fe option to procnto in the buildfile.

io-graphics
  • If you don't specify a plugin, io-graphics fails. (Ref# 22489)

    Workaround: Always specify the -pphoton option (gri-photon.so is currently the only plugin available).

  • If you specify the -d and -p options for io-graphics, you must put the -d option before the -p, or else io-graphics fails. (Ref# 22670)
Alpha on PPC
If you use alpha drawing functions on PPC targets, and you draw an image to a memory context and blit it to the screen, the colors are incorrect. (Ref# 21458)

Workaround: Don't use a memory context, or draw to one memory context, blit to another memory context, and then blit to the screen.

ped
New! If you use ped on a Neutrino host, and you use a phf font such as pcs* PC Serif, pcss* PC SansSerif, pcterm* PC terminal, symb* Symbol, or tech* Technical, you'll see an extra unreadable character at the end of each line. (Ref# 22190)
helpviewer
  • New! The search index shipped with SP1 isn't complete. (Ref# 23220, 23221)

    Workaround: To regenerate the index, use the following script:

    #!/bin/sh
    
    # Remove the old helpviewer index files and run "helpviewer-index"
    # to create new ones.
    
    echo "Removing old helpviewer index files ..."
    for i in `find $QNX_TARGET/usr/help/product -name index`
    do
    op rm -rf $i
    done
    
    echo "Generating new helpviewer index files ..."
    
    /usr/photon/bin/helpviewer-index -r $QNX_TARGET/usr/help/product -t /var/help/$QNX_TARGET/usr/help/product
    
    echo "New index files created successfully"
      
  • New! If you aren't using ksh or sh as your login shell, the environment variables that the helpviewer uses aren't initialized. (Ref# 27250)

    Workaround: Set QNX_HELP_HOME_PAGE to /usr/qnx630/target/qnx6/usr/help/product/momentics/bookset.html, and QNX_HELP_PATH to /usr/qnx630/target/qnx6/usr/help/product (assuming you installed QNX Momentics in the default location).

  • New! If you run the helpviewer as one user, and you then log in as another user and search the documention, helpviewer's indexer fails with a message of “Cannot open /var/help/usr/qnx630/target/qnx6/usr/help/product.” (Ref# 25628)

    Workaround: Log in as root and type:

    rm -r /var/help/usr
      

    and then generate the index.

phditto
New! If you run gdb over phditto, gdb hangs, because the Photon server spawned by phrelay inherits phrelay's set of ignored signals including SIGUSR1, which gdb relies on. (Ref# 24817)

Workaround: Launch pterm windows using pwm's Desktop Menu (press Alt-Enter or right-click on the desktop background) instead of using the Terminal button on the shelf. Only pterm windows started by shelf inherit the ignored SIGUSR1.

Another option is to write a wrapper around gdb to reset SIGUSR1.

Pt_ARG_SCROLLBAR_WIDTH
New! Setting this resource for a PtList or for a compound widget that includes a PtList has no effect. (PR 20431)

Workaround: Attach the following callback to the Pt_REALIZED resource of the list widget:

int
list_realized_cb( PtWidget_t *widget, ApInfo_t *apinfo,
                  PtCallbackInfo_t *cbinfo )
{
    PtGenListWidget_t *list = (PtGenListWidget_t*)widget;
    unsigned short      *width;

    // NOTE: Use the width that the user set in PhAB.
    PtGetResource( widget, Pt_ARG_SCROLLBAR_WIDTH, &width, 0 );

    // This code sets the actual sizes of scrollbar(s).
    if( list->scrollbar )
        PtSetResource( list->scrollbar, Pt_ARG_WIDTH, *width, 0 );
    if( list->hscrollbar )
        PtSetResource( list->hscrollbar, Pt_ARG_HEIGHT, *width, 0 );

    // This is a workaround to make the list widget
    // position (anchor) the scrollbars correctly (with the new size).
    PtSetResource( widget, Pt_ARG_SCROLLBAR_WIDTH, *width - 1, 0 );
    PtSetResource( widget, Pt_ARG_SCROLLBAR_WIDTH, *width, 0 );

    return Pt_CONTINUE;
}
  

If you're using a compound widget such as a PtCombobox, use this code:

int combo_realized_cb( PtWidget_t *widget, ApInfo_t *apinfo, 
                       PtCallbackInfo_t *cbinfo )
{
 PtGenListWidget_t *list;
 PtWidget_t   *wp = widget;
 unsigned short    *width, list_width;

 // NOTE: Use the width that the user set in PhAB.
 PtGetResource( widget, Pt_ARG_CBOX_BUTTON_WIDTH, &width, 0 );

 // Find the list widget in the combo
 while( (wp = PtWidgetFamily( widget, wp )) ) {
  if( PtWidgetIsClass( wp, PtList ) ) {
   list = (PtGenListWidget_t*)wp;
   break;
  }
 }

 if( !wp )
  return Pt_CONTINUE;

 list_width = *width + 2;

 // This code sets the actual sizes of scrollbar(s).
 if( list->scrollbar )
     PtSetResource( list->scrollbar, Pt_ARG_WIDTH, list_width, 0 );
 if( list->hscrollbar )
     PtSetResource( list->hscrollbar, Pt_ARG_HEIGHT, list_width, 0 );

    // This is a workaround to make the list widget 
    // position (anchor) the scrollbars correctly (with the new size).
    PtSetResource( wp, Pt_ARG_SCROLLBAR_WIDTH, list_width - 1, 0 );
    PtSetResource( wp, Pt_ARG_SCROLLBAR_WIDTH, list_width, 0 );

 return Pt_CONTINUE;
}
  

Solaris-specific

qconfig
New! If you're using the default Solaris shell, you might have problems switching between different installed versions of QNX Momentics. When you run a command like this:
`eval qconfig -e -n"QNX Momentics 6.3.0"`
  

you get this error:

QNX_HOST=/opt/qnx630/host/solaris/sparc: is not an identifier
  

and your PATH isn't updated. (Ref# 20653)

Workaround: Use ksh instead of the default Solaris shell.

Known issues: Windows-specific

echo.exe
On Windows, the QNX-provided echo.exe interprets the Windows \ separator as an escape character. As a result, environment variable settings won't work if you use \ as a path separator; use / instead. (Ref# 19924)
PATH and quotation marks
Certain programs (e.g. Norton Ghost) add directories inside double quotation marks (e.g. ...;"c:\Program Files\Norton Ghost\";...) to your PATH environment variable. This causes the Cygwin spawn() function to fail, which in turn causes cp to fail when called by ln-w. (Ref# 20046)

Workaround: Modify your PATH environment variable and remove any quotation marks.

MAKEFLAGS
Microsoft Visual Studio also uses the MAKEFLAGS environment variable, but in a much different way than QNX Neutrino does. The result is that Microsoft Visual Studio no longer works after you've installed QNX Momentics.

Workaround: If you want to work with Microsoft Visual Studio (MSVS) after installing QNX Momentics on the same system, do the following:

  1. Open a command window and run cmd.
  2. Type set.
  3. Find the value for MAKEFLAGS and save it.
  4. Type set MAKEFLAGS.
  5. Do your MSVS work.
  6. To work with QNX Momentics again, type:

    set MAKEFLAGS=saved_makeflags_value

Permissions
New! If you don't have permission to write files in the top-level directory of the C drive, you won't be able to run certain tools, such as bindres and usemsg, which are needed for building PhAB applications. (Ref# 21849)

Deprecation of legacy multimedia components

QNX Momentics 6.2.1 introduced a new multimedia library based on an “addon” architecture, and legacy multimedia components (pre-6.2.1) were deprecated. 6.3.0 is the last release that includes these legacy components. The deprecated items are:

  • /etc/config/media/mpregistry
  • /usr/photon/bin/phplay
  • /usr/bin/plaympegaudio_noph
  • /usr/bin/playsound_noph
  • /usr/bin/playAudioCd
  • /usr/lib/libmedia.so.2
  • /usr/photon/plugins/mpegaudioplugin
  • /usr/photon/plugins/mpegsystemplugin
  • /usr/photon/plugins/mpegvideoplugin
  • /usr/photon/plugins/soundplugin
  • /usr/photon/dll/audiocd.so
  • /usr/photon/dll/extproc.so
  • /usr/photon/dll/mpegaudio.so
  • /usr/photon/dll/mpegsystem.so
  • /usr/photon/dll/mpegvideo.so
  • /usr/photon/dll/soundfile.so
  • /usr/photon/bin/mpegaudio
  • /usr/photon/bin/mpegsystem
  • /usr/photon/bin/mpegvideo

You should make sure that any multimedia applications that you plan to migrate to the next release of QNX Momentics use the current multimedia library. For more information, see the Multimedia Developer's Guide.


Note: QNX Momentics ships with the runtime components of the current multimedia library. You require the Multimedia TDK to develop new multimedia components.

Documentation

Assuming you've installed your development suite, you'll find an extensive set of online documentation in HTML format. Go to the help menu item (e.g. in Windows XP: All Programs-->QNX Momentics-->Documentation) or look under the following directory:

${QNX_TARGET}/usr/help/product/momentics/bookset.html

This “roadmap” page contains links to the various HTML booksets that accompany the OS (e.g. System Architecture, Programmer's Guide, Library Reference, Utilities Reference, etc.).

Technical support

If you have any questions, comments, or problems with a QNX product, please contact Technical Support. For more information, see the How to Get Help chapter of the Welcome to QNX Momentics guide or visit our website, www.qnx.com.

List of fixes

Software fixes

The problems fixed in 6.3.0 SP1 include the following:

Change Ref #
The usage message for fdisk has been corrected. 4509
64-bit division errors on SH4 have been fixed. 7927
A Photon application is now displayed in the Taskbar only if the Ph_WM_TASKBAR bit is set in the window's Pt_ARG_WINDOW_MANAGED_FLAGS resource. 8704
Compiling with optimization for SH4 platforms now works when optimizing out simple switch statements. 8722
dlsym() now resolves symbols according to the documented algorithm. 8950
The -p option to pidin now accepts a process name or ID as its argument. The -P option now works correctly. 9373
CPU-specific versions of gdb now load a CPU-specific profile. 9398
qcc now correctly handles configuration files that are actually links to other files. 9732
gdb can now successfully read memory that straddles a page. 10120
An optimized-out switch statement no longer causes the compiler to crash. 10467
The mem_offset() and mem_offset64() functions now return the correct offset when passed a pointer addressing the syspage (i.e. via _syspage_ptr) rather than return an error. 10862
Failed mmap() calls no longer leak memory. 11408
Untagged shared memory images are now displayed properly in phindows and phditto. 11489
phindows now handles spaces in its command-line options properly. 12083
Text boxes in Voyager no longer lose focus when scrolled off-screen. 12713
You can now scroll the code-completion window in the IDE running on Neutrino. 13933
The abs() function now has the correct prototype for use with C++. 14582
The icons in the IDE's System Builder projects now indicate the different types of files. 14586
You can't select text anymore in multiline-text (PtMultiText) widgets that aren't editable. 14600
The IDE's Help-->Software Updates-->New Updates command looks for updates for Eclipse, but no longer looks for any on our website. 14901
Spaces are now handled correctly in search paths for System Builder projects. 15040
The redundant Suppress Reset Vector control was removed from the Properties dialog in the System Builder. 15267
ping, ping6, and ftp no longer use floating-point math to calculate statistics. 15324
You can now mount fs-cifs mountpoints within an existing fs-cifs mountpoint. 15452, 21532
Combo boxes now work properly in the IDE running on Neutrino. 15465
Phindows operations are now smoother. (Ticket ID 61745) 16215
rcp no longer fails on filesystems that don't support truncate(). 16487
If you expand and collapse an event file in the IDE's System Profiler, the editor now scrolls correctly. 16796
Scrolling the Tasks view now works cleanly in the IDE hosted on Neutrino. 17070
PhAB now works properly with the Continuus version-control system. 17144
Guard pages are now properly added and removed by mmap() and munmap(). 17165
ntpd can now adjust the time backwards in very small increments. 17593
The rsrcdbmgr_attach() function now works correctly on all targets. 17784
If you call mmap() with the MAP_NOX64, the memory area is now correctly prevented from crossing a 64KB boundary. 17922
The Code Coverage tool now works on binaries created with gcc 3.3.1. 18026
The list and vector C++ library classes now compile properly. 18061, 20272
The 6.2.1 version of libph.so.2 is now shipped for Neutrino hosts. 18109
The Photon Clipboard now works with applications that don't use widgets. 18293
mkefs now has a maximum path length of 1024 bytes. 18309
mkifs now handles long filenames properly. 18340
The System Information view now remembers its refresh rate after you restart the IDE. 18433
New! On Windows, gdb now uses a larger allocator space for large projects. 18569
The qde utility, which launches the IDE, now has a usage message and documentation. 18635
We now ship hostname.exe for Windows hosts. 18645
If you formerly called pci_attach_device() more than once with the same device handle, the function disabled the device. Now, pci_attach_device() disables the device only if the flags you pass to both calls are different. 18797
ksh now works on big-endian MIPS targets. 18801
PNG image transparency is now displayed properly in PhAB on Windows. 18808
The kernel no longer faults on SC400 boards. 18836
Some of the cross-architecture binutils (such as nm for MIPS running on an x86 host) leaked memory in 6.3.0. This has been fixed. 19012
Using mount with invalid arguments no longer silently fails. 19039
The IDE now properly controls PhAB's build targets. 19054
mkimage is now included in all host packages. 19075
The IDE System Profiler's timeline view now scrolls up, if necessary, to ensure that some data is displayed. 19087
You can now manually enter the full path to a BSP package in the IDE's BSP Import dialog. 19121
The IDE's System Builder now supports projects that have more than one buildfile. 19122
Calling mmap() with a bad FD no longer causes a kernel fault. 19126
The IDE no longer leaks memory when you're editing C/C++ files. 19153
Code that includes <math.h> now longer produces warnings about the deprecated attribute. 19155
The IDE now builds the Graphical and Input DDKs properly. 19168
The devn-smc9000 driver no longer crashes under heavy traffic. 19170
find now prints correct inode numbers on non-x86 platforms. 19172
A small memory leak in npm-qnet-compat.so has been fixed. 19242
On Windows, deflate now cleans up its temporary files. 19278
In the IDE's System Profiler perspective, a right-click now changes focus to the clicked view. 19302
Deleting a second instance of a code coverage session could, under some circumstances, cause an exception. This has been fixed. 19309
mmap() calls now work normally when you're single-stepping through a program with gdb. 19351
Under heavy loads, umount formerly could SIGSEGV a devb-* driver; this has been fixed. 19387
You can now switch CPUs on an SMP system in the IDE's System Profiler perspective. 19415
The IDE now preserves the positions of macros in common.mk files. 19424
The IDE's System Builder now locates files that you specify with an absolute path. 19426
System Builder's Serial Terminal Clear Terminal button now properly clears the terminal. 19435
The data cache on SHLE is now properly invalidated on requests for PROT_NOCACHE memory. 19459
On an SMP system, if two threads both access lazily mapped memory (e.g. stack) at the same time, one thread would successfully access the memory, but the other thread would receive a SIGSEGV signal. This is now handled properly. 19483
dhcp.client can now handle arbitrary options through the /etc/dhcp/dhcp-options file. 19509
Interrupt hander Entry and Exit events in the IDE's Trace Event Log view now have icons associated with them. 19524
The usemsg utility now properly formats the DATE string on internationalized Windows hosts. 19561
The QNX_CONFIGURATION environment variable is now always set. 19585
System Builder's System Files property panel now lets you add override files. 19599
The IDE's System Builder perspective now automatically rebuilds projects if you change any properties. 19601
The PPPD dial-on-demand feature now works when used in combination with the persist pppd option. 19667
The devn-ne2000 driver no longer causes a ENOBUFS error under a heavy traffic load. 19670
In the IDE's System Profiler, the event selection is no longer reset when focus is returned to the window, and repeatedly using the Find command no longer causes Find to stop working. 19694, 20629
Selecting many threads in the Trace Definition dialog no longer crashes the IDE. 19695
Using the debug procfs interface to read memory from io-net (with Qnet loaded) on a remote node no longer causes a lockup. 19697
The libc version of alloca(0) now returns a usable address instead of NULL. This means that the libc version and the builtin gcc version now behave the same. 19701
Removing files from an EFS project in the IDE's System Builder is now faster. 19711
The process name list in the IDE's Target Navigator is now updated when new processes are detected. 19712
io-char no longer incorrectly treats a VINTR character and a physical line break as the same event. This means that the semantics of the ISIG, BRKINT, and IGNBRK flags are now honored. 19736
The IDE can now import gcc code-coverage data without failing. 19738
The IDE no longer allows you to enable the Code Coverage tool for multiple build variants. 19768
In the IDE, you can now add object files from a simple project using the Extra Object Files category on the Linker tab under project properties for a C/C++ project. 19770
phlocale now correctly displays the time as AM or PM. 19801
Menus in Photon no longer ignore the first click. 19946
An optimization error in gcc 3.3.1 that made the compiler fault on BSP and DDK code has been fixed. 19949
The System Builder's Serial Console in the IDE now remembers the last used transfer protocol. 19971
System Builder's Serial Console Image Transfer's Cancel button now has the correct icon. 19972
The <kvm.h> header can now be compiled with C++ applications without resulting in an error due to undefined references. 19974
The devg-radeon graphics driver has better support for newer laptops with different implementations of Radeon chipsets and BIOSs. 19976
Horizontal scrolling of a Voyager window no longer corrupts the display when you're using the devg-i810 graphics driver. 19980
Phindows and phditto now feature write-ahead draw buffers that increase performance on a modem connection. To use this feature, specify the -N option for Phindows and phditto. 19986
You can now specify static linking for PhAB projects. 20000
In the IDE, files now inherit the Type of Build property from their project. 20001
In the Neutrino-hosted IDE, the BSP description text is now displayed when you import a BSP. 20041
In the IDE's System Builder, opening a Terminal window no longer causes continuous CPU usage. 20044
Multimedia: video now displays properly on big-endian machines. 20047
The dhcp.client is no longer missing the DOMAIN and NAMESERVER2 environment variables in the dhcp-up script. 20093
A driver that takes over an interrupt from a mini-driver using InterruptAttach() with the FLAGS_END bit set in the flags argument no longer causes “out of interrupt event” messages. 20110
Slinger CGI no longer sends corrupted data in response to POST requests. 20118
When deleting a build variant in the IDE, the variant's folder is now deleted as well. 20134
gcc 2.95.3 now defines __ELF__. 20146
On 32-bit wide Intel flash, if an attempt to access flash using a 16-bit aligned address failed, the flash driver used to crash when it reset the hardware. The reset callback now aligns the addresses properly. 20151
The IDE's Makefile parser now supports \ line continuations. 20173
You can now expand this in the IDE Debugger's Variable view. 20183
Error markers in the IDE's C/C++ editor sometimes appeared in the currently displayed file, even if it wasn't the file that contained the error. This has been fixed. 20197
TEXTREL sections are now marked correctly in shared objects. 20210, 20179
The pcterm20.phf glyph 0x00 now contains all zero bytes. 20229
In the PtTty widget, the Pt_ARG_TTY_INPUT resource no longer accepts a value larger than will fit in an unsigned short, and no longer overwrites Pt_ARG_TTY_INPUT_WRITTEN. 20238
Drawing filled polygons with more than 248 points using HW acceleration with devg-coral no longer causes the graphics driver to lock up. 20242
The devg-coral graphics driver no longer draws spurious pixels when drawing large unfilled polygons using hardware acceleration. 20244
Pasting license text into qnxactivate's Add License Key on Linux now works correctly. 20248
gl-mesa.so is no longer missing a dependency on libm. 20257
The startup for the PPC BookE board no longer fails. 20263
devf-*: when several blocks are corrupt, the flash filesystem no longer turns them all (incorrectly) into spare blocks. 20312
netstat now uses UDP to resolve names rather than TCP. 20332
The IDE's property pages now refresh properly when switching configurations. 20345
PhAB: the Pt_PREVENT_FILL flag is now an option in the flag editor for widgets that use the Pt_ARG_BASIC_FLAGS resource. 20369
mkimage now supports flash filesystem version 3 (FFS3) images. 20386
The IDE now saves automatically when “Compile Selected” is used. 20390
3D acceleration now works with devg-coral. 20412
The devb-umass driver now supports Msystems DiskOnKey. 20415
PtFileSel and PtFileSelection(): the icon for a closed folder and the icon for a symbolic link to a folder are no longer identical. 20425
The stdio library now contains fseeko64() and ftello64(), 64-bit variants of fseeko() and ftello(). 20437
The libmmedia multimedia library can now handle MP3 files that have ID tags in the header. 20438
The Mozilla server can now handle a graphic-mode change without corrupting its display. 20441
gcc 3.3.x no longer ignores __attribute__((__aligned__())) in typedef declarations. 20443
In the IDE, the first automatic build of a new System Builder project now gets logged properly. 20457
In Voyager, the Save Target As right-click menu option now works. 20476
Multimedia: wav_parser.so now processes truncated .wav files. 20477
The System Builder now has a Rebuild Project button. 20494
When you're setting the properties of a pterm window, the radio button for the character set appears in the correct location in the Customize Font List dialog. 20502
The gdb command data-list-children now lists private and protected members properly. 20503
Formerly, if you built code with one tool chain, changed to another, and then rebuilt the code, parts of the names of the binaries and variants were repeated. The names are now correct. 20508
Closing the IDE's System Profiler no longer results in a null-pointer exception. 20540
Voyager client's menus and context menus are compatible with different browser engines. 20549
The devu-ohci.so driver can now detect devices on ARM targets. 20555
In vserver, a multitext input in a form is now displayed correctly when scrolled. 20565
If you haven't set your HOME environment variable, the SP1 installer for Windows sets it to be the directory where you installed QNX Momentics (e.g. C:\QNX630). Setting this variable prevents GDB from later becoming unresponsive. 20566
name_attach() now returns EEXIST instead of ENOTSUP if the local name already exists. 20570
If you call shm_ctl() with flags of SHMCTL_ANON | SHMCTL_PHYS, the function now correctly returns physically contiguous memory. 20578
Performing a push_back() on a vector of booleans compiles correctly without warnings. 20590
System Builder fields now clear trailing whitespace. 20606
When installed on its own (without QNX Momentics), Phindows no longer prompts you to enter the license key every time you run it. 20620
PgGetGraphicsHWCaps() now works on a PPC with the devg-smi7xx driver. 20622
PhAB no longer crashes if you open a resource editor for a widget, delete the widget, and then apply the change. 20623
C++ compile namespace issues and problems with _FILE_OFFSET_BITS=64 have been resolved by including _FILE_OFFSET_BITS mappings within a namespace std wrapper. 20624
devg-smi7xx driver provides clear pictures with shared memory contexts in 8-, 15-, and 16-bit color modes. 20630
Images are free from distortion with the devg-smi7xx driver in 24-bit color mode. 20633
ldbootstrap no longer displays an error while building x86 BSPs. 20635
The devg-smi7xx driver no longer has problems with alpha blending. 20636
The IDE's Container Import Wizard can now find projects that were saved outside of the workspace. 20637
The devn-i82544 driver can now read and load status registers accurately and achieve accurate hardware checksum counts. 20643
The project-level search paths now work properly in the IDE's System Builder. 20645
Breakpoints set before main() now work on SH little-endian with gcc 3.3.1. 20657
Photon's root region now has the Ph_FORCE_BOUNDARY flag set to allow the cursor to point at the correct regions. 20682
In Photon applications, running PtMainLoop() in more than one thread no longer leaks memory, because destroyed widgets are now properly freed. 20684
icc now correctly compiles some system headers, such as <x86/neutrino.h>. 20686
New! The IDE's TFTP server now supports the tsize option. 20689
In PhAB, editing the resources of multiple selected widgets no longer causes crashes. 20694
In the IDE, call-count data is now correct in the Application Profiler's Call Information view. 20696
sigsetjmp() is now a macro, as required by the C++ standard. 20701
Hover help now works in the C/C++ editor in the IDE on Neutrino. 20702
The TraceEvent() prototype for _NTO_TRACE_ALLOCBUFFER has been corrected. 20714
In the Neutrino-hosted IDE's Set QNX Build Environment window, the Includes and Defines are displayed properly. 20716
You no longer get a runtime error when changing the compiler type in the Set QNX Build Environment window. 20720
The TI OMAP 5912 OSK (plus all ARM boards) now reports connected USB devices properly. 20723
The TI OMAP 5912 OSK buildfile includes commands for audio-driver operations. 20726
The helpviewer's search no longer considers -, +, and . characters to be delimiters, so that it can now find terms such as io-net. 20730
libasound performs audio rate conversion properly. 20750
In the IDE, if you change the properties of an embedded filesystem image, the System Builder now rebuilds the project properly. 20751
You can once again use mkefs to build a version 2 flash filesystem image, by specifying the -t ffs2 option. The utility displays a warning indicating that this type of image is deprecated. 20752
qcc now stores intermediate files in a /tmp directory. 20785
The stack size for the TCP/IP stack has been increased to 4096 bytes. 20789
Container projects have an All option for project variants. 20797
The devg-smi7xx driver no longer locks up in 8-bit color mode. 20805
The Windows installer now creates a /tmp directory with proper permissions, if it doesn't already exist. 20816
Qnet now clears all session data in the kernel when it terminates. 20817
pci-bios IRQ functions properly with USB chips. 20830
You can now uncheck the Switch to this tool's perspective on launch option in the IDE's Debug Launcher. 20836
ppc85xx_set_freqs() now uses the proper divisor to get the RTC frequency. 20837
io-hid and hidview for SHLE are now included in SP1. 20843
The Global Name Service manager caches a list of managers and reuses a cached entry if an application looks up a service more than once. If any of the managers in the list crashes, GNS now tries the next server in the list instead of failing. 20846
If you're running Voyager with the Mozilla server and you change graphics modes, the browser's contents are now correctly updated. 20849
In PhAB for Windows, adding a PtWebClient widget to a project no longer causes a dlopen() error on the console. 20868
The IDE now passes NDEBUG to subprojects when building a container project. 20871
The devg-s1d13806.so driver no longer locks up if high graphics activity starves the audio driver out of DMA. 20872
In Photon applications, calling RtTimerDelete() from the timer's callback now frees the timer's control structure. 20874
The devg-coral driver now blits properly in a web browser. 20879
You can now step into class methods that are defined in header files. 20880
Statistics generated as CSV files now format the time as a raw number of nanoseconds. 20887
In the IDE, you can now disable breakpoints in shared libraries. 20902
The devn-i82544 driver's receive side is no longer broken on PPC; default values have been loaded in an Rx control register. 20915
In the IDE, you can now select the project file or the project directory when importing a Container project. 20916
In the IDE, the Cancel button changes to Ignore when you're importing a Container project. 20917
When building container projects in the IDE, failures that happened on underneath projects are now reported properly at the container-project level. 20920
The IDE no longer has problems launching application from the Filesystem Navigator on little-endian targets. 20921
The IDE's log messages have been improved for building container projects. 20922
In the IDE, you can now specify the default build actions for QNX C/C++ projects by opening the Preferences dialog box, then choosing QNX-->Container properties. 20924
Build variants are imported properly from Container projects. 20925
You can now import projects with directory names that are different from the project name while importing Container projects. 20944
The target for Container projects is now preserved when importing the project. 20947
In the Neutrino-hosted IDE, you can now drag a fast view back and forth properly, and the IDE remains responsive to mouse operations. 20954
qcc now skips the preprocessing stage when calling icc, unless you explicitly request it by using the -E or -P option. 20955
In the Neutrino-hosted IDE, if you change line-number colors, the line numbers are no longer drawn in the Preferences dialog. 20956
In the Neutrino-hosted IDE, the cursor icon now changes correctly when you drag a view after creating a new workspace window. 20958
In the Neutrino-hosted IDE, the Signal Information view properly draws the owner's column for a multithreaded process. 20971
In the Neutrino-hosted IDE, the editors tabs are now displayed and refreshed properly. 20973
In the Neutrino-hosted IDE, tabs for stacked views are now properly drawn and refreshed. 20975
Some general refresh/redraw issues have been fixed in the Neutrino-hosted IDE. 20976
icc -gcc now works with code using <stdarg.h> or <varargs.h>. 20981
You can now build custom widgets and use the Photon hook properly in PhAB for Windows. 20982
The allocation-trace data in the IDE's Memory Events view is now displayed correctly. 20989
The qconn_prio option for setting qconn's priority now works. 20990
The page directory allocation on x86 machines is now correctly always done from the first 4 gigabytes of memory. 20995
In the Neutrino-hosted IDE, the Launch menu on the download tab no longer obscures the Use unique name toggle. 20999
The Phindows window doesn't remain always on top once you leave kiosk (full-screen) mode. 21009
Phindows now respects its disk-cache limit setting. 21025
MP3 files with an invalid ID3 tag are now played at the correct speed. 21029
A race condition that caused the instrumented kernel to fail on the Renesas Biscayne board under high interrupt load has been fixed. 21039
Exiting the phlogin window no longer causes Phindows to hang. 21041
The System Builder Projects view no longer shows C/C++ projects, just the open System Builder projects. 21068
The System Builder now has an option for clearing the System Builder Console before building. 21073
PhAB no longer crashes when you click the column header in the Callbacks already defined dialog and there are no callbacks listed. 21079
io-char no longer discards 0x00 characters when it's in edit mode. 21082
io-char now correctly handles IGNPAR; if IGNPAR is set, io-char ignores parity errors. 21083
We fixed a memory leak in procnto that could have caused critical allocations to fail. 21091
gcc 3.3.1 with the -O3 and -fPIC options now correctly compiles C++ code. 21094
A race condition that used to make Qnet fault io-net has been eliminated. 21119, 21406
The iofunc library now honors the IOFUNC_MOUNT_32BIT flag, in order to protect resource managers that don't support 64-bit file access. 21122
The IDE no longer loses build-variant settings when you convert a 6.2.1 workspace into 6.3. 21125
The bootpd utility is now shipped in the core QNX Momentics release. 21126
bison's support files (bison.simple and bison.hairy) are now installed on non-Neutrino host platforms. 21138
In PhAB for Windows, the single and double underline icons in the Font selection dialog are now correct; they're no longer identical. 21142
usemsg no longer fails when the pinfo file is write-protected. 21144
elf.boot now uses the correct ldrel command-line options to allow 4 MB pages. 21151
Extensive allocation of uncached memory can cause extra pressure on certain ranges of memory used to map and fulfill these requests in low-memory situations. This extra pressure on selected address ranges no longer results in premature allocation failures. 21156
In the IDE, you can now save project properties even if the project's directory has been renamed. 21158
Breakpoints now work with gcc 3.3.1 on SH. 21164
The icc configuration files are now fixed; shared libraries created with the icc compiler work properly. 21173
You can add proxy ARP entries via the arp utility again. 21179
If you try to mount an image filesystem, but you specify an invalid physical address, procnto now returns an error instead of crashing. 21183
In the IDE, you can now choose nondefault C++ libraries for use with the icc compiler. 21187
In the IDE, build properties for source files are now inherited from their containers. 21191
<netinet6/in6.h> now compiles cleanly in C++ code. 21204
The IDE's Code Coverage now works on projects that aren't in the standard workspace directory. 21207
The devb-eide now supports SiS MuTIOL-compliant chipsets (SiS962/963/964/965). 21212
The gcc 3.3.1 compiler now correctly handles alignments set via attribute(aligned()). 21218
If you don't choose a variant in the IDE's project properties dialog, you now consistently get a warning. 21219
mixer no longer faults on SHLE targets. 21229
The Tulip driver (devn-tulip.so) can now autonegotiate with Macronix adaptors. Also, different multicast buffer sizes for Macronix chips now make multicasting possible. 21241
The mass-storage device driver (devb-mass) now works with Lexar, Phison, Teac CD, and Msystems Diskgo USB flash devices. 21242
The traceprinter utility now prints the complete log on Windows host. 21243
The partition information for the devb-umass mass-storage driver now appears on Renesas Big Sur/Amanda. 21251
Linking an application and solib against libcpp.so.3 no longer causes runtime link errors. 21260
io-char now properly handles software flow-control commands when the terminal is also controlling the flow. 21272
Using the float type with gcc 2.95.3 no longer causes memory corruption on SH4 platforms; see Changes: Compiler and tools,” above. 21275
QNX C/C++ projects no longer cause an internal error in the IDE on Linux. 21288
On FFSv3 flash filesystems, an lseek() after a chsize() (ftruncate()) now returns the correct end-of-file size. 21303
The basic player applications (phplay and mmplay) now run on SH4 platforms. 21306, 21310
You no longer get an internal error when converting a C/C++ project to a QNX project in the IDE. 21315
The devn-speedo.so driver now works properly on SH4 targets. 21324
SH4 now flushes the cache properly when it creates shared objects. 21335
cam-cdrom no longer leaks memory in DCMD_CAM_CDROMSTART, DCMD_CAM_CDROMSTOP, DCMD_CAM_CDROMPAUSE, DCMD_CAM_CDROMRESUME, DCMD_CAM_CDROMPLAYTI, and DCMD_CAM_CDROMPLAYMSF devctl() commands. 21340
phrelay no longer crashes in PfExtentComponents() on SH4. 21343
On MIPSLE, the mpegs_parser.so no longer SIGSEGVs mmplay when playing an MPEG1 system. 21345
mpegs_parser.so doesn't make applications SIGSEGV anymore on ARMLE. 21352
Pt_CB_GOT_FOCUS and Pt_CB_LOST_FOCUS callbacks now work correctly in PtNumeric* widgets. 21357
<sys/cdefs.h> no longer removes all __attribute__ functions when using icc. 21361
TCP/IP no longer hangs on the Freescale MPC85x0 ADS board. 21363
In the IDE, you can now successfully copy a file to the target, even if the file already exists there. 21381
devn-smc9000 no longer stops transmitting under load. 21392
Using the float type with gcc 3.3.1 no longer causes memory corruption on SH4 platforms; see Changes: Compiler and tools,” above. 21408
When you terminate pppd, the created PPP interface is now destroyed correctly, so it's no longer listed when pppd isn't running. 21418
System Builder: Importing a QNX Source Package into a BSP no longer generates a fatal exception. 21421
While slaying devu-mouse or devu-kbd, the driver no longer faults. 21422
The io-usb server formerly could fault if a USB client driver detached from a device without aborting active transactions. This has been fixed. 21424
The --warn-shared-textrel option to ld works again. 21425
pppd used to leak memory when used in on-demand mode, as a connection was dropped and reestablished over time. This has been corrected. 21427
USB client drivers no longer fault on startup. 21432
io-usb no longer faults on MIPSBE SMP targets when two USB commands run at once. 21439
io-usb on MIPSBE SMP targets now correctly locates devices after you reboot the system. 21441
If you use gcc 3.3.1 to compile a program, gdb no longer runs ready when you step into a cout() function and get a type from _0k. 21433
io-audio no longer faults if you start it without loading a driver. 21443
io-audio no longer faults on SHLE platforms when clients run at different priorities. 21444
Multidimensional arrays are now displayed correctly in the IDE's Debug Variable view. 21446
In the Neutrino-hosted IDE, the Properties build variant tree view is no longer corrupted when you added a new build variant. 21451
On all SH4 systems with multiple-way cache systems, the system formerly could incorrectly report an out-of-memory condition under low-memory conditions. This has been corrected. 21452
The color rendering on PowerPC for 16 bits/pixel color depth has been corrected for the PmMem*() functions. 21468
If an unexpected RPC response “NFS NULL” packet arrived while there was a pending open() from a client application that the server hadn't yet responded to, fs-nfs2 or fs-nfs3 formerly could fault. This has been corrected. 21480
PhAB's Text translation editor no longer loses translation information if you click Save and then Save and Close. 21482
The IDE's QNX C Library and QNX C++ Library project properties now correctly retain the library version. 21483
Passing bad values to msync() no longer makes a procnto thread loop forever, faulting. 21484
In the IDE's System Profiler, Interrupt Handler events now have owners displayed in the Trace Event Log. They're also now displayed in the timeline view, and search markers are drawn when you search for any of the items. 21496
mmap() now handles errors from the resource manager when you're mapping a file. 21521
PtHelpUrl() now brings an already running helpviewer to the current console. 21534
When the devu-ehci.so module aborts transactions, it now forces the hardware to refresh its cached schedule, so that the hardware no longer issues tokens on the USB bus for the aborted transactions. 21545
Formerly, when devu-ehci.so enqueued a transaction while some other transaction completed and was being processed, it was possible for the completion code to complete the transaction currently enqueued for a device. This has been fixed. 21546
Clients of devu-ehci.so are now notified of a completed transaction, without waiting until a subsequent USB transfer occurs. 21547
The IDE no longer crashes when you open included header files in a project that uses ICC 8.0 as the compiler. 21548
The io-audio process no longer shows some activity (CPU usage greater than 0) after mmplay has played a file to the end. 21558
PhReleaseImage() now checks to see if the alpha map is in shared memory and releases it appropriately. 21562
The graphical version of qnxactivate no longer results in errors on Debian Linux (Ticket ID 66645). 21563
In the Neutrino-hosted IDE, the project name no longer includes extra characters. 21588
fs-nfs3 no longer locks up inodes if there's a problem with permissions. 21599
The IDE's make builder now properly interprets a trailing backslash at the end of settings of environment variables. 21604
On USB hubs on Renesas Big Sur/Amanda, USB Request Blocks (URBs) now automatically abort when the usb utility detaches from the stack. 21624
librpc.so no longer corrupts other threads' local storage. 21657, 21775
In the IDE, hover help is now displayed on QNX Neutrino hosts. 21667
We fixed a potential security problem with pppoed; see Changes: Protocols,” above. 21675
vserver used to crash continuously on the Renesas Biscayne; it no longer does. 21677
ped no longer crashes with a bus error on the Renesas Biscayne. 21679
Several screensavers, including phattract, phsplines, rocks, and spheres now work correctly on SH4 targets. 21681, 21683, 21686, 21792
calib no longer crashes with a bus error on the Renesas Biscayne. 21687
cpim no longer crashes with a bus error on the Renesas Biscayne. 21688
kpim now displays a message if the definition files are missing. 21689
vserver.file no longer crashes when running helpviewer on the Renesas Biscayne. 21690
The IDE's Filesystem pane now works for EFS-only projects. 21693
<sys/cdefs.h> now correctly defines __deprecated__ when it isn't compiled with gcc. 21695
The helpviewer no longer crashes with a memory fault if you move it and then click the restore button on SH4 targets. 21696
mixer no longer crashes with a bus error on the Renesas Biscayne. 21697
phview no longer crashes with a memory fault on SH4 platforms. 21698
Print preview no longer crashes for a ped text file on the Renesas Biscayne. 21700
Entering into Photon direct mode used to fail, due to an error in the size of the region data used for a region change. This has been corrected. 21708
nfm-bpf.so no longer faults on SHLE or MIPSBE platforms while multicasting. 21715
In the IDE, if you check the Generate Map File checkbox under Properties-->QNX C/C++ Project-->Linker, and you're using icc as the compiler, the application no longer fails to build. 21722
PtWidgetInsert() now correctly moves the widget's region to the correct place in the region hierarchy. 21724
Characters don't disappear anymore in the Helpviewer when you're highlighting strings that start with 0x0. 21725
In the IDE, changing the build variants or compiler type no longer changes the shared library type to static. 21734
PxWriteImage() no longer crashes in 8-bit color mode. 21746
ntdp now synchronizes the time correctly. 21766
Print Preview no longer crashes with a SIGSEGV when you try to view a text file in ped on SHLE targets. 21811
mkfontdir is now shipped for all host platforms. 21830
ntox86-ld-2.10.1 now has execute permissions on Linux and Solaris. 21833
helpviewer-index no longer crashes on PPC targets. 21835
PhAB no longer crashes when creating a PtContainer widget (Ticket ID 66945). 21837
procnto-600-smp no longer crashes when you're using SMP mode and debugging a program in the IDE. 21852
Anti-aliased fonts now show up in a memory context. 21856
The devc-ser8250 no longer lets you add data to the canonical buffer when the buffer is full. 21859
PhRegionChange() no longer leaks memory if you call it with Ph_REGION_DATA set and a nonexistent region ID (Ticket ID 66610). 21860
The IBM 440 board now boots, even if it has more than 256 MB of memory. 21870
You no longer get an error message when you use a PtWebClient widget in PhAB for Windows. A stripped-down version of PtWeb.dll is available under Windows, but it can't connect to any web servers. 21909
qcc now correctly reallocates memory when building new spawned names with .exe, .com, and .bat extensions. 21921
The ln-w utility now implements the functionality of symbolic links; there's a new -s option for creating them. 21924
Environment variables are now displayed in the IDE's Process Information view. 21964
Phindows no longer displays warnings when you start it on Windows 98. 21976
mmplay no longer shows a blank area the first time that you play an MPEG video. 21978
Canceling a download no longer causes Voyager to crash. 22036
In the IDE's System Profiler, you can now scroll the Trace Timeline when you've zoomed in. 22143
PhAB no longer crashes when you try to add menu items. 22146
We corrected an error that could cause flash filesystems to become deadlocked while synchronizing filesystem updates or renaming a file. 22161
We removed a spurious free() in the flash filesystem code that could have corrupted the heap. 22176
Hover help in the IDE now displays the correct information. 22189
The pin utility is now shipped for ARM targets. 22239
If you use gcc 3.3.1 to compile a C++ program that includes try and catch, the program no longer crashes on SHLE targets. 22247
Running many occurrences of make on an SMP system no longer ties up procnto-smp. 22300
gcc 2.95.3 no longer hangs when you use the -O2 or -O3 option. 22316
In the debugger on MIPS and SH, if you single-step from one instruction onto an instruction where you have a breakpoint set, the second instruction is no longer left as a breakpoint trap instruction. 22392
gcc 3.3.1 now correctly performs 64-bit division on SHLE targets. 22433
The IDE's System Builder now uses an extension of .srec instead of .ifs when you're creating an S-record image. 22537
PhAB used to crash if you entered test mode and your application had a container with one widget in it. This has been fixed. 22540
mmplay no longer locks up if you queue an mpv file to it before the previous mpv is finished. 22548
In gdb, you can now successfully step from within a shared library to another function. 22622
New! The permissions for the default /etc/rc.d/rc.local file are now 750 (read, write, execute for the user; read, execute for the group; no permissions for others). 22665
Moving a large image in PhAB for Windows no longer causes Photon to crash. 22832
Double-clicking on the Panel Titles resource no longer causes the Neutrino-hosted PhAB to crash. 22935
mmplay no longer crashes if the amount of available memory is low. 22946
The IDE's Code Coverage tool now works correctly on programs that have been compiled with gcc 3.3.1. 22977
New! The IDE no longer omits the lines for the postbuild target when it generates common.mk. 25609

Documentation fixes

The documentation in SP1 includes the following fixes:

Change Ref #
The procnto docs now list all supported SMP platforms. 9879
The did option for devb-ncr8 is now documented. 12152
Valid characters for a hostname are now documented. 12176
The ERESTART note in the MsgError() docs have been clarified. 14298
The description of sigwaitinfo() has been improved in the Neutrino Library Reference. 14892
The MsgReply*() docs now indicate that the status argument to shouldn't be a negative number. 15074
The snd_ctl_mixer_*() functions are now documented. 15196
The procmgr_daemon() docs now indicate that the parent process' SIGCHLD siginfo_t information isn't useful. 15228
The font name in the PfDynamicLoad() example has been corrected. 15247
The documentation for getdomainname() now states that it can return a truncated name. 15333
We clarified the documentation for the iofunc_*_default() functions. 15466
SHMCTL_LAZYWRITE is now documented. 15549
dumpefs is now documented. 15794
The FSF copyright for tic, infocmp, and clear has been added to the documentation. 15988
The timeslice for round-robin scheduling (SCHED_RR) is now documented as 4 times the clock period. 16028
The mq_notify() docs no longer suggest using SIGEV_INTR as a notification type. 16298
The summary in the sysctl utility's documentation has been updated. 16366
The Returns section in the docs for freeifaddrs() has been corrected. 16396, 20446
The shutdown docs have been clarified. (Ticket ID 62743) 16517
The IDE User's Guide now documents problems associated with multiple developers using the System Profiler perspective on a shared target system. 16697
The documentation for pppd now explains why a signal sent to it can terminate the parent process. 16848
We clarified the documentation for pthread_spin_lock(). 17090
The method of connecting to a remote Neutrino or QNX 4 Photon session with phditto is now documented. 17208
The docs for mallopt() now describe the MALLOC_FILLAREA, MALLOC_CKCHAIN, and MALLOC_VERIFY options. 17434
The gcov, gprof, and mksbp utilities are now documented. 17542
The documentation for setenv() now has a caveat that suggests using putenv() to avoid a memory leak. 17628
The description of the regmatch_t structure is now correct in the documentation for regexec(). 17704
The -c option for io-net and the cache= option for the full TCP/IP stack (npm-tcpip.so) are now documented. 17814
The documentation for io-blk now has more information about the different levels of the commit option. (Ticket ID 64005) 17857
The documentation for dumper now includes the -s and -w options. 17927
The documentation for the spawn*() functions has been updated to indicate that the child process can examine the environment passed to it, not its parent's environment. 17932
The documentation for spawn() and spawnp() now includes descriptions for the SPAWN_EXEC and SPAWN_NOZOMBIE bits in inherit.flags. 17933
The examples in the “Handling Interrupts” section in the Writing a Resource Manager chapter of the Neutrino Programmer's Guide now use the dispatch callouts instead of the resmgr ones. 18151
The description of the SIGEV_INTR() macro has been clarified in the entry for sigevent in the Neutrino Library Reference. 18176
The options for shutdown have been updated. 18228
The documentation for SchedGet() and SchedSet() now describe SCHED_ADJTOHEAD and SCHED_ADJTOTAIL. 18421
The documentation for pause() now says that it suspends the calling thread, not the process. 18625
The qde utility, which launches the IDE, now has a usage message and documentation. 18635
The shm_ctl_special() function, which you can use to set process-specific flags for a shared memory object, is now documented. 18667
The description of Interrupt Service Routines in the Neutrino Programmer's Guide has been clarified. It now mentions that the kernel implements an ISR if you use InterruptAttachEvent(). 18887
The asynchronous messaging functions are now documented in the Neutrino Library Reference. The functions include asyncmsg_channel_create(), asyncmsg_channel_destroy(), asyncmsg_connect_attach(), asyncmsg_connect_detach(), asyncmsg_flush(), asyncmsg_connect_attr(), asyncmsg_put(), asyncmsg_putv(), asyncmsg_get(), asyncmsg_free(), and asyncmsg_malloc(). Note that these functions are experimental. 19011
The SIGEV_PULSE_PRIO_INHERIT priority is now described in the documentation for sigevent. 19013
Formatting errors in the sample code have been fixed in the Writing a Resource Manager chapter of the Neutrino Programmer's Guide. 19178
The instructions in the IP Tunneling (Generic Routing Encapsulation) technote for creating GRE interfaces have been updated. 19400
The SPAWN_CHECK_SCRIPT, SPAWN_SEARCH_PATH, SPAWN_SETGROUP, SPAWN_SETND, SPAWN_SETSIGDEF, and SPAWN_SETSIGMASK flags are now described in the documentation for spawn(). 19416
The documentation for ConnectFlags() now describes what an errno value of EBADF means. 19576
The IDE Concepts chapter of the IDE User's Guide now explains that some keyboard shortcuts apply only to Java code and projects. 19603
The IDE User's Guide has been updated to indicate that code coverage works with gcc 3.3.1. 19758
All subtypes of the Ph_EV_BOUNDARY event are now described in the documentation for PhEvent_t in the Photon Library Reference. 19781
In the IDE help system on Linux hosts, the banners in the documentation now appear in the correct positions. 19817
The entries for setconf and getconf in the Utilities Reference now list the variables that you can set and get. 19848
The example in the documentation for getsubopt() now compiles cleanly. 19849
The documentation for dhcp.client describes the RELAYAGENT, SERVERNAME, DOMAIN, SIADDR, and SERVER environment variables. 19861
PtImageArea is now documented in the Photon Widget Reference. 19961
The information from the Global Name Service technote has been incorporated in the entry for gns in the Utilities Reference. 19984
Pt_BASIC_PREVENT_FILL is now described in the entry for PtBasic in the Photon Widget Reference. 20171
The QNX 4 to QNX Neutrino Migration Guide now says that gns supports global names. 20178
The name_attach() example in the Neutrino Library Reference has been corrected. 20285
The “Opening headers” section of the Developing C/C++ Programs chapter of the IDE User's Guide now explains how to configure your projects to use some of the IDE's enhanced source navigation and code-development accelerators. 20341
With FFS3, the flash drivers no longer have a .cmp mountpoint; the documentation for the devf-* drivers has been updated. 20413
New!PtInvokeCallbackType() is now documented in Building Custom Widgets. 20486
The phrelay command has a new -b option that you can use to set the number of messages buffered to allow write-ahead draws to Phindows or phditto (see Ref# 19986). 20487
The Photon in Embedded Systems appendix in the Photon Programmer's Guide now includes more information on what DLLs phfont requires for rendering certain fonts. 20509
The Photon in Embedded Systems appendix in the Photon Programmer's Guide now includes more information about Photon font-system binaries and how to reduce the number of binaries for font rendering. 20510
The directory names in the DDK documentation are up-to-date. 20528
The mkefs and mkifs documentation now explains how to set execute permissions in Windows. 20579
The class-creation example for PtComboBox in the Anatomy of a Widget chapter of the Building Custom Widgets guide has been updated. 20591
The options for io-graphics in the Photon in Embedded Systems appendix of the Photon Programmer's Guide have been updated. 20603
The dhcp.client command has new features: -T and the /etc/dhcp/dhcp-options file. 20650
The documentation for tracelogger is now correct in both the Utilities Reference and the documentation for the System Analysis Toolkit. 20669
The instructions for selecting the build architecture and build variants have been updated in the Using Code Coverage chapter of the IDE User's Guide. 20672
The cl-installer utility has been deprecated; use qnxinstall instead. 20681
The Using the Photon microGUI chapter of the Neutrino User's Guide now describes how to permanently remove the shelf. 20710
The IDE User's Guide now explains what to do if you get an “IPL file does not exist” message while building an OS image. 20718
lsm-sctp.so is now documented in the Utilities Reference. 20787
The documentation for npm-tcpip-v6.so now describes the pfil_ipsec option. 20793
The DDK documentation now mentions that you should always run . ./setenv.sh before running make or make install. 20813
The documentation for the Graphics, Network, and USB DDKs now uses the correct diagram of the directory structure. 20814
The description of Pg_IMAGE_DIRECT_8888 image format is clearer in the documentation for PhImage_t in the Photon Library Reference. 20820
The documentation for spawn() now mentions that a child process inherits the effective user ID of its parent process. 20873
The classification for nsec2timespec() is “QNX Neutrino” (not “Unix”). 20884
The subheadings are now more obvious in the section on options in the documentation for devp-pccard. 20892
The documentation for devg-i830 now reflects newly supported Intel chipsets. 20911
The Managing Source Code chapter of the IDE User's Guide now explains how to export projects. 20931
PhTilesBoundingRect() is now documented in the Photon Library Reference. 20985
The documentation for qconn now correctly refers to the “remote host” instead of the “remote target.” 20991
The Neutrino User's Guide now states that IP Filter is in the Extended Networking TDK, not the third-party repository; some instructions have been updated. 21019
The documentation for the Pt_CB_WEB_SSL_CERTNONTRUSTED callback of the PtWebClient widget refers to the PtWebClient2SSLResponse_t structure instead of to PtWebClientSSLResponse_t. The response codes for this callback have also been corrected. 21027
The documentation for npm-tcpip.so has been divided into separate entries for npm-tcpip-v4.so and npm-tcpip-v6.so. 21038
The documentation for usemsg now advises you to use the -o option (to use objcopy instead of ldrel to add the specified usage message) if you're running usemsg on a binary that has its data segment before its code segment. 21047
ksh has no -F option; the documentation has been corrected. 21048
From within the IDE, you can attach the Application Profiler to a program that's already executing on your target. 21051
The indexes that AlGetEntry() returns for list items in translation files start at 0, not 1. We corrected the documentation for this function in the Photon Library Reference. 21060
The sin reg docs have been updated to list the registers that are currently displayed. 21065
Improved the summary for inputtrap in the Utilities Reference. 21072
The description in the Neutrino User's Guide of the mount options in the .diskroot file has been corrected; use commas, not spaces, to separate the options. 21076
Made various improvements to the Photon Programmer's Guide, based on a developer's review feedback. 21101
Corrected a typo in the Resource Manager chapter of the System Architecture guide. 21120
.bld files and their handling (e.g. the IDE's System Builder, mksbp) are now documented. 21143
The documentation for io-net now states that the /dev/io-net directory doesn't appear until a driver or protocol module adds an entry to it. 21145
The IDE docs now explain that you need pdebug even for IP-based debugging. 21150
devn-tigon3.so is now documented. 21172
The deflate -p num option is obsolete and has been removed from the documentation. 21189
The documentation for PtPrompt() now explains that you need to initialize the buffer that holds the text (pointed to by the text argument) to be used to store the text that the user types. (Ticket ID 66161) 21196
New!cbinfo->event is NULL for the Pt_CB_APP_EXIT and Pt_CB_APP_WCLASS_CREATED callbacks; the entry for PtAppSetResources() has been corrected in the Photon Library Reference. 20201
The IDE's System Builder now correctly handles paths that contain spaces. 21206
The Code Coverage tab for the IDE's launch configuration now includes an Enable GCC3 Coverage metrics collection check box. 21209
The project properties in the IDE's System Builder no longer includes Suppress Reset Vector. 21210
The IDE's System Builder editor now includes a hammer icon that you can click to rebuild the current project. 21211
The docs for shm_ctl() describe the special meaning of the flags for ARM platforms. 21216
The RSRCDBMGR_FLAG_NOREMOVE flag for rsrcdbmgr_create() is now documented. 21245
The “Downloading via a serial link” section in the System Builder chapter of the IDE User's Guide now describes the Cancel button. 21259
Added System Files to the list of tabs in the description of the Search Paths properties in the Building OS and Flash Images chapter of the IDE User's Guide. 21262
New!When creating a compound widget, you should set Pt_ARG_DATA before setting the Pt_PROCREATED flag; the example of the Defaults method for compound widgets has been corrected in the Anatomy of a Widget chapter of Building Custom Widgets. 21265
The documentation for npm-qnet-l4_lite.so now recommends that you use this module with its default settings. 21298
The docs now explain why nanospin_ns_to_count() can return EINTR. 21341
Corrected some SGML tagging (CDATA, and &lt; and &gt; entities) in the docs for name_attach(). 21380
New!There are now entries for zip and unzip in the Utilities Reference. 21501
The default priority for qconn is 10, not 24 as previously documented. 21517
The shm_ctl_special() function is now documented. 21565
The ntpd docs formerly referred to ntp.draft; they now correctly refer to ntp.drift. 21601
The documentation for phrelay and phindows now describes how they support offscreen contexts. 21727
PhAB no longer generates ABW_LIcon and ABW_SIcon manifests for application icons. We updated the Photon Programmer's Guide. 21754
Some images were missing from the IDE User's Guide; they now appear. 21779
The docs for pthread_setschedparam(), sched_setscheduler(), and SchedSet() now state that you can specify sporadic scheduling any time, not just when you create a thread. 21782
New!The mixer_ctl.c example in the Audio Developers Guide has been corrected. 21799
Updated the information about the number of search hits in the Analyzing Your System with Kernel Tracing chapter of the IDE User's Guide. 21922
The documentation for IDE's System Profiler no longer says that hovering works only on childless elements (i.e. interrupts and threads). 21925
The IDE Concepts chapter of the IDE User's Guide has been updated. 21935
The Developing C/C++ Programs chapter of the IDE User's Guide has been updated. 21942
The Preparing Your Target chapter of the IDE User's Guide has been updated. 21950
The Finding Memory Errors chapter of the IDE User's Guide has been updated. 21955
The Common Wizards Reference chapter of the IDE User's Guide has been updated. 21959
The Managing Source Code chapter of the IDE User's Guide has been updated. 21963
The Debugging Programs chapter of the IDE User's Guide has been updated. 21974
The Getting System Information chapter of the IDE User's Guide has been updated. 21980
The tutorials in the IDE User's Guide have been updated. 21983
The Profiling an Application chapter of the IDE User's Guide has been updated. 21987
A snapshot in the Migrating to the 6.3 Release appendix of the IDE User's Guide has been updated. 21988
The Using Code Coverage chapter of the IDE User's Guide has been updated. 22019
The documentation for the IDE's System Information view now explains which session IDs are used for application and server processes. 22025
When you use a devi-* driver, you need a calibration file. The documentation now refers you to the calib utility for more information. 22038
The documentation for the devf-* drivers describe the -s option in more detail. 22526
The value of PHOTON_PATH has been corrected in the Photon in Embedded Systems appendix of the Photon Programmer's Guide. 22529
The documentation for ntpd now gives the correct location of the ntp.conf file. 22530
New!The entry for devf-ram in the Utilities Reference now explains the Unable to properly identify any flash devices error message. 22998
New!The documentation for devf-ram now makes it clear that this manager simulates a flash filesystem in RAM. 23005