QNX® Software Development Platform 6.5.0 Service Pack 1: Release Notes

Date of this edition: June 26, 2012

Target OS: This development platform produces software that's compatible with targets that are running QNX® Neutrino® 6.5.0 SP1.

Host OS: You can install this package:

You can also install the QNX Neutrino RTOS as a virtual machine on VMware Workstation 6.5 or 7.0, VMware Player 3.0, and Microsoft VirtualPC 2007. We provide a VMware image of a runtime installation of QNX Neutrino; for more information, see Using the VMware image of a QNX Neutrino runtime system,” below.

If you intend to use the QNX SDP on VMware, to ensure that VMware is supported for your host, search the compatibility guide located at http://www.vmware.com/resources/compatibility/search.php.

If you find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website, http://community.qnx.com/.


Note:
  • For information about using BSPs with QNX SDP 6.5.0, see the BSPs and Drivers project on Foundry27.
  • For the most up-to-date version of these notes, go to our website, www.qnx.com, log into your myQNX account, and then go to the Download area.

Contents

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.

For the most up-to-date version of these release notes, go to our website, www.qnx.com, log into your myQNX account, and then go to the Download area.


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

What's new in QNX Neutrino 6.5.0 SP1?

What's new: Kernel

What's new: Startup


Note:
  • If you plan to use more than 8 CPUs on an x86 platform, you must use the 6.5 version of procnto-smp and startup-bios or startup-apic. (Ref# 75180)
  • If you're running startup-apic, you must use pci-bios-v2 instead of pci-bios, but it must still be called pci-bios in order for the enumerators to work correctly. In your buildfile, add pci-bios-v2 like this:
    pci-bios=pci-bios-v2

What's new: Core networking

dhcp.client
This utility now:
gns
We've corrected a memory leak that occurred when a message buffer was allocated but never freed. (Ref# 78242, 142156)
io-pkt*
lsm-autoip.so
pf
The packet filter now supports IPv6 fragments. (Ref# 147358; Ticket ID 92278)

What's new: Filesystems

fs-dos.so
This filesystem now supports a DCMD_FSYS_LABEL_RAW devctl() command that you can use to get the raw volume label before any character conversions are done. (Ref# 125315, 142318)
fs-etfs-ram
We now ship an ARMLE-v7 version of fs-etfs-ram. (Ref# 102375, 142260)
fs-nt.so
This filesystem now supports NTFS partitions on devices with a disk sector size that's greater than 512 bytes. (Ref# 149806)
Power-Safe (fs-qnx6.so) filesystem

What's new: Graphics

Advanced Graphics

libimg
This library now supports the invocation of the set_value_f() callout when progressive JPEGs are loaded via img_load*(). (Ref# 100825, 142253)

Composition Manager

After 6.5.0, the current version of QNX Composition Manager will be deprecated. A replacement subsystem tentatively called QNX Screen will be provided as part of a future SDP release.

Photon microGUI

We're deprecating the Photon microGUI and will remove it in a future release.

phuser
We've fixed a security vulnerability in the phuser utility that could have allowed a normal user to gain root access. This issue was reported by an anonymous researcher working with the SecuriTeam Secure Disclosure project. (Ref# 126546, 142322)

What's new: Libraries and header files

dladdr()
This function now provides the full path (instead of the base name) of the object, in order to match the behavior on other OSs. (Ref# 80928, 159484)
fp_rounding()
This function now sets the L bit and the mask so that older processors (that don't implement the L bit) act as though the mask were set. (Ref# 81314, 142185; Ticket ID 00104989)
libc.so
We've corrected an error in the handling of DT_FINI_ARRAY:

(Ref# 77236, 142152)

libps.a
We now provide a PIC version of this library. (Ref# 80433, 142176)
MsgCurrent()
Calling MsgCurrent() on the rcvid pertaining to a low-priority client no longer causes a priority boost given to your thread by a blocked high-priority thread to be lost. (Ref# 50399, 142142, 151626)
nanospin_calibrate()
In order to make startup faster and reduce jitter, nanospin_calibrate() now tries to read the calibration data from values stored in the system page. The startup for some boards includes an -o option that you can use to specify the calibration data (100 loop time and overhead) to store in the system page. (Ref# 88926, 142221,156183)
<sys/pps.h>
We now ship this header file. (Ref# 78433; Ticket ID 91172)
pthread_mutex_timedlock()
This function's behavior is now compliant with POSIX. (Ref# 111650, 142296)
TimerTimeout()
This function no longer includes internally used bits in the flags that it returns. (Ref# 82818, 142191)

What's new: Drivers

What's new: Audio device drivers (deva-*)

New drivers:

deva-ctrl-usb.so
Sound driver for USB audio devices (Ref# 106691, 160998)

Other changes include:

deva-ctrl-intel_hda.so
The Intel HDA Audio driver now supports the Cirrus CS4207 Audio codec. (Ref# 90047, 142225)

What's new: Block-oriented drivers (devb-*)

devb-eide
This driver now recognizes drives that are larger than 127 GB. (Ref# 87717, 142219)
devb-loopback

What's new: Character drivers (devc-*)

devc-serusb
This driver now supports these devices:

as well as the following features:

What's new: Flash filesystem drivers (devf-*)

devf-generic
The following options are new:

Note: Don't mix ECC-enabled partitions and ECC-disabled partitions; the driver doesn't support this.

The arguments to the -t option have changed. You can now specify the high water, low water, and maximum number of threads for the driver's thread pool.

We've documented the following options:

(Ref# 154800)

What's new: Graphics drivers (devg-*)

We've documented the following drivers:

devg-lx800.so
Graphics driver for AMD Geode LX chipsets (Ref# 100760)
devg-unichrome.so
Graphics driver for VIA Unichrome chipsets (Ref# 100760)

What's new: Human interface device drivers (devh-*)

devh-usb.so
This driver now has a priority option that you can use to change the priority of the removal thread. (Ref# 94754, 142236; Ticket ID 00107965)
hidd_device_reset()
This function gives you a way to reset the device from a program. (Ref# 99210, 142245)

Note: Use this function with caution if the HID device is part of a composite USB device. Issuing a device reset causes a low-level BUS reset for the entire device, which could potentially cause problems with drivers managing the other interfaces of a composite device.

hidd_get_interface_string()
A new function that you can use to retrieve the HID interface descriptor string. (Ref# 87005, 142213)
hidd_send_report()
This function now reports an ETIMEDOUT error when a device times out. (Ref# 87204, 142216)

What's new: Input device drivers (devi-*)

devi-hid
This driver can now switch to 4-point calibration from the default 3-point. (Ref# 118340, 142309)

What's new: Network drivers (devn-*, devnp-*)

The new drivers include:

devnp-ecm.so
Driver for the CDC ECM USB Ethernet control module (Ref# 74350, 142146, 154151)
devnp-ncm.so
Driver for the USB CDC NCM network control module (Ref# 110669, 142479, 154151)

Other changes include:

devn-asix.so
This driver now supports AX88172A and AX88772B USB Ethernet dongles. (Ref# 69383, 133449, 159418, 160786, 160936)
devnp-e1000.so
The following options are new:
int_mod=N
The interrupt moderation value. The default is 20000 interrupts/sec; a value of zero disables interrupt moderation.
force_link
Force the link speed/duplex. The default is to autonegotiate the advertised speed/duplex.
max_read=N
The maximum PCIe read request size. N must be 128, 256, 512, 1024, 2048, or 4096 bytes.
tx_reap=N
The maximum number of transmit descriptors to reap. The default is 64.

Other changes include:

(Ref# 137666, 146600, 159635, 160941)

devn-fd.so
We now ship an ARMv7 version of this driver. (Ref# 93951, 142233)
devn-pegasus.so
devnp-ath.so, devnp-bcm43xx.so, devnp-ral.so, devnp-rum.so
The documentation now says that you must use io-pkt-v4-hc or io-pkt-v6-hc with these drivers (io-pkt-v4 doesn't support Wi-Fi). (Ref# 77970)
devnp-e1000.so
This driver now supports Intel 82579 chipsets. (Ref# 86807, 142211)
devnp-shim.so
By default, this driver now copies each received packet in the shim layer as it's passed from the driver to io-pkt. This means that the driver and shim can now be removed via ifconfig enX destroy or by physical removal of the device (if supported by the driver), without causing the shim to crash. This driver has a new shimrxcopy option that controls this feature. (Ref# 116999, 142487)

If you're interested in writing a new network driver, ask your sales representative for the Writing Native Network Drivers for io-pkt technote as well as some sample driver code. Both are available free of charge. (Ref# 88626)

What's new: USB drivers (devu-*)

devu-ehci.so
New options:
ports=port:port...
Set the enumeration order of each root port. Use colons to separate the port numbers. (Ref# 101449, 142470; Ticket ID 91910)
memory=name
Use the specified typed memory for DMA descriptors (endpoint descriptor, transfer descriptors, and so on). (Ref# 73666, 142145, 154304)
devu-ohci.so
New options:
isoptd=num
Restrict the number of isoch frames each TD can transfer (default 8).
memory=name
Use the specified typed memory for DMA descriptors (endpoint descriptor, transfer descriptors, and so on).

(Ref# 73666, 142145, 154304)

What's new: Documentation

The QNX Neutrino Cookbook: Recipes for Programmers
QNX Software Systems has bought the rights to this book by Rob Krten, and we've updated it for QNX SDP 6.5.0 SP1. (Ref# 98337)
QNX Neutrino Library Reference

See also the “What's New” appendix in the QNX Neutrino Library Reference.

Utilities Reference

See also the “What's New” appendix in the Utilities Reference.

Technotes
We've corrected the rtinstall script in the technote on creating a runtime kit, so that it exits if you try to install the runtime on a disk that already has a Power-Safe (fs-qnx6.so) filesystem partition (type 179) on it. (Ref# 78567, 142158)

What's new: I/O devices

io-audio
There's a new global data_thread_prio option that you can use to specify the priority of the software mixer thread. The default is 25. (Ref# 136343, 159648)
io-usb
New options:
-r num
Set the number of enumeration retries (default 3).
-t memory=name
Set the typed-memory name (default none, using sysram).

(Ref# 73666, 142145, 154304)

What's new: QNX Database (QDB)

New functions:

qdb_column_decltype()
Retrieve declared type for a column in a result set
qdb_interrupt()
Interrupt a long-running query
qdb_stmt_decltypes()
Retrieve declared column types for a prepared statement

Other changes include:

qdb_column_name()
We've corrected the synopsis.
qdb_setoption()
New option: QDB_OPTION_COLUMN_DECLTYPES

(Ref# 87028, 150556)

What's new: Security

Using the VMware image of a QNX Neutrino runtime system

We provide a VMware image of a QNX Neutrino 6.5.0 SP1 runtime system in target/QNX_Eval_RT.zip on the installation DVD; it's also available in the Download area of our website.

To install this image, do the following:

  1. Extract the VMware target from the DVD. For example, on Windows, open a Windows Explorer window, double-click on the target\QNX_Eval_RT.zip file, and then extract the Neutrino641Target folder to some location on your hard drive (e.g., My Documents).
  2. To launch, either:
  3. If VMware Player displays a dialog saying that the virtual machine was moved, select Create and click OK.

If you find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website.

What's new: Compiler, tools, and utilities

enum-usb
This utility now supports:

The configuration file for enum-usb now supports a NoMSString option. Some devices don't support Microsoft-defined USB descriptors and will go haywire if queried for them. This option prevents queries from being made for these descriptors. (Ref# 92272, 103720, 142228)

fdisk
pidin
slogger
New options: (Ref# 77106, 77332, 150729)

Debugging information for shipped binaries

We generate the QNX SDP binaries with debugging information (-g) and map files. With few exceptions, all binaries are available with debugging information, but this data as well as the .ident information are stripped and stored in a separate binaryName.sym file. These files are linked together, so gdb understands where to find the symbol data.

There's now no need for a separate debug version of all the binaries. There's a separate tar file containing all the .sym files that will untarred alongside each binary. This file is available in the Download area of our website, as well as in the debugging_info directory on the QNX SDP DVD.

What it means to you:

These *-buildid.sym files are in CPU-specific tar files. The usage of these tar files is straightforward. Suppose you want to debug the ls command for x86. You could just add the entire set of debug files to your target (you need to be root, of course):

  1. Get the target-x86-debug-date.tgz file.
  2. cd $QNX_TARGET
  3. tar -zxf path/target-x86-debug-date.tgz

Then ntox86-gdb $QNX_TARGET/bin/ls would load the debugging symbols from the .sym file automatically. Since this is the full debugging information, you can point gdb at the location of source for ls.

You don't have to extract the entire tar file. In fact all that matters is that the .sym file be in the same directory as the binary. So you could simply copy $QNX_TARGET/x86/bin/ls and the x86/bin/ls-*.sym file (from the debug tar file) to your current directory, and then run gdb there.

In order to get a list of the source files used to build a binary (e.g. to determine the associated licensing), use the .sym file instead of the binary. So continuing with the example above, to get a list of the source files used in building ls, type:

use -s $QNX_TARGET/x86/bin/ls-*.sym

Discontinued items

The following items will be removed from a future release of QNX SDP and will become part of a separate product:


Note: The Web Browser Engine in 6.5.0 SP1 doesn't include any ARMv7 binaries.

After 6.5.0, the current version of QNX Composition Manager will be deprecated. A replacement subsystem tentatively called QNX Screen will be provided as part of a future SDP release.

We've deprecated the following items, and we plan to remove them from a future release:

Experimental items


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

The experimental items in QNX SDP 6.5.0 SP1 are:

Known issues

QNX SDP 6.5.0 SP1 contains known issues in these areas:


Note: We're actively investigating all known issues.

Known issues: Installing and uninstalling

Known issues: Kernel

procnto
procnto-smp

Known issues: Libraries and header files

fdatasync(), fsync()
Calls to these functions on a PPS file always fail with errno set to 22 (invalid argument). (Ref# 77943)
fork()
Unnamed semaphores aren't inherited across a fork() (Ref# 59947, 73710)
fpemu.so.2
This library causes some problems on x86 targets if it's compiled with gcc 4 with optimization above -O0. To avoid these problems, we've compiled the DLL with -O0 optimization for x86. (Ref# 55883)
libxml.a
This library is a Neutrino interface to version 1.1 of the Expat XML Parser, but it isn't documented. For information about this library, see <xmlparse.h> and <xmltok.h> in $QNX_TARGET/usr/include. (Ref# 56140)
posix_spawn()
In the current implementation, posix_spawn() can indicate an error of EMSGSIZE. This is most likely the result of attempting to operate on too many file descriptors in the posix_spawn_file_actions_t object passed to posix_spawn() or posix_spawnp() and/or an overly large environment variable list (either through inheritance by passing NULL for the envp parameter to posix_spawn() or posix_spawnp() or by explicitly providing an overly large envp parameter). (Ref# 75606)

Workaround: Reduce the number and size of the environment variables and/or number of file descriptors being manipulated with the posix_spawn_file_actions_t object.

shm_ctl(), shm_ctl_special()
If an error occurs, these functions set errno to ENOSYS (not EINVAL as documented). They should provide better diagnostics. (Ref# 26440)
ThreadCreate()
This function doesn't check the priority range when PTHREAD_EXPLICIT_SCHED is set. For example, if you use the on command while logged in as a non-root user, and you specify a priority greater than 64, on still executes the command but at the priority of the calling shell. It should give an error saying you don't have permission to create at that priority. (Ref# 28763)
Time zones
QNX Neutrino uses a nonstandard method of defining time zones that's difficult to keep up to date. We plan to replace it in a later release. (Ref# 44425)

Known issues: Filesystems

io-fs-media
On ARM platforms, you can't use an io-fs-media share to store a directory structure with more than 16 MB of data. (Ref# 56601)
chkfsys
If you send a SIGTERM or SIGKILL signal to a devb-* driver, chkfsys might subsequently find errors on the filesystem. (Ref# 48741, 48764, 48765)
fs-ext2.so
If you try to delete a linked file or directory in a Linux Ext2 filesystem, you get a “Corrupted file system detected” error. Note that we support only read access to this type of filesystem. (Ref# 50264)
fs-qnx6.so
The io-blk manager lets you mount a filesystem in a file. To do this, you basically create a normal file on a disk, and then format it (via dinit, mkqnx6fs, mkdosfs, etc.), as a filesystem. You can then run a command, such as:
mount -tqnx4 /home/myfs.img /fs/test
  

and you'll get a mountpoint called /fs/test, which is the size of the file and is formatted as a QNX 4 filesystem.

If you used fs-qnx6.so as the real filesystem on the hardware, and then created a QNX 4 or DOS filesystem inside a file residing on the Power-Safe filesystem, the host filesystem formerly could become damaged by the modifications to the hosted filesystem. We've fixed that, but the host filesystem might not be able to confer full power-loss safety to the (by design) not power-loss-safe QNX 4 or DOS filesystem. (Ref# 74580)

Known issues: Startup

Known issues: Adaptive partitioning

Known issues: Booting

Known issues: BSPs and DDKs

Known issues: Compiler, tools, and utilities

ksh, pipe
There's a problem with interactions between pipe and ksh on SH targets. If you use multiple pipes in a command line under ksh, all output can be lost. For example:
# uname -a
QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle
# uname -a | grep renesas
QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle
# uname -a | grep shle
QNX renesas_sh7785 6.5.0 2008/09/26-04:27:12EDT SDK_7785 shle
# uname -a | grep renesas | grep shle
#
  

(Ref# 62242)

ld
pidin
traceprinter
When a kernel call fails, the instrumentation records the errno value. However, if you use traceprinter on the .kev file in a cross-endian environment (e.g., the .kev file was generated on big-endian, and you're running traceprinter on little), the errno value that gets printed isn't swapped before being displayed. For example, an EFAULT is displayed as 0xe0000000 rather than 0xe. (Ref# 76429)

Known issues: Device drivers

Audio device drivers (deva-*)

Block-oriented drivers (devb-*)

devb-adpu320
Reading DVD-RAM causes devb-adpu320 to become blocked on a CONDVAR. (Ref# 19772)
devb-aha8
You can't restart this driver on IBM PPC405 boards. (Ref# 16018)
devb-eide

Graphics drivers (devg-*)

devg-*
devg-radeon.so
devg-smi5xx.so
This driver faults or deadlocks in multicard setups. (Ref# 59790, 60369, 76945)
devg-unichrome.so
The usage message for this driver describes it as a generic Vesa 2.00+ BIOS modeswitcher. It's really for VIA Unichrome chipsets. (Ref# 161461)
devg-vesabios.so
If you use devg-vesabios.so on a Dell 830, the system won't reset when you shut it down while in graphics mode. (Ref# 57168)

Workaround: Use phgrafx to change the driver to devg-i830.so. You can also avoid the problem by exiting to text mode, and then typing shutdown at the command prompt.

Human interface device drivers (devh-*)

devh-usb.so

Network drivers (devn-*, devnp-*)

devn-asix.so
This driver doesn't support the 1000 MB/s interface of the Linksys Gigabit USB Adapter (model no. USB1000). (Ref# 38115)

Workaround: Force the driver to use speed and duplex settings that it supports (10 and 100 Mbit/s).

devnp-i82544.so
The io-pkt driver for the Intel i82544 doesn't support dual-port cards (did=0x1010). (Ref# 44299)

USB drivers (devu-*)

Flash filesystems & embedding

Known issues: IDE

The IDE contains the following known issues:

See also the list of host-specific issues, later in these notes.

Known issues: General

Known issues: Application Profiler perspective

Known issues: System Profiler perspective

Known issues: Memory Analysis perspective

Known issues: System Information perspective

Known issues: System Builder perspective

Known issues: C/C++ development

Known issues: Team/CVS

Known issues: Debugging

Known issues: Documentation

Known issues: Instant Device Activation

Known issues: I/O devices

io-usb

Known issues: Multimedia

Multimedia TDK 1.0.1
QNX SDP 6.4.1 and later don't support Multimedia v1.x. Applications that depend on Multimedia v1.x will no longer resolve symbols or execute under 6.4 or later. For multimedia support, you need to install the QNX Aviage Multimedia Suite. (Ref# 55967)

Known issues: Networking

devnp-*
When using the m_pkthdr_csum_data member in network driver code, make sure that you use only the bottom 16 bits. The top 16 bits may contain undefined data. (Ref# 44622)
ifconfig
The commands:

ifconfig iface_name up
ifconfig iface_name scan

don't work individually for Wi-Fi drivers. (Ref# 61246)

Workaround: Combine the commands:

ifconfig iface_name up scan

lsm-qnet.so
fs-cifs
fs-nfs2
fs-nfs2, fs-nfs3
gns
io-pkt*
The stack might send zero-length mbufs to a driver for transmission. (Ref# 44621)

Workaround: Drivers must accommodate for this by checking the length of the data in the mbuf and ignoring the mbuf if the length is zero.

nfsd
nfsd lets you access files only up to 16 subdirectory levels deep within the directory exported in the /etc/exports file. Deeper directory levels and files aren't accessible. (Ref# 40104)
TCP/IP (part of io-pkt)

Known issues: Graphics

Advanced Graphics

libimg
An internal structure exchanged between libimg and the image codecs changed after we released version 2.0 of the Advanced Graphics TDK. Applications compiled and linked statically against the earlier versions of imglib.a might not function properly, especially while decoding JPEG images. (Ref# 48003, 56557)

Workaround: Relink the applications against the newer version of imglib.a.

Blitting
The Advanced Graphics libffb library doesn't support blitting to a PAL8 surface from a non-PAL8 surface. Therefore, Pg_IMAGE_PALETTE_BYTE offscreen contexts can be blitted to and from only offscreen contexts of the same type. (Ref# 20391)

Changing modes or stopping and then restarting graphics
When changing modes or stopping and then restarting graphics using devg-i830.so, the machine might enter a bad state and power down. (Ref# 74803)

Workaround: Do the following:

  1. Boot into safe mode (during the boot process, press Space, press F1 for Safe Mode, and then press F3 so that Photon doesn't start).
  2. Edit the file /etc/system/config/display.conf and set drivername=i830, set resolution values for xres and yres, and then set a refresh rate value for refresh.

    For more information about display.conf, see io-display in the Utilities Reference.

  3. slay and then restart io-display:
    slay io-display

    and then at the prompt type:

    io-display -dvid=0x8086,did=MypciDeviceID

    where MypciDeviceID is the PCI device ID for your specific device.

  4. Start Photon (use the ph script).

Photon microGUI

ARMv7
Photon isn't supported on ARMv7 targets.
Arcs, Bézier curves, and ellipses
The default line joint is a miter, which doesn't produce good results for these curves, and — contrary to what the documentation says — the setting of the line joint is ignored if you use stroked arcs or stroked ellipses. Using PgSetStrokeJoin(Pg_BEVEL_JOIN) may give smoother results once this issue is resolved. (Ref# 58185)
Dual-head displays
On systems with a dual-head display and screens set up to display different portions of the logical desktop, some convenience functions — such as PtFileSelection() and PtNotice() — are always constrained to the first screen. (Ref# 59614)
phs-to-pcl
We don't ship phs-to-pcl for PPCBE. (Ref# 61378)
Starting Photon
When you start Photon, you might see a “Cannot attach mouse input report (error code2)” message on the console. It's a benign message that you can ignore. (Ref# 29662)
PhAB
PhAB for Windows

Known issues: Persistent Publish/Subscribe

ppsparse()

Known issues: Runtime kit

For information about creating a runtime QNX Neutrino system, see the How to create a Runtime Kit from the QNX Software Development Platform technote in the installed documentation.

Known issues: System Analysis Toolkit

Known issues: Host-specific

Windows hosts

Coexistence on Windows 7
Although 6.5.0 is the first version of QNX SDP that's supported on Windows 7, you should be able to install and use earlier versions. However, if you try to change the current version of the tools (via the QWinCfg utility or the Configuration menu item), QWinCfg will display a dialog that says you can't save any changes because you aren't an administrator. This is because of changes to the User Account Control (UAC) system on Windows 7. (Ref# 69243)

Workaround: Do the following:

  1. Start a command prompt.
  2. Run the ksh command.
  3. Type qconfig to get the installation name of the required configuration.
  4. Run the following command, specifying the installation name:

    eval `qconfig -n "Installation_name" -e`

    For example, to switch to 6.3.2, run this command:

    eval `qconfig -n "QNX Momentics Development Suite 6.3.2" -e`
        
IDE
The following issues apply to the Windows-hosted version of the IDE:
Vista and Phindows or PhAB
On Vista, Phindows and PhAB seem to interfere with the gadget toolbar; the sidebar flickers and appears and disappears very rapidly and often, slowing down the system. (Ref# 62277)

Workaround: This may be related to Phindows and PhAB's use of Direct3D double buffering, which is redundant when the Vista Aero compositing is enabled. To disable double buffering:

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)
MAKEFLAGS
Microsoft Visual Studio also uses the MAKEFLAGS environment variable, but in a much different way than QNX Neutrino does. The result is that Microsoft Visual Studio no longer works after you've installed QNX Momentics.

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

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

    set MAKEFLAGS=saved_makeflags_value

sh, ksh
Because of the way that the MSYS versions of the shell manipulate the environment variable, PATH doesn't appear to include $QNX_HOST/usr/bin, but it does. (Ref# 59412)
User Account Control (UAC)
Windows Vista and Windows 7 include an account policy, called User Account Control (UAC), that impacts various administrative features, such as being able to create and store files in a temporary directory (tmp). This directory is used by various applications, such as CVS and the split command, and various Photon applications. To successfully run these applications on a computer running Windows Vista or Windows 7, you must have administrator privileges and disable UAC. (Ref# 44027)

In order to install or use Automated License Management, you must have logged in as an administrator and disable UAC. (Ref# 77791)

Workaround: To disable UAC on your Windows Vista configuration:

  1. Launch MSCONFIG by from the Run menu. (When you click on the launch button — the one with the windows logo commonly in the bottom left corner — the Run menu is an editable text bar with the string Start Search. Type msconfig and then press Enter.)
  2. Click on the Tools tab. Scroll down until you find Disable UAC, and then click that line.
  3. Press the Launch button.
  4. A cmd window will open. When the command is done, you can close the window.
  5. Close msconfig, and then restart your computer.

You can reenable User Account Control by selecting the Enable UAC line and then clicking the Launch button.


Caution: Disabling UAC bypasses some security features.

BSPs
For Windows XP, the location that the BSP file for the IDE installs into is $QNX_CONFIGURATION/qconfig_directory, and it is write-protected for a default user. Consequently, subsequent updates to BSPs aren't permitted in this location because of permission errors under Windows Vista configurations if the user doesn't have administrative permissions. (Ref# 44668)

Workaround: Modify your user permissions. For instructions about changing these permissions, see the steps in the workaround for the problem (Ref# 44027) above.

QNX utilities
The Windows installation includes various executables that have the same name as some QNX utilities, such as find, sort, and split. By default, Windows places the path to the Windows executables at the beginning of the Windows PATH environment variable, and the QNX executables appear afterward. This means that when you run these utilities from the command line, instead of using the QNX version, the PATH variable uses the Windows version. (Ref# 44457)

Workaround: If you want to use the QNX utilities for find, sort, and split from a command prompt or shell prompt, specify a fully qualified path to any of the QNX executables.

ctags

Linux hosts

Installers
The installers can't update the Gnome menu on some distributions of Linux. (Ref# 48770)
Activation
IDE

Known issues: Web browsers

Bon Echo

Getting started with the documentation

After you've installed QNX SDP, you'll find an extensive set of HTML documentation:

The “roadmap” page contains links to the various HTML booksets that accompany the OS. We recommend that you start with Welcome to the QNX Software Development Platform for an overview of QNX SDP. Next, see 10 Steps to Developing a QNX Program: Quickstart Guide for a short tutorial that will help you get started, and then refer to the other documents (System Architecture, QNX Neutrino Programmer's Guide, Library Reference, Utilities Reference, and so on).

You can install and work with multiple versions of QNX Neutrino. Whether you're using the command line or the IDE, you can choose which version of the OS to build programs for. For more information, see the IDE User's Guide or the QNX Neutrino Programmer's Guide.

Technical support

To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.

For questions about installing and using QNX SDP, see the QNX Momentics Getting Started forum on our Foundry27 site, http://community.qnx.com. There are other forums for specific topics, including the QNX Neutrino RTOS, development tools, networking, Board Support Packages, and so on.

List of fixes

The problems fixed in QNX SDP 6.5.0 SP1 include the following:

Software fixes

Change Ref#
The devn-asix.so driver now supports the Asix 88172A chipset. 69383
The devc-serusb driver now supports some new USB modems, including the FTDI Quad RS232-HS, ZTE MF668 (Rogers Rocket Stick), and Sierra Wireless USB 598. 73383
When an application blocks as a result of a receive on an asynchronous or global channel, the transition to STATE_RECEIVE is now correctly logged. 76574
The fs-dos.so and fs-udf.so filesystems now support Asian character sets, code pages 932, 936, and 950. (Case ID 103086) 78317
We now ship the <pps.h> header file. (Ticket ID 91172). 78433
We've corrected an issue with inode caching that could sometimes cause corruption in a Power-Safe (fs-qnx6.so) filesystem. 78703
We've corrected an issue with the UDF filesystem which could cause an exception or other unexpected behavior on CDs using the Rock Ridge extension (RRIP). 80829
The dladdr() function now provides the full path (instead of the base name) of the object, in order to match the behavior on other OSs. 80928
We've fixed a memory leak that occurred when you used gf_draw_polyline() with a pen width of 2 or more. 88440
We've fixed a bug in fs-dos.so, where a 64-bit inode value could be implicitly truncated to 32 bits. As a result, two different files could have had the same inode, which caused confusion (e.g., with inflator, which assumes that inodes are unique). 95577
If you mount a USB device that contains a DOS filesystem using cp936 (Chinese code pages), it's now possible to use cd to enter a folder that has a Czech name. (Ticket ID 00108005) 96652
We now ship an ARMv7 variant of devi-hid. 112291
The USB stack now supports composite HID devices. (Ticket ID 00111514) 116230
We've corrected an issue that could sometimes cause sporadic and inexplicable “ldd:FATAL: Attempt to call unresolved object” errors. 116675
EFS images built by mkefs on Windows for bid-endian targets can now be mounted correctly. 117128
A server thread no longer loses its priority boost when it unlocks a mutex that it acquired before the priority boost. 119518
We've fixed an SMP race condition between a long and a short message of equal priority on the same channel that could happen if both were preempted. 124250
Pregrowing a file beyond the capacity of the Power-Safe (fs-qnx6.so) filesystem no longer causes the filesystem to report an error of EBADFSYS. 125537
The fdisk utility no longer experiences division-by-zero errors when a USB key reports 0 track sectors or heads. (Ticket ID 00112455) 126016
The Qnet enforce_crc=1 option works again. (Case 00112528) 127401
The devnp-e1000.so driver now makes sure that the PHY is reset before the rest of the driver is started. 129010
The io-pkt-v6-hc manager no longer does a v6 route lookup if it has a valid v4 route. This eliminates a long delay when sending/receiving data over a socket. 129214
We've fixed an issue that sometimes caused delays when two UHCI USB serial devices exchanged data. 129326
The devc-serusb driver now handles the case where there isn't enough memory to transfer data. After multiple consecutive errors, receiving is disabled; you can attempt to reenable it by setting the CREAD terminal flag. 131276
If start io-usb with the the -d ohci ,,,num_td=8, and connect an iPod through a full-speed USB hub, io-usb no longer crashes on playback from the iPod. 131372
The devb-loopback driver has two new options, heads and tracks, that let you specify the disk geometry. 133385
We've corrected an interaction between sending a message on a global channel and replying to a remote client, that led to a thread's being left in a reply-blocked state forever. 133467
The io-pkt-* managers now have a -P option that you can use to specify the priority of the main thread. (Case 00113545) 135755
The io-audio manager now has a data_thread_prio option that you can use to specify the priority of its sw mixer threads. (Case 00113545) 136343
The io-usb utility now supports a -e option that you can use to specify the priority of the enumerator thread.(Case 00113545) 139522
We've corrected an issue that sometimes prevented threads using round-robin or sporadic scheduling from being rescheduled correctly. 142140
Calling MsgCurrent() on the rcvid pertaining to a low-priority client no longer causes a priority boost given to you by a blocked high-priority thread to be lost. 142142
The fdisk utility now supports logical partitions and multiple partitions of the same type. 142143
As a QNX Neutrino extension, the time you specify for the sleep utility now can be a floating point number, so you can specify fractions of seconds. 142144
We've fixed a caching issue (caused by a P4080 errata) that sometimes caused random crashes in the last loaded DLL on multicore systems. 142150
We've corrected an error in the handling of DT_FINI_ARRAY. For more information, see “What's new: Libraries” in these release notes. 142152
The fdisk utility now supports logical partitions and extended partitions. 142153
We've corrected an initialization issue for the D-Link DUB-E100 Ethernet Dongle that used to cause io-pkt-v4 to not work with the dongle. 142154
We've corrected a memory leak in gns. 142156
Serial drivers no longer send warnings about buffer overruns to the system logger if nothing has yet connected to the device. This warning is re-enabled once a byte is successfully transmitted without an overrun or the FIFO is flushed. 142159
A gns running in client mode no longer crashes when it performs an open() for a non-_FTYPE_NAME file type for the local reflection of a global name (/dev/name/global/global-name) and that name was attached on a remote node, the name's cache entry timed out (usually after 20 minutes), and the network connection to the server is now broken. (Case 103808) 142160
We've worked around the P4080 CPU 22 Errata: “If an asynchronous interrupt occurs near the same time that a stwcx. is executed, the cacheline the stwcx. is accessing may become stale in that core's backside L2. Any future load or lwarx instruction to that cacheline could then access the old data.” 142162
The devnp-e1000.so driver no longer reports that a link is down when it really isn't. (Ticket ID 00103859) 142164
The devn-pegasus.so driver now supports the busnum and devnum options. 142165
The devb-loopback driver is now able to mount images that are larger than 2 GB. (Ticket ID 91175) 142168
We've corrected an issue in ThreadDestroy() that sometimes caused a kernel crash on ARM systems. (Ticket ID 00104295) 142172
The devc-serusb driver now supports a DCMD_CHR_RESET devctl() command that resets the device. Not all drivers make use of this command. 142175
We now provide a PIC version of libps.a. 142176
We've corrected an issue with mapping and unmapping memory that could have led to the fragmentation of virtual memory. (Ticket ID 00104760) 142178
The audio drivers now use the shared DMA library instead of the static library, to ensure that the constructor can successfully initialize shared memory. 142180
The kernel on ARM platforms no longer crashes when you repeatedly call ThreadDestroy(). (Ticket ID 00104295) 142181
The enum-usb utility now supports devices that don't have an interface 0. 142183
We've corrected the fp_rounding() function so that it sets the L bit and the mask so that older processors (that don't implement the L bit) act as though the mask were set. (Ticket ID 00104989) 142185
The devnp-speedo.so driver no longer crashes when used with io-pkt-v6-hc. (Ticket ID 00104744) 142186
The dhcp.client utility no longer adds duplicate entries to /etc/resolv.conf. 142189
We've updated the devnp-e1000.so driver so as to reduce the time required to establish connections. 142190
TimerTimeout() no longer includes internally used bits in the flags that it returns. 142191
We've updated the devn-pegasus.so driver so that removing the Pegasus dongle from a hub no longer causes io-pkt-v4 to spin. (Ticket ID 00105359) 142192
We've corrected an error in fs-udf.so that sometimes caused devb-eide to crash. 142194
Removing the dongle while the devn-pegasus.so driver is being initialized no longer puts the driver into a bad state. 142195
A deadlock no longer occurs in the block I/O drivers when you remove the device while the it's still being mounted. (Ticket ID 00105360) 142197
The devn-pegasus.so driver now uses a timeout for control operations instead of using infinity. 142198
We've fixed the possibility of excessive interrupt nesting due to heavy IPI activity in the ARM kernel. 142199
We've corrected an issue that occurred when a thread that called TimerTimeout() was preempted and moved to STATE_READY before it could call SyncCondvarWait(), and another, higher priority, thread blocked on a mutex that the first thread held. The mutex priority-inversion code would then boost the priority of the first thread, but on SMP machines erroneously cleared the time-out flags. 142200
The procnto-v6 kernel now uses the correct cache color for alias mapping used to manipulate breakpoints. It used to be possible for the dcache to contain a line for the “real” virtual address which would contain the previous unmodified value. In this case, the undefined instruction exception handler would read the faulting address and not see a breakpoint instruction so it would raise a SIGILL. 142201
The chkqnx6fs utility no longer loops if corruption in the filesystem has altered the number of indirect levels. 142203
For security reasons, the use of LD_DEBUG_OUTPUT with setuid binaries is now disabled. For more information, see “What's new: Security” in these notes. 142204
We've added a mutex to the devu-uhci.so driver, so io-usb no longer crashes while handling certain error conditions. 142205
We've adopted the latest P4080 U-Boot, which supports 36-bit physical addresses. 142206
A call to open( "/proc" ) no longer erroneously fails because of a previous failed close() on a file description to procnto. 142207
If a shared object that contains text relocations is remapped as private, pidin mem now displays the correct name (appended by “!”), instead of zero. 142208
When MSI interrupts are requested, the PCI server now correctly allocates every second IRQ instead of allocating interrupts from the entire IRQ list. 142210
The devnp-e1000.so driver now supports Intel 82579 chipsets. 142211
There's a new hidd_get_interface_string() function that you can use to retrieve the HID interface descriptor string. 142213
If a client unblocks a blocked read over Qnet by sending SIGINT to the thread, the server handles the unblock request and releases the client with EINTR. If the client closes the file and reopens it after a short delay, the server no longer erroneously receives a file open callback with the _NTO_MI_UNBLOCK_REQ flag set in request's _msg_info structure. 142214
We've updated io-usb and some USB components to work around some hardware issues. 142215
The hidd_send_report() function now reports an ETIMEDOUT error when a device times out. 142216
The devf-generic driver no longer leaks memory when a customer application opens and closes a connection to it. 142218
The devb-eide driver now recognizes drives that are larger than 127 GB. 142219
Synchronization objects that are in x86 big pages are now cleaned up correctly. 142220
In order to make startup faster and reduce jitter, nanospin_calibrate() can now read the calibration data from values stored in the system page. The startup for some boards now includes an -o option that you can use to specify the calibration data (100 loop time and overhead) to store in the system page. 142221
We've corrected a threading issue that sometimes made io-pkt crash. (Ticket ID 91482) 142222
The etfsctl utility now properly handles bad blocks. 142223
The io-pkt manager with the devnp-e1000.so driver no longer sporadically hangs after rebooting. 142224
We've corrected an issue that could corrupt messages (especially large ones) on PPC BookE systems. 142226
The enum-usb utility's configuration file now supports a NoMSString option that prevents queries from being made for a Microsoft-defined USB descriptor. Some devices that don't have a descriptor go haywire if such a query is made. 142228
The pidin -F "%M" command no longer crashes. We've also improved the way that this format code and the -M memory options work. 142231
You can now specify a 64-bit offset when mounting an IFS image. 142232
We now ship an ARMv7 version of devn-fd.so. 142233
Embedded Transaction filesystems now correctly handle orphaned directories. 142234
The devh-usb.so driver now has a priority option that you can use to change the priority of the removal thread. (Ticket ID 00107965) 142236
The fs-udf filesystem no longer truncates a CD volume label that contains two periods in what appears to be the filename extension. 142237
The mkqnx6fs utility now has a -v option that lets you specify a volume name of up to 16 characters. Note that you can't specify both a UUID and a volume name. 142239
Chinese SD and USB volume labels that include an English character are no longer malformed in HMI and Photon. (Ticket ID 00108045) 142241
We've corrected io-blk.so's cache coherency function to dereference the correct vnode. 142243
We've moved the packing directives in <pci.h>, so that the order in which you include this and other headers doesn't affect the alignment of pthread_mutex_t in structures. 142244
There's a hidd_device_reset() function that lets you reset a human interface device. For more information, see “What's new: Human interface device drivers (devh-*)” in these release notes. 142245
The enum-devices utility no longer uses just the modification time to determine whether or not a configuration file has changed. Using just the modification time was a problem if you used the mkifs -nn option to set all modification times to 0. 142246
The mkifs utility now uses the correct linker for ARMv7 images. (Ticket ID 00109690) 142247
While building the node tree, usbd_parse_descriptors() no longer wrongly links a descriptor that should be a child of an interface descriptor as a sibling instead. (Ticket ID 00109414) 142248
The usbd_parse_descriptors() now leaves class and vendor-specific descriptors untouched, instead of endianizing and making them alignment-safe. (Ticket ID 00109791) 142250
On ARM, gcc doesn't preserve callee-save registers such as LR for functions marked as noreturn. We've modified the code for abort() so as to make it possible to determine who called it. 142251
The hidd_report_detach() and hidd_reports_detach() functions no longer SIGSEGV if you call them from an insertion callback. 142252
The libimg library now supports the invocation of the set_value_f() callout when progressive JPEGs are loaded via img_load*(). 142253
The # key now works correctly on the German/Austrian keyboard layout based on the German standard DIN 2137-2. 142254
The devb-ram driver no longer crashes when the capacity is less than the minimum size for a QNX 4 filesystem. 142255
We've fixed a timing issue that caused a crash when a USB device was inserted or removed just as the client driver was detached from a removed device. 142256
All the meta data for Joliet filesystems is now handled properly. 142257
We've corrected a timing issue that caused problems when you called hidd_device_reset() just after a device has been inserted. 142258
We now ship an ARMLE-v7 version of fs-etfs-ram. 142260
The enum-usb utility now starts the correct driver for MTP devices in USB mode. (Ticket ID 00110106) 142262
Empty CD labels are now displayed as an empty string, to be consistent with Windows. 142263
The usbd_parse_descriptors() function no longer goes into an infinite loop when parsing devices with several vendor-specific descriptors. 142264
The x86 kernel with Physical Address Extension enabled no longer crashes when a user thread references addresses above 0xff000000. (Ticket ID 91857) 142265
The devi-hid manager now has an -R option that lets you specify the display resolution. If you specify this option, devi-hid doesn't try to use the graphics framework or Photon to determine the resolution. 142266
The devf-generic driver now supports a -x option that enables software ECC mode, and a -D option that enables the automatic detection of ECC mode. 142267
We've improved some of the settings that fdisk suggests in interactive mode. 142268
By default, lsm-autoip.so now has the link local and routeable IP address behave as aliases and co-exist. There's now an old option that makes the module attempt to manage the link local network using a routing table. (Ticket ID 90966) 142269
The dhcp.client utility now runs an optional script, /etc/dhcp/dhcp-check, that takes the environment as dhcp-up does, but returns a value indicating if the configuration is acceptable (0 means OK; other values result in a DHCPDECLINE). 142270
The dhcp.client utility now has an -H option that indicates that you don't want to apply the hostname locally. This could be useful in cases where you use the -h option to identify the client, and you want to apply a different hostname locally, or you simply wish to ignore the server hostname assignment. (Ticket ID 91459) 142271
We've included a correction in the handling of DIOCCHANGERULE from the NetBSD code. (Ticket ID 91968) 142272
We've corrected a memory leak that occurred when you called getaddrinfo() or gethostbyname_r(), specifying a host that didn't exist. 142275
io-pkt* no longer crashes if you slay it after starting qconn. 142276
We've corrected a race condition that sometimes occurred if you used io-pkt with the -t2 option. This race condition caused the thread pool to be empty when it shouldn't have been. 142279
io-pkt* now supports the ALTQ feature. You can use pfctl to manage it. 142280
We've corrected the endian-swapping macros so that gcc optimizes them correctly. 142281
We've corrected some issues concerning alignment and mutex initialization in the devnp-e1000.so driver. 142282
When you use fdisk to add partitions, the start and end LBA addresses are now aligned on cylinder boundaries. 142283
We've corrected some off-by-one errors in fdisk's interactive mode. Note that you can no longer edit the start and end cylinders of an extended partition. 142284
The pppd daemon no longer loops if its database is corrupted. 142286
We no longer not allow recursive RFC3173 IPComp payloads, in order to address security vulnerability CVE-2011-1547. 142287
We've fixed an issue that sometimes caused io-pkt-v6-hc to fault during initialization. (Ticket ID 91832) 142288
If Unix domain socket corruption occurs, killing sshd no longer crashes io-pkt-v4-hc. (Case 109797) 142289
The pfil_ipsec option now works correctly with TCP streams. 142290
The PF_KEY interface now notifies the client of an IPSec SA softtimer expiry if no data has been sent. 142291
If you try to read a PPS object, and the buffer you provide is too small, you now correctly get an error of EMSGSIZE. 142292
We've cleaned up some warnings that used to occur when you compiled BSP source code. 142293
The Power-Safe (fs-qnx6.so) filesystem now has an alignio option that makes the filesystem try to align all reads and writes in sizes and offsets of the file system block size. 142294
We've fixed some issues that prevented UDF-Multisession CDs from being properly loaded. (Ticket ID 00110586) 142295
The pthread_mutex_timedlock() function's behavior is now compliant with POSIX. 142296
The enum-usb utility now recognizes the Philips GoGear Muse in both MSC (umass) and MTP (PFS) modes. 142298
The getifaddrs() function no longer returns a transient ENOMEM error when the interface list is growing. 142301
Issuing an ifconfig destroy command for the J5 WLAN driver no longer causes the system to freeze. 142303
The fdisk command now correctly reports a size of zero for empty partitions. 142304
Qnet now correctly clears the l4 list when an interface is removed (destroyed). We've also corrected an issue where a data structure was accessed after it was freed. (Ticket ID 92074) 142305
The devc-serusb driver now has a drt option that lets you specify the data-ready timeout. 142306
If you try to connect a corrupt USB stick, the system no longer gets into an endless “Loading...” loop. (Ticket ID 00111735) 142307
The devi-hid driver can now switch to 4-point calibration from the default 3-point. 142309
We've fixed a potential race condition in iofunc_attr_unlock() that could have caused multi-threaded resource manager threads to stay mutex-blocked forever. 142312
The devc-ser8250 driver no longer attempts to read from the write-only FIFO Control register (FCR). 142315
The devc-serusb driver now supports the Cinterion AHx module. 142316
The io-pkt manager no longer crashes because of a corrupt mbuf chain after IPSec key negotiation has been established. 142317
The fs-dos.so filesystem now supports a DCMD_FSYS_LABEL_RAW devctl() command that you can use to get the raw volume label before any character conversions are done. 142318
We've fixed a security vulnerability in the phuser utility that could have allowed a normal user to gain root access. This issue was reported by an anonymous researcher working with the SecuriTeam Secure Disclosure project. 142322
When you're tracing in ring mode, kernel buffers are now filled to 95% before the kernel moves to the next buffer. In linear mode, buffers are filled to 70% before being flushed. (Ticket ID 90752) 142442
Audio dropouts no longer occur while playing from an iPod. (Ticket ID 90795) 142443
The code that clears a stalled USB endpoint now returns an appropriate error code to the higher-level software. (Ticket ID 90867) 142444
The io-audio manager now supports typed memory. (Ticket ID 91171) 142445
We've corrected an error that made pidin occasionally crash. (Ticket ID 91383) 142446
We've improved the quality of audio from USB. (Ticket ID 91515) 142450
We've improving the caching of information in the FAT filesystem in order to reduce the time required to read data from it. 142451
Reading an incomplete or corrupt JPEG file no longer causes a crash in the img library. (Ticket ID 91582) 142452
We've corrected an initialization issue that caused crashes when some applications called dlopen() or dlclose(). (Ticket ID 91630) 142455
The devb-ram driver no longer crashes if you start it with a capacity or blksize setting of 0, or with an unreasonably large address setting. (Ticket ID 91647) 142456
We've corrected an issue that caused io-usb to crash. (Ticket ID 91650) 142457
We've fixed an issue in io-blk that caused an immediate reset when you connected a USB stick to external devices. (Ticket ID 91739) 142460
Network drivers now support routines that power up and down the phy of a Ethernet card. (Ticket ID 91777) 142461
We've corrected an issue that prevented pairing with some Bluetooth devices (Ticket ID 91812) 142464
We've fixed an contention issue in io-blk when automounting. (Ticket ID 91881) 142468
The showmem utility no longer displays bogus Qnet node names for shared objects that are in /dev/shmem. These names appeared in rare circumstances. (Ticket ID 91900) 142469
The devu-ehci.so driver now has a ports option that lets you set the enumeration order of each root port. (Ticket ID 91910) 142470
The Power-Safe (fs-qnx6.so) filesystem and io-blk.so no longer call random() because this function isn't thread-safe.(Ticket ID 91915) 142471
When an NFS server dies, processes that read or write to an NFS mount now get a “Host is down” error if you start fs-nfs2 or fs-nfs3 with the -s option. (Ticket ID 91978) 142472
We've corrected a problem with memory allocation that caused devb-umass to fault. (Ticket ID 91997) 142473
We now ship the BSD version of the tar utility. It's called bsdtar, to distinguish it from the GNU version. 142475
We've updated the block-I/O common access methods to recognize some new USB peripheral devices. (Ticket ID 92047) 142476
We've fixed an issue that caused devb-umass to crash while backing up a music collection. (Ticket ID 92059) 142478
We now support the NOKIA Model N8-00 USB NCM device. 142479
The dhcp.client now correctly sends DHCPDISCOVER packets with a source address of 0, as required by RFC 2131, instead of with its configured alias address. (Ticket ID 92097) 142480
The enum-usb utility now recognizes HTC Droid Incredible devices. (Ticket ID 92104) 142481
The ATAPI driver now sets the DEV_UPSIDE_DOWN_MEDIA flag when it gets a sense code of 2/30/01(Cannot read medium: unknown format), so that the subsequent access to the device, which causes a sense code of 02/3E/00 (Logical unit hasn't self-configured yet)doesn't restart the media detection process by sending a start command. (Ticket ID 92121) 142482
The devb-umass driver no longer crashes when you repeatedly connect a Samsung Galaxy phone to a USB port, select Mass Storage mode, and then disconnect the device. (Ticket ID 92122) 142483
MTP players are now recognized much sooner. (Ticket ID 92139) 142485
The usbd_connect() and usbd_disconnect() functions no longer leak file descriptors. (Ticket ID 92144) 142486
By default, the devn-shim.so driver now copies each received packet in the shim layer as it's passed from the driver to io-pkt. The driver and shim can be removed via ifconfig enX destroy or by physical removal of the device (if supported by the driver). 142487
The devc-sersub driver now supports the Sierra Wireless AR8550 3G dongle. 142488
The io-usb server no longer crashes when you connect an iPod to a full-speed USB hub. (Ticket ID 92156) 142489
We've corrected an issue in the resource manager code that sometimes made io-pkt crash. (Ticket ID 92161) 142490
The i2c driver now correctly recognizes the iPhone. (Ticket ID 92177) 142491
We've corrected the handling of encrypted packets in the pf packet filter that caused some packets to be dropped (Ticket ID 92231) 142492
We've corrected an issue that caused io-usb to fault. (Ticket ID 92285) 142493
We've addressed a potential URB race condition in the Usbdi library. 142494
If the RTC rolls over, the memory manager no longer sets a cleanup timer that expires immediately. (Case 114408) 142884
If you're running io-pkt-v6, the output from netstat -s now includes missing information about IPSec statistics. 144710
The devnp-e1000.so driver has a new int_mod option that you can use to specify the interrupt moderation value. The default value is 20000 interrupts/sec; a value of 0 disables interrupt moderation. (Ticket ID 00114664) 146600
Setting the MALLOC_BAND_CONFIG_STR environment variable no longer causes a crash in libc. 146824
The bzdiff, bzgrep, and bzmore utilities are now executable. 146932
We've corrected an error that could have caused IPv6 IPSec SA lookups to erroneously fail. 147352
The io-pkt manager now supports the pfil_ipsec option for IPv6. 147353
IPv6 in IPv6 tunneling now works correctly. 147354
We now support IPv6 NAT-T and IPv6 PF fragmented packet normalization. 147355
The pf packet filter now supports IPv6 fragments. (Ticket ID 92278) 147358
The devnp-e1000.so driver now finishes its initialization before it enables interrupts. 147963
The fs-nt.so filesystem now supports NTFS partitions on devices with a disk sector size that's greater than 512 bytes. 149806
We've corrected an issue with a recursive lock that sometimes caused a deadlock in io-pkt and the devnp-e1000.so driver. (Ticket ID 00114936) 149868
The showmem utility now correctly reports memory usage. (Ticket ID 91266) 150669
The slogger utility has a new -m option that makes it use CLOCK_MONOTONIC instead of the default CLOCK_REALTIME as the clock source, and a new -u option that makes it generate a user-string trace event, with the given event ID, for all messages received. 150729
The lsm-autoip.so module no longer selects the same IP address every time after the first challenge. 150959
The lsm-autoip.so module is no longer loaded if the selected interface isn't present. 150968
We've fixed an alignment issue that occurred when you used mkefs with the ECC feature enabled. 151889
We've corrected a race condition in the transferring of messages on SMP systems that in rare circumstances could cause the kernel to crash. 152941
The mqueue manager now has a -p option that you can use to specify a static priority. 153325
In order to improve performance, io-pkt* now uses a timer pulse instead of attaching a timer interrupt. There's a new timer_pulse_prio option that you can use to specify the priority of the pulse (the default is 21). 154965
The showmem utility no longer crashes when it encounters a larger than expected memory size. 156091
The showmem utility now correctly counts memory for overlapping, but not identical, memory regions. (Case 114619) 156094
The x86 startup library no longer checks to see if PIRQs (specifically PIRQ[E..H]) are configured as GPIOs. 156564
We've corrected an SMP race condition that sometimes caused increased scheduling latency, i.e. a higher priority thread remained in a ready state while a lower priority thread continued to run. 156962
Qnet now takes less time to start up. (Ticket ID 92223) 159976
We've corrected an issue that sometimes made io-pkt crash when you also used dhcp.clinet and removed the USB device. (Ticket ID 92333) 159986
We've fixed a race condition between ldd and confstr() that could cause the link loader to crash while starting a process. (Ticket ID 92349) 160016
The devc-serusb driver now supports the Sierra Wireless AR series of devices. (Ticket ID 92467) 160019
We've corrected a denial of service issue concerning io-pkt and Wi-Fi. (Ticket ID 92440) 160021
Playback now occurs correctly if you eject and then reinsert a CDA. (Ticket ID 92367) 160034
The io-usb server now recognizes Toshiba USB hard drives. (Ticket ID 91713) 160038
IPv6-router-advertisements are now honored for PPP interfaces. (Ticket ID 92279) 160050
Freed memory is now released as soon as possible to the system. 160710
If you start io-usb with the -d ohci ,,,num_td=8 option, and then connect a USB key though a full-speed USB hub, io-usb no longer crashes. 160753
If you start io-usb with the -d ohci ,,,num_td=8 option, and then connect a USB key though a full-speed USB hub, io-usb no longer crashes. 160775
We've corrected an issue in the cp utility that caused a fault when you tried to copy from an NT filesystem. 160797
We now ship version 1.0.6 of the bzip2 utilities. 160807
Applications linked against libc now emit a lot fewer “shared library events” when a process with shared libraries is loaded in the debugger. This makes launching the debugger faster. 162680

Documentation fixes

Change Ref#
The documentation for alloca() now describes how the builtin and non-builtin versions of this function behave differently. 27507
The documentation for shm_ctl() and shm_ctl_special() now describes the SHMCTL_ISADMA and SHMCTL_NOX64K flags. 27627
We've added an entry for snd_pcm_plugin_set_src_method()() to the QNX Neutrino Audio Developer's Guide. 29909
The form of the compress attribute that lets you specify the compression algorithm doesn't have a leading + or - sign. We've corrected the documentation for mkifs. 60348
We've revised and expanded the documentation for the posix_spawn*() functions. 62489
The System Architecture guide now explains the concept of the network root, and the entry for on in the Utilities Reference now contrasts the -f and -n options. 71139
We've corrected various errors in the “Interpreting mudflap output” section of the IDE User's Guide. 71869
We've expanded the list of practical limitations in the Adaptive Partitioning User's Guide. 74104
We've listed more possible error codes in the documentation for _intr_v86(). 74516
We've added an entry for round(), roundf(), and roundl() to the QNX Neutrino C Library Reference. 75143
We've documented the bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzless, bzmore and bzip2recover utilities, and updated the documentation for bzip2. 76465
The documentation for mketfs now explains that this utility adds cluster headers to the image file. When you write the image to flash, these headers are replaced with BSP-specific structures that hold the same information. 77251
The documentation for io-blk.so and mount now explains why you have to respecify filesystem options such as noatime when you remount a filesystem (Case# 102618) 77323
The System Architecture guide now explains that the pages containing binaries are demand-loaded by default, but that you can use the procnto -m to change this. 77347
The documentation now explains why calling shm_ctl_special() with a special argument of 0 isn't the same as calling shm_ctl(). 77364
The documentation for dumpifs now describes the -d option, which you can use to specify where to place extracted files. 77369
The documentation for mq_open() and sem_open() now mentions that if you want to use O_CREAT, O_EXCL, or O_NONBLOCK when you call these functions, you need to include <fcntl.h>. 77620
We've corrected the list of options for dhcpd and dhcp.client in the Utilities Reference. 77663
The chapter on filesystems in the QNX Neutrino User's Guide now explains why you can overwrite a running executable in /dev/shmem without getting an error of EBUSY. 77764
The documentation for qcc now describes the -save-temps option. 77819
We've removed a reference to PAL8 from the documentation for io-display, and corrected the name of the disp_mode_info_t structure in the description of get_modeinfo() in the Graphics DDK documentation. 77854
The documentation now says that you must use io-pkt-v4-hc or io-pkt-v6-hc with the devnp-ath.so, devnp-bcm43xx.so, devnp-ral.so, and devnp-rum.so drivers (io-pkt-v4 doesn't support Wi-Fi). 77970
The QNX Neutrino Library Reference now explains how flockfile(), ftrylockfile(), and funlockfile() are related. 78020
The QNX Neutrino C Library Reference now includes an entry for InterruptStatus(). 78079
The documentation for io-blk.so, mount, and mount() now points out that updating a mount resets the other mount flags to their defaults. The documentation for mount() explains how you can get the current settings. 78089
The maximum user or group ID in a QNX 4 filesystem is 65534. 78195
We've updated the sample programs in Writing a Resource Manager so as to eliminate some compiler warnings. 78239
We've corrected the names of the _MOUNT_NOATIME, _MOUNT_NOCREAT, and _MOUNT_NOSUID flags in the documentation for mount_parse_generic_args(). 78287
We've added implied (_MOUNT_IMPLIED) to the list of options that mount_parse_generic_args() processes. 78331
We've documented the -o priority option that you can use to specify the working priority of the internal pulse that the devc-* drivers use. 78357
The iofunc_stat_default() function returns -1, to indicate to the resource manager library that it should return one part from the ctp->iov structure to the client. 78470
The description of the Blocked column in the output from pidin now mentions that if the blocking process is running on a remote node, the process ID is followed by @ and the node name. 78476
We've corrected the call to memset() in the example for getsockopt() in the QNX Neutrino C Library Reference. . 78595
The documentation for qcc now includes c++-header in the list of supported values for the -x option, and lists the extensions that are parsed to create precompiled headers. 78650
The entry forsysctl in the Utilities Reference now describes the -d, -e, -f, -M, -q, -r, and -x options. It also describes how you can use a file such as /etc/sysctl.conf to set variables whenever you boot the system. 78736
After you've launched io-pkt*, you can use the mount command to load additional modules such as lsm-pf-v4.so or lsm-pf-v6.so. 78737
Use commas, not question marks, to separate multiple options when opening a PPS object. 78873
Because io-pkt includes the TCP/IP stack, you can't load more than one instance of the stack. We've corrected the TCP/IP Networking chapter of the System Architecture guide. 78921
We've corrected the name of the <ftw.h> header file in the entry for nftw() and nftw64() in the QNX Neutrino Library Reference. 79058
To load lsm-pf-v4.so, or lsm-pf-v6.so, use mount with a special device of io-pkt, not tcpip. The documentation for lsm-autoip.so now shows how to load this module when you start io-pkt-*. 79118
If you use the P_WAIT flag, you need to use a status macro such as WEXITSTATUS() to extract information from the value returned by the spawn*() functions. 79150
If you pass a string of "/usr/" to dirname(), the string returned is "/", not "usr". We've corrected the examples in the QNX Neutrino Library Reference. 79323
Typically your program calls ChannelCreate() only once, and all threads block on that channel.We've also corrected a call to MsgReplyv() in one of the examples. 79573
The documentation for showmem now includes more details about using the options and interpreting the output. 79695
We've corrected the synopsis for wcscpy(), wcsncpy(), wcstoul(), wcstoull(), wcsxfrm(), wprintf(), and wscanf() in the QNX Neutrino Library Reference. 79882
The documentation for straddstr() now describes how the function handles null characters in the strings. 80304
The ability to munmap() just a part of an area mapped with mmap() was introduced in QNX Neutrino 6.3.2; we've corrected the documentation for munmap(). 80441
The getrlimit() and setrlimit() routines don't support RLIMIT_FSIZE or RLIMIT_MEMLOCK. 80610
The explanation for an error of ENXIO is now clearer in the documentation for mmap(). 81252
We've corrected the diagram of using the ?server option in the Subscribing chapter of the PPS Developer's Guide. 81682
The entry for readdir() in the QNX Neutrino C Library Reference now mentions that ftw() provides another way to walk a file tree. 82206
The descriptions of daemons and services in the default version of the /etc/inetd.conf file are commented out; uncomment the ones that you want to use in your system. 82401
The ftruncate() and ftruncate64() functions can indicate an error of ENOMEM if there isn't enough memory to change the size of a shared memory object. 82503
We've corrected the instructions for creating a new project in 10 Steps to Developing a QNX Program: Quickstart Guide. 82659
The entry for devc-serusb in the Utilities Reference now describes the debug, drt, name, and retry device-specific options. 83096
The entries for pci_read_config*() in the QNX Neutrino C Library Reference now warn that these functions can return inconsistent data if another process is extensively using the PCI bus. 87498
The documentation for resmgr_attach() now says that this function indicates an error of EBUSY if an internal resource isn't available. (Ticket ID 00106344) 88093
In the Understanding System Limits chapter of the QNX Neutrino User's Guide, we've updated the maximum number of processors and added the limits for ARM-v7 platforms. 88115
The documentation for dlopen() now mentions that the use of LD_DEBUG_OUTPUT with setuid binaries is disabled, for security reasons. 90385
The documentation for pthread_setname_np() now mentions that _NTO_THREAD_NAME_MAX is defined in <sys/neutrino.h>. 90638
The SPI (Serial Peripheral Interface) Framework technote now explains how to use the device argument to spi_getdevinfo(). (Ticket ID 00105894) 91933
We've updated the list of options in the documentation for devb-eide. 93052
We've corrected the description of S_IFMT in the entry for stat() in the QNX Neutrino C Library Reference. 93591
The documentation for gf-calib now explains why you might need to use the -D option to prevent the pointer cursor from being displayed. 95754
The calling process needs to be running as root in order to map physical memory; we've updated the documentation for mmap(), mmap_device_io(), and mmap_device_memory(). 96217
We've corrected the synopsis for PxConfigNextEntry() and PxConfigNextEntryCx() in the Photon Library Reference. (Ticket ID 00109615) 98993
We've corrected the list of options in the entry for cam-disk.so in the Utilities Reference. 99109
We've corrected the descriptions in the QDB Developer's Guide of what qdb_backup(), qdb_bkcancel(), and qdb_printmsg() return. 99605
We've updated the description of the -R option to qdb in the QDB Developer's Guide. 100763
We've corrected the synopsis for posix_spawn() in its entry in the QNX Neutrino C Library Reference. 101175
We've corrected a call to bt_set_flags() in an example in the Backtraces technote. 103229
The fcntl(), flock(), and lockf() functions can give an error of ENOSYS if the filesystem (e.g., the /dev/shmem “filesystem”) doesn't support file locking. 103420
The documentation for pci_attach_device() now describes how to determine whether or not a device supports MSI or MSI-X and how to assign an interrupt in the driver. (Case 00104937, 00110660) 103614
The QDB Developer's Guide now describes the special block and nonblock values that you can specify for the -t and -T options. 103621
We've updated the documentation for the Dinkumware libraries. 103671
We've corrected the description of what dircntl() returns. 111113
The posix_spawn*() functions return error codes instead of setting errno. We've corrected the documentation. 111758
We've corrected the examples of typed memory and the names of the POSIX_TYPED_MEM_* constants in the System Architecture guide. 114978
It isn't safe to call posix_spawn(), posix_spawnp(), or setdomainname() from an interrupt handler. It isn't safe to call trace_logf(), trace_nlogf(), or trace_vnlogf() from an interrupt handler if the format codes or parameters include float elements. 115067
We've updated the list of options in the entry for cam-cdrom.so in the Utilities Reference. 117625
We've corrected the name of the _sync_attr structure in the entry for SyncTypeCreate() in the QNX Neutrino C Library Reference. 119923
The pidin utility's R format and timers shorthand form report the time left before a timer's expiry and the timer interval in microseconds, not milliseconds. 120457
We've corrected the synopsis for ha_fopen() in the High Availability Framework Developer's Guide. 121752
The GNU C++ library type is supported on all architectures; we've corrected the documentation for qcc. 125649
We've added entries for procmgr_event_notify_add() and procmgr_event_notify_delete() to the QNX Neutrino C Library Reference. 125766
We've corrected the spelling of EACCES in various entries in the QNX Neutrino C Library Reference. 126027
The entry for devb-eide in the Utilities Reference now describes how the driver chooses the connection mode. (Ticket ID 00113539) 132399
We've corrected the descriptions in the QNX Neutrino C Library Reference of clock_getcpuclockid(), clock_gettime(), ClockId(), ClockTime(), and pthread_getcpuclockid(). 134916
SchedGet() returns an actual scheduling policy value, not SCHED_ADJTOHEAD or SCHED_ADJTOTAIL. We've corrected the documentation. 136989
We've corrected the explanation in Getting Started with QNX Neutrino of why you can't fork() a multithreaded process. 139031
We've corrected the sample installation script in the “How to create a Runtime Kit from the QNX Software Development Platform” technote, so that the script exits if there's already a partition of type 179 on the disk. 142158
If you want to set up a bridge whenever you boot your system, you need to add the appropriate commands to your /etc/rc.d/rc.local file. We've corrected the documentation for brconfig. (Ticket ID 00114672) 144619
The entry for pidin in the Utilities Reference now describes all of the format codes. 145436
The maximum number of active processes on an ARMv7 platform is 255, the same as on ARMv6. 148701
We've documented the -o nodaemon option for devc-serpci and devc-serusb, and the -d option for mq, mqueue, and pipe. These options prevent the process from becoming a daemon. 157100
We've corrected the name of the usbmgr_path option in the entry for enum-usb in the Utilities Reference. 157297
If you're using posix_typed_mem_open(), you need to include <fcntl.h> in order to get the definitions of O_RDONLY, etc. 160248
We've corrected the entry for mem_offset() and mem_offset64() in the QNX Neutrino Library Reference. You must call these functions with NOFD for the fd argument. 160360
The entry for pci_attach_device() in the QNX Neutrino Library Reference now describes the PCI_USE_MSI and PCI_USE_MSIX flags. 162456