QNX Technical Articles
QNX® Momentics® Development Suite 6.3.0 Service Pack 1 Professional and Standard Editions Release Notes
Date of this edition: November 17, 2014
![]() |
Changes to these notes since January 24, 2005 are highlighted below
with this icon:
![]() |
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
![]() |
|
![]() |
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...
- What's new in QNX Momentics 6.3.0 SP1?
- Changes
Experimental items
- Known issues
- Deprecation of legacy multimedia components
- Documentation
- Technical support
- List of fixes
![]() |
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):
- Character-device drivers
- Compiler and tools
- Core OS
- Filesystems
- Flash drivers
- IDE
- I/O devices
- Networking
- Photon
- Protocols
- Shared memory on ARM processors
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.
![]() |
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
- 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:
- 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 X − N 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)
- 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.
- 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)
The asynchronous-message functions are experimental and could change. - /etc/rc.d/rc.local
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)
- 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.
- 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.
![]() |
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
![]() |
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:
- Audio
- Block-oriented drivers
- Booting
- BSPs and DDKs
- Compiler and tools
- Core OS
- Documentation
- Filesystems
- IDE
- I/O devices
- Licensing
- Multimedia
- Networking
- Photon
- Solaris-specific
- Windows-specific
![]() |
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.
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
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
- Update your profile to include these exports:
- 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.
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__
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)
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.
- 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.
- make
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
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
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.
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
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
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
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()
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
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()
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
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)
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
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.
- Use the no_root_squash option on the server.
Known issues: IDE
![]() |
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
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.
tab) is
relative to QNX_TARGET/PROCESSOR.
(Ref# 15004)
- 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.
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 (
).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
, 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 &
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:
- 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 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)
- 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:
- 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)
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.
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
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.
- If you use more than 64 Tx descriptors, the PPC version of the driver
is inoperative.
(Ref #22848)
- rcp
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)
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 (
).
- 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)
- If you don't specify a plugin, io-graphics fails.
(Ref# 22489)
- 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
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
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"
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).
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
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
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
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:
- Open a command window and run cmd.
- Type set.
- Find the value for MAKEFLAGS and save it.
- Type set MAKEFLAGS.
- Do your MSVS work.
- To work with QNX Momentics again, type:
set MAKEFLAGS=saved_makeflags_value
- Permissions
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.
![]() |
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:
) 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 | 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 |
![]() |
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 |
![]() |
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 | .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 | , 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 |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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 < and > entities) in the docs for name_attach(). | 21380 |
![]() |
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 |
![]() |
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 |
![]() |
22998 |
![]() |
23005 |