Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

QNX® Software Development Platform 6.4.1: Release Notes

Date of this edition: May 25, 2009

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

Host OS: You can install this package as a self-hosted QNX Neutrino® development system, or on one of the following development hosts:

You can also install the QNX Neutrino RTOS as a virtual machine on VMware Workstation 6.5, VMware Player 2.5 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 find problems with any virtualization environment, please post your findings in one of the forums on our Foundry27 community website.


Note:
  • You can't install QNX SDP 6.4.1 on machines that are running 64-bit Linux Ubuntu 7.10. (Ref# 56182)
  • We no longer include the IDE on self-hosted QNX Neutrino systems.
  • For information about using BSPs with QNX SDP 6.4.1, see the BSP Migration Guide in 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.


Caution: If you installed an alpha version of this software, uninstall it before installing the production version.

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 the QNX Software Development Platform?

The QNX Software Development Platform bundles the QNX Momentics Tool Suite, the QNX Neutrino RTOS, or both, as shown below:

On Linux and Windows: On QNX Neutrino:
QNX Momentics Tool Suite QNX Momentics Tool Suite
QNX Neutrino RTOS

The QNX Momentics Tool Suite includes the following:

On Linux and Windows: On QNX Neutrino:
Command-line tools
Libraries, documentation, and other development components
Integrated Development Environment
Command-line tools
Libraries, documentation, and other development components

We no longer include the IDE on self-hosted QNX Neutrino systems.

What's new in QNX Neutrino 6.4.1?

The key improvements in 6.4.1 include:

For more details, see the following sections:

Migrating from earlier releases

What's new: Kernel

What's new: Installing, booting, and licensing

New utilities include:

applypatch
Install and uninstall QNX patches. (Ref# 67885)

Note: Invoke this command as applypatch, not applypatch.py as indicated in the Utilities Reference. (Ref# 68568)

showlicense
Display the type of QNX license that's currently active. (Ref# 62227)

What's new: Core networking

What's new: Filesystems

chkfsys
There's a new -x option that makes chkfsys exit with detailed error codes. If you don't specify this option, an exit status of zero (as before) doesn't indicate that no problems were found with the filesystems. It merely indicates that no irrecoverable errors internal to the chkfsys utility were encountered. For more information, see the Utilities Reference. (Ref# 32176, 61888)
fs-mac.so
This shared object provides read-only support for the Apple Macintosh HFS (Hierarchical File System) and HFS Plus. (Ref# 64406)
fs-nt.so
This shared object provides read-only support for the Windows NT filesystem. (Ref# 64405)
fs-udf.so
In addition to supporting UDF (OSTA-UDF/ECMA-167) filesystems, fs-udf.so now supports ISO-9660 (base 1998 spec, 1999 spec, Joliet extensions, Rock Ridge extensions). As a result, it has the following new options:
case=asis|lower|upper
Control the case used to display ISO-9660 filenames.
format=list
Set both the list of disk formats to support, as well as the order in which they should be probed.

Note: The default is format=udf:rrip:joliet:iso9660e:iso9660:audio. For backward compatibility, set the format to format=udf to disable the CD/ISO formats.

info=path
The first character of the path can be + or -, and this controls whether empty entries (metadata descriptors not given a value) are shown in the directory or not, respectively.
perms=[file_permissions][:directory_permissions]
The permissions to use for ISO9660 files, directories, or both.

(Ref# 65320)

This filesystem also has a new vcd=num option that you can use to set the number of raw VCD 2352-byte deblocking buffers. (Ref# 15071, 67230)

For more information, see the Utilities Reference.

fs-cd.so
We've deprecated this shared object in favor of fs-udf.so, but we'll continue to ship it. (Ref# 64992)

What's new: Graphics

pwm
We've reworked the Photon window frames, in order to reduce the CPU load and improve the speed of redrawing. If you prefer the older look, do the following before starting Photon:
export PH_WFRAME_STYLE=wframe_updated.so
  

(Ref# 66257)

Composition Manager
A hardware-independent layer of abstraction that encompasses all aspects of window management, such as window creation, realization, and destruction, as well as content updates inside the Human Machine Interface (HMI). The composition manager is compliant with OpenKode and OpenGL ES. For more information, see the Composition Manager Developer's Guide.
Pt_ARG_HIGHLIGHT_ROUNDNESS
If you create a widget, and you set Pt_ARG_HIGHLIGHT_ROUNDNESS to a nonzero value, the widget's gradient fill is now bypassed. (Ref# 24980)

What's new: Libraries and header files

calloc(), malloc(), realloc()
The MALLOC_OPTIONS environment variable now controls how these functions behave if you specify a size of 0 (or a value of 0 for the n argument to calloc()). The V (“System V”) and R (“use the realloc() behavior of QNX Neutrino 6.4.0 and earlier”) columns below indicate how the functions behave if the value of MALLOC_OPTIONS includes that letter:
Function Default V R
calloc(n, 0) Non-NULL NULL No effect
malloc(0) Non-NULL NULL No effect
realloc(NULL, 0) Non-NULL NULL No effect
realloc(non-NULL, 0) Non-NULL NULL NULL

In all the above cases, if the function returns a non-NULL pointer, it's valid only for a corresponding call to free() or realloc().


Note: The default behavior of realloc(non-NULL, 0) has changed in this release. Calls like this used to return NULL.

(Ref# 64337, 64338)

chdir(), chroot()
We've fixed a bug in chdir() that made chroot() not work properly. (Ref# 21089)
endfsent(), getfsent(), getfsfile(), getfsspec(), setfsent()
These functions work with the /etc/fstab file; you can use them to get information about the filesystem that this file describes. (Ref# 65331, 65399)

Note: These functions are in libc.a, but not in libc.so (in order to save space).

getpwent_r()
This is a reentrant version of getpwent(). Both these functions get the next entry from the password database. (Ref# 65137, 65324)
mmap()
You can now create more than one writeable mapping to a file. (Ref# 29565, 65582)
resmgr_handle_grow(), resmgr_iofuncs(), resmgr_ocb()
We now provide public versions (with names that don't start with an underscore) of these functions, which you should use instead of _resmgr_handle_grow(), _resmgr_iofuncs(), and _resmgr_ocb(). Note that resmgr_iofuncs() and resmgr_ocb() both take only one argument, a pointer to a resmgr_context_t structure. (Ref# 12297)
_resmgr_io_func()
This function is for our internal use only; use resmgr_iofuncs() instead. (Ref# 12297)
posix_spawnattr_setcred(), posix_spawnattr_getcred()
These new functions let you set or get the credentials, including the user and group IDs, to be used for spawned processes. (Ref# 61079)

Note: If you're using posix_spawn() and the experimental memory partitioning features provided in 6.4.0, you will need to recompile any source.

What's new: Drivers

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

New drivers:

devb-ahci
Driver for AHCI SATA interfaces (QNX Neutrino)

We've also addressed the following:

devb-eide
This driver no longer auto-detects RAID controllers, so as to avoid corrupting RAID configurations. Use the jumper on your card to disable RAID mode. (Ref# 60231)

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

The new drivers include:

devg-poulsbo.so
Graphics driver for Intel Poulsbo chipsets

We've also addressed the following:

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

The new drivers include:

devnp-e1000.so
Driver for Intel Gigabit Ethernet controllers (Ref# 66074, 67003)

The devnp-e1000.so and devnp-i82544.so drivers are similar:

The enumerators currently start devnp-e1000.so for Intel Gigabit Ethernet controllers, but you might want to switch to devnp-i82544.so, depending on your hardware.

devnp-rtl8169.so
Driver for Realtek 8169 Gigabit Ethernet controllers; replaces devn-rtl8169.so. (Ref# 67108, 67238)

We've also addressed the following:

devnp-i82544.so
We've corrected the default values for the irq_threshold and transmit options in the usage message and documentation. This driver doesn't support the promiscuous option. (Ref# 62229)

What's new: Documentation

What's new: I/O devices

What's new: Security

This release addresses the following security concerns:

What's new: Web browsers

Using the VMware image of a QNX Neutrino runtime system

We provide a VMware image of a QNX Neutrino 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 drag the QNX_Eval_RT folder to some location on your hard drive (e.g. My Documents).
  2. To launch, either:
  3. When 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 in the QNX Momentics Tool Suite?

The changes to the QNX Momentics Tool Suite include the following:

For more details, see the following sections:

What's new: Compiler, tools, and utilities

The QNX Momentics Tool Suite 6.4.1 includes the following versions of the compiler and tools:

Other changes include:

gcc
gdb
pidin
The pidin syspage command now displays the CPU-dependent, mdriver, and pminfo sections of the system page. (Ref# 62406, 67058)
slogger
We've corrected a processing error that occurred when buffers wrapped, so garbage no longer appears in the system log file. (Ref# 62025, 60653)

What's new: Debugging information for shipped binaries

Starting with QNX SDP 6.4.1, we're generating 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 6.4.1 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

What's new: Integrated Development Environment

This version of the IDE includes the following fixes for previously reported issues:

For more information, see the What's New in the IDE appendix of the IDE User's Guide.

A word about coexistence

The QNX Momentics Tool Suite lets you install and work with multiple versions of Neutrino (from 6.2.1 and later). Whether you're using the command line or the IDE, you can choose which version of the OS to build programs for.


Note: Only versions of Momentics with different medial version numbers can coexist. For example, 6.3.2 can coexist with 6.2.1, but not with 6.3.0. However, 6.4.0 can coexist with 6.4.1. Coexistence with 6.2.1 is supported only on Windows hosts.

When you install QNX Momentics, you get a set of configuration files that indicate where you've installed the software. The QNX_CONFIGURATION environment variable stores the location of the configuration files for the installed versions of Neutrino; on a self-hosted Neutrino machine, the default is /etc/qnx.

QWinCfg for Windows hosts

On Windows hosts, you'll find a configuration program called QWinCfg for switching between versions of QNX Momentics. You launch QWinCfg via the start menu (e.g. All Programs-->QNX Software Development Platform 6.4.1-->Configuration).

For details on using QWinCfg, see its entry in the Utilities Reference.

qconfig utility for non-Windows hosts

If you're using the command-line tools, use the qconfig utility to configure your machine to use a specific version of Neutrino:


Note: In the above command, you must use the “back tick” character (`), not the single quote character ('). The string that you pass to the -n option is the Installation Name field as printed by qconfig.

This command affects only the shell in which you ran qconfig. Other windows, for example, will be unaffected. To change environments in all your windows, you can run the command in your shell-initialization script or in your .profile. You can also define separate users who use different coexisting versions.

Coexistence and the IDE

When you start the IDE, it uses your current qconfig choice as the default version of the OS; if you haven't chosen a version, the IDE chooses an entry from the directory identified by QNX_CONFIGURATION. If you want to override the IDE's choice, you can choose the appropriate build target. (For more information, see the section “Version coexistence” in the IDE Concepts chapter of the IDE User's Guide.)

Discontinued items

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.4.1 are:

Known issues

QNX SDP 6.4.1 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
On SMP systems, the functions that lock mutexes — such as pthread_mutex_lock(), and pthread_cond_wait() (when the thread is woken up by a pthread_cond_signal() or pthread_cond_broadcast() — can unblock threads in the wrong order, which can cause a priority inversion. (Ref# 24522)

Known issues: Libraries and header files

asyncmsg_*()
Asynchronous messaging doesn't work correctly on multiprocessor systems. (Ref# 57260)
fpemu.so.2
This library causes some problems on x86 targets if it's compiled with gcc 4 with optimization about -O0. To avoid these problems, we've compiled the DLL with -O0 optimization for x86. (Ref# 55883)
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)
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)

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. (Ref# 50264)

Known issues: Startup

Known issues: Adaptive partitioning

Known issues: Booting

Known issues: BSPs and DDKs

Known issues: Compiler and tools

gcc
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.4.0 2008/09/26-04:27:12EDT SDK_7785 shle
# uname -a | grep renesas
QNX renesas_sh7785 6.4.0 2008/09/26-04:27:12EDT SDK_7785 shle
# uname -a | grep shle
QNX renesas_sh7785 6.4.0 2008/09/26-04:27:12EDT SDK_7785 shle
# uname -a | grep renesas | grep shle
#
  

(Ref# 62242)

ld
pidin
The pidin mem command doesn't display the correct amount of memory if it exceeds 231 − 1 bytes. (Ref# 63642)
qcp
The qcp utility works only on x86 platforms. (Ref# 9500)

Known issues: Device drivers

Audio device drivers (deva-*)

Block-oriented drivers (devb-*)

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)
devb-aha8
You can't restart this driver on IBM PPC405 boards. (Ref# 16018)
devb-eide

Character drivers (devc-*)

devc-con
On x86 systems, the devc-con console manager doesn't work correctly when you're using a USB keyboard. (Ref# 62053)

Workaround: Use the devc-con-hid console manager instead.

Graphics drivers (devg-*)

Human interface device drivers (devh-*)

Network drivers (devn-*, devnp-*)

devn-asix.so
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.

devn-micrel8841.so
This driver supports only PCI versions of the Micrel 8841 (1 port) or 8842 (2 port) Ethernet controllers. (Ref# 67333)
devn-pcnet.so
devn-pegasus.so, devn-rtl8150.so
Slaying io-net with the devn-pegasus.so and devn-rtl8150.so drivers isn't always successful. (Ref# 28602)

Workaround: Use kill -9 instead to kill io-net.

devn-rtl8150.so
devn-tigon3.so
This network driver on the Dell PowerEdge 850 board will run only up to 100 Mbit/s, and not 1000 Mbit/s. Other boards work well at 1000 Mbit/s. (Ref# 39355)
devnp-axe.so
devnp-bcm43xx.so
It isn't currently possible to unmount devnp-bcm43xx.so drivers using the ifconfig ... destroy command. We'll add this capability in the next revision of the driver. (Ref# 61710)
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: Licensing

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.

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

Known issues: Networking

devnp-*
ifconfig
The commands:

ifconfig iface_name up
ifconfig iface_name up

don't work individually for WiFi 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*
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)
pppd
If you use pppd with a serial port, io-pkt may become reply blocked. (Ref# 50977)

Workaround: Disable hardware flow control by clearing ihflow and ohflow:

stty -ihflow -ohflow < /dev/ser1
  
PPPOE
The LCP timeout has decreased from 3 seconds in io-net to 1 second in io-pkt, so some connections might get dropped. (Ref# 54799)

Workaround: You can increase the timeout to 3 seconds by using pppoectl:

pppoectl pppeo0 lcp-timeout=3000
  
SSH suite
The /var/chroot/sshd directory should be owned by root:root with permissions of 0755, not 0775. (Ref# 68628, 68640)

Workaround: Log in as root, and then correct the permissions:

chmod 0755 /var/chroot/sshd/
  
TCP/IP v4 (now part of io-pkt)
TCP/IP v4 and v 6 (now part of io-pkt)
If a packet is smaller than the minimum Ethernet packet size, the packet may be padded with random data, rather than zeroes. (Ref# 21460)

Known issues: Graphics

pwmopts
The Using the Photon microGUI chapter of the Neutrino User's Guide and the entry for pwmopts in the Utilities Reference refer to wframe_update.so, but the name is actually wframe_updated.so (with a second “d”). (Ref# 65310)
Arcs, Bézier curves, and ellipses
The plotting of these curves isn't very precise, resulting in lines that aren't very smooth. 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, 58277)
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)
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
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
$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)
helpviewer
PgSetLayerArg()
Pg_LAYER_ARG_EDGE_MODE (for indicating how a layer should behave if the source viewport is larger than the extent of the source data) isn't currently implemented. (Ref# 52431)

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

QNX Neutrino self-hosted

Installing on USB drives
If you're installing directly to a USB drive, note the following:

(Ref# 61707)

/x86 symbolic link
Self-hosted Neutrino systems are missing the /x86 symbolic link to the / directory. (Ref# 68593)

Workaround: Log in as root, and then do the following:

cd /
ln -s . x86
  

Windows hosts

devg-vmware.so
VirtualPC and VMware require a Windows session that's operating with 32-bit graphics. (Ref# 60669, 68050)
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:

Documentation
On Linux and Windows, you might need to install some international fonts in order to display the Multilingual Input documentation. (Ref# 61950)
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 includes a new account policy, called User Account Control (UAC), that will impact 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, you must have administrator privileges and disable UAC. (Ref# 44027)

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 Access Control by selecting the Enable UAC line and then clicking the Launch button.


Caution: Disabling UAC bypasses some of Vista's 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
Activation
IDE
The IDE won't run on some versions of Linux, such as Open SUSE 11 and Ubuntu 8.04. This is a bug in Eclipse; see bug 213194 at http://www.eclipse.org. (Ref# 66351, 66760)

Workaround: Do the following:

  1. On Ubuntu, type:
    sudo apt-get install xulrunner
        
  2. Edit $QNX_HOST/usr/qde/eclipse/qde.ini and add this line after the -vmargs line:
    -Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner/xulrunner
        

Known issues: Web browsers

Bon Echo

Getting started with the documentation

After you've installed QNX SDP 6.4.1, you'll find an extensive set of online documentation in HTML format. You can read it in the Integrated Development Environment's help system on Linux and Windows development hosts; on self-hosted QNX Neutrino systems, you can read it in the Photon helpviewer, or you can use a web browser to display:

${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.).


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

Technical support

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

List of fixes

The problems fixed in QNX SDP 6.4.1 include the following:

Software fixes

Change Ref#
We no longer support the PowerPC 900 series of processors, so we've deprecated procnto-900 and procnto-900-smp. 68225
With the integrated graphics chipset on the E5400 Dell Latitude Laptop the hardware cursor did not appear. (PCI vendor device 0x2A42) This device will now default to software cursor. You can try to force the hardware cursor to see if it works on your particular device using the graphics configuration under Photon. 67809
The IDE Debugger now correctly displays the contents of arrays with more than 100 elements. (Ticket ID 88014) 67613
For memory analysis (librcheck), we've added a MALLOC_START_TRACING environment variable that controls whether or not tracing starts at the beginning. When you set it to 0, tracing doesn't start, which lets you start it later within the application, using the API or from the IDE's Memory Analysis tool when attaching. 66929
The PtSlider now calls its callback the correct number of times when you click in the slider trough. (Ticket ID 86631) 66900
If you unset the QNX_* environment variables, the IDE now asks you if you want to exit, instead of simply exiting. 66779
Static constructors no longer crash when you compile C++ code with debugging. 66706
Photon window frames have been reworked to reduce CPU loading, and improve redraw speed. If you prefer the older look, you can do the following before starting Photon: export PH_WFRAME_STYLE=wframe_updated.so 66257
A serious race condition, and potential deadlock circumstance, has been corrected in libgf and io-display with the usage of the following routines: gf_draw_begin(), gf_draw_finish(), gf_draw_flush(), gf_draw_end(), and gf_layer_flushrect().

If you've linked your Advanced Graphics application against libgf.a or libgfS.a, you need to relink it.

66160
Some deadlocks under heavy usage in the F3S filesystem (devf) have been corrected. 65991
We've fixed some issues with copying multiple files in the IDE's Target Filesystem navigator. 65370
The ph script no longer requires that io-display be running if io-graphics doesn't need to be started. This means that you can now use Phindows to log into a target that isn't running io-display. 65352
We now ship <fstab.h>, and we've added getfsent(), getfsspec(), getfsfile(), setfsent(), and endfsent() to the static libc. 65331
The Thread State Snapshot view has been updated to support multiple selection and now displays the priority of running states. 65322
Slinger no longer crashes if the query string to a CGI script is too long, or if you use CGI or SSI and the current working directory has been invalidated. 65316
We've removed some unused Pa*() routines from libph, as well as the <photon/Pa.h> header file. 65206
The IDE now correctly supports EXTRA_SRCVPATH for variants in a QNX project. 65025
The filters view now appears in the System Profiler perspective. 64975
The slog kernel event is now supported. 64922
The filters view now provides the ability to use filters between multiple trace files and the ability to import/export filters and share them with other users. 64815
The user is prompted to switch to the System Profiler perspective when a kernel trace is opened. 64745
We've corrected a problem associated with using mmap() to create a mapping beyond the current end of the file. (This is legal according to POSIX, but you'll get a SIGBUS if you actually try to touch the page). When the kernel frees the internal structures for the memory-mapped file, it now correctly removes the physical memory that was allocated for the potential file data. 64718
The IDE's Memory Analysis Toolkit no longer crashes in librcheck.so when used with MALLOC_USE_CACHE=0 (turning off pointer caching). (Ticket ID 86739) 64629
PHF font file stem names are now constructed properly by PfFindFont*() and PfGenerateFontName*(). 64417
We now include a FontFusion reference manual. You can find it in $QNX_TARGET/usr/help/FontFusion/FF_Ref_Guide.pdf. 64352
If you resize a non NULL pointer to size 0 via realloc(p, 0), realloc() now returns a non-NULL pointer, just as malloc() does. This pointer is valid only for passing to free() or realloc(). 64337
The libimg library now properly returns an error if the input stream is truncated. (Ticket ID 86523) 64296
Pressing (in sequence) Alt, Space, the up arrow, and then the down arrow no longer causes PtList to crash. 64174
The IDE now ignores invalid files in $QNX_HOST/etc/qcc/ (previously this caused all compiler configuration to be corrupted). (Ticket ID 86414) 64170
The dhcpd daemon no longer runs ready if the lease file is corrupt. 63918
The IDE's System Summary view has a new “Stack” column that shows the processes' allocated stacks. (Ticket ID 86335) 63788
System Profiler has improved support for systems with Adaptive Partitioning. This includes the ability to filter based on partitions and to generate partition-based statistics. 63673
phs-to-pcl for PPCBE is now included in the distribution. 63636
The usage message for pidin now includes the f (process flags) and q (backtrace) formats, as well as the backtrace argument. 63488
You can now control the compression quality on the img_codec_jpg.so codec. 63481
The High Availability Manager now triggers the correct condition after another condition is freed. 63468
We've improved the aggregated results in the IDE's Application Profiler for multithreaded applications running on one CPU. 62785
The IDE's Application Profiler now uses thread names instead of IDs if the trace is imported from a kernel log. 62784
8888 alpha images are now displayed correctly in print previews. 62613
MsgSend*v*() and MsgReceive*v*() now indicate an error of EOVERFLOW instead of overflowing a buffer if the sum of the user's IOV lengths exceeds INT_MAX. 62575
New Advanced Graphics image API img_crop() has been implemented. 62571
PgReadScreen() now works in direct mode. 62282
We've corrected the default values for the irq_threshold and transmit options in the usage message and documentation for devnp-i82544.so. This driver doesn't support the promiscuous option. 62229
New flag Pg_OSC_MEM_LINEAR_ACCESSIBLE has been added for PdCreateOffscreenContext() in order to specifically request linearly accesible memory. 62196
If you add a license in text mode (e.g. on the console or via a telnet session) using finstall -l, you can now properly activate. 62147
HP xw4600 x86 desktop with nVidio Quadro FX 1700 platforms have stability issues when utilizing the devg-svga.so driver. We recommend using the devgvesabios.so driver (default). 61690
We now ship the fontinfo utility, which you can use to display the details about font files. 61470
We've addressed an issue with FIFO scheduling on SMP systems. 61367
Switching from devg-matroxg to devg-svga via modeswitching no longer causes io-graphics and/or io-display to fault. 61152
In the IDE's launch configurations, you can now specify the adaptive partition the process should run in. This functionality is available in the APS tab of the Tools tab. 60661
The /dev/console interface no longer limits the buffer size to _SLOG_MAX, so slogger no longer loses characters. (Ticket ID 85121) 60653
We've implemented some errata workarounds for wait-for-interrupt issues on some ARM926 processors. The fix is implemented within the startup callout used to invoke the wait-for-interrupt operation and requires rebuilding the BSP startup program with an updated libstartup containing the new ARM926 cpu support code. 60487
Attempting to launch a program from the IDE on a target that doesn't have a pty device now fails, and consequently doesn't break other functionality such as System Information. You now get an error message indicating that you must have a pty device (such as devc-pty) running on the target when launching. 60458
The Code Coverage tooling now works properly for applications (e.g servers) that don't exit. 60457
The setkey utility now supports the 3des-deriv encryption algorithm. 60289
In the IDE's System Profiler, thread names are now preserved when you save a selection of a .kev file. (Ticket ID 84937) 60269
The df utility has a new -h that makes df display the sizes in human-readable form, using bytes, KB, MB, or GB as the units. 60077
We've corrected the information, in the SPI (Serial Peripheral Interface) Framework technote, about what the spi_read(), spi_write(), spi_xchange(), spi_cmdread(), and spi_dma_xchange() functions return. (Ticket ID 84471) 59977
The PtFileSel widget now consistently handles the root item when the Pt_FS_NO_ROOT_DISPLAY flag is set. 59670
PpGetCanvas() now properly processes the width and height of a canvas in landscape mode. 58706
phs-to-pcl: Issues related to text layout have been resolved. 58180
phs-to-pcl: Improper text clipping resolved. 57113
phs-to-pcl: Fill patterns are now processed. 52878
We've updated the filters in the IDE's Memory Analysis memory events charts to add pointer filtering. You can now search for events using this filtering mechanism. 52701
The Disassembly view in the IDE's Debug perspective now has a Go To Address action. After the assembly code is located, you can select Open Source from the context menu. If the source code is available, the IDE opens the source file and highlights the appropriate line. 52681
The diskboot utility now has a -u option that you can use to override the default options passed to io-usb. (Ticket ID 80346) 52436
Copying files over Qnet is faster with devnp-bge.so than it was with devn-tigon3.so. (Ticket ID 80016) 50454
You can now fold compound statement blocks in C/C++ code in the IDE's Editor view. This type of folding has to be enabled in the global preferences first. 50023
The stencil buffer is now cleared correctly for the Carmine board. (Ticket ID 77993) 47115
It is possible now to copy the .boot file to the target filesystem using drag-and-drop (as well as other files, in read-only directories, but in which files have write access). 46882
The IDE has new launch configuration Group Launch that lets you launch several processes simultaneously (or sequentially). 45543
The libphrender library now writes a message on the system log if your graphical operation exceed the buffer limits in io-graphics. You can use the -p option to io-graphics to change the buffer size. (Ticket ID 76000) 44030
In the IDE, the APS view's CPU Usage chart no longer shows the usage for each partition returning to zero at the right side of the chart; the lines now correctly end at the last point of data collected. 42656
The etfsctl utility can now read and write the ETFS image file from/to stdin or stdout. Note that etfsctl will not recover from a bad block if writing an image from stdin. 41317
The CPU Usage graph in the APS view now displays the partition's budget along with its CPU usage. 40275
Destructors in shared objects are now executed on SH platforms. 40137
The System Resources view now presents a graph of CPU usage for the target system. 39113
You can now create more than one writeable mapping to a file. 29565
The IDE's System Information perspective's Malloc Info view is now updated correctly when Memory Analysis Tooling is active on the same process. 28712
The PWM_PRINTSCRN_APP environment variable now specifies (as documented) the application to launch when you press the Print Screen key. 28500
You can now successfully install the QNX Software Development Platform on Windows systems that use multibyte characters. (Ticket ID 70136) 27993
We've removed the -L (landscape) option from the phs-to-* printer filters. Use PpSetPC() to set the orientation in the printer draw stream to Pp_PORTRAIT, Pp_LANDSCAPE, etc. (Ticket ID 69400) 25697
Searching for macros now works properly in the IDE. 23596
If you have two breakpoints exactly one instruction apart, the second breakpoint now correctly stops the debugger. 20833
Slinger now correctly sets the SERVER_ROOT environment variable when you use CGI or SSI. (Ticket ID 65719) 20795
The phs-to-pcl utility now correctly processes colors on PPCBE platforms. (Ticket ID 63022) 16990
When two or more threads in a process wait for a child process to die, they now correctly come back with the child's exit status instead of all but one remaining blocked. 10381

Documentation fixes

Change Ref#
The documentation now points out that resmgr_attach() copies the pointers to the resmgr_connect_funcs_t and resmgr_io_funcs_t structures, not the structures themselves. You should allocate the structures, declare them to be static, or make them global variables. If your resource manager is for more than one device with different handlers, create separate structures that define the handlers. 68115
The documentation for devg-vmware.so now points out that VirtualPC and VMWare require a Windows session that's operating with 32-bit graphics. 68050
The name_attach() function can indicate an error of EBUSY if it couldn't create a channel. 67878
The .altboot file is for the QNX 4 filesystem. We've updated some references to it in the documentation to also cover the Power-Safe (fs-qnx6.so) filesystem. 67803
The phs-to-bjc, phs-to-bmp, phs-to-escp2, phs-to-ijs, phs-to-pcl, phs-to-ps utilities no longer support the -L option. (Ticket ID 69400) 67579
The documentation for gf_surface_get_info() now says that you should use the paddr member of the gf_surface_info_t structure only if GF_SURFACE_PHYS_CONTIG is set in the flags member. 67561
In the chapter Developing C/C++ Programs in the IDE User's Guide, documentation was added to “Building from the command line” that describes how to build one or more projects in the IDE workspace from the command line. 67259
We've updated the documentation for arp and dhcp.client to reflect the current usage messages. 67256
Legacy io-net drivers create entries under /dev/io-net, not under /dev/io-pkt. 67249
We've corrected some mathematical errors in the maximum file sizes for the Power-Safe (fs-qnx6.so) filesystem in the QNX Neutrino User's Guide. 67237
We've corrected the example in the documentation for name_attach() so that it cleanly compiles. 67167
You can find unsupported editors and other third-party software in the Bazaar project on our Foundry 27 website. 66957
The -S option for ldrel adds a note that specifies the maximum (not minimum) stack size. If you don't specify -L, the stack is specified as non-lazy. 66928
For detailed documentation about the GNU binutils (addr2line, ar, c++filt, gprof, ld, nm, objcopy, objdump, ranlib, readelf, size, strings, and strip), see the GNU website at http://www.gnu.org/. 66865
We've updated the options for io-blk.so; for more information, see the Utilities Reference. 66861
We've corrected the information about the flags for resmgr_attach(): use the flags whose names don't start with an underscore (RESMGR_FLAG_*) in the flags member of the resmgr_attr_t structure; use the flags whose names do start with an underscore (_RESMGR_FLAG_*) in the flags argument to the function. 66755
When setting the time for use with pthread_cond_timedwait(), you can use nsec2timespec() to convert times in nanoseconds to a timespec structure (and timespec2nsec() to convert them back again). 66700
We've added the language codes for Chinese, North Korean, and South Korean to the table in the International Language Support chapter of the Photon Programmer's Guide. 66427
The entry for fs-qnx6.so in the Utilities Reference now describes the required device properties for the Power-Safe filesystem. 66339
If the RLIMIT_DATA limit set with setrlimit() is exceeded, the brk(), mmap(), and sbrk() functions fail with errno set to ENOMEM. 66278
An error of EPERM from InterruptAttachEvent() indicates that the process doesn't have I/O privileges. 66260
The cron utility has a -s option that makes cron poll for jobs every minute. 66201
The entry for resmgr_detach() in the QNX Neutrino Library Reference now describes the _RESMGR_DETACH_CLOSE flag, which closes all bindings when detaching. 66106
The entry for gcc in the Utilities Reference now describes the -mno-fp-moves option (a QNX Neutrino extension), which prevents the code generator from using floating point registers to move integers. 66031
In the chapter Preparing Your Target in the IDE User's Guide, documentation was added to “Networking QNX Neutrino using PPP” to describe how to set up and use the IDE from a Windows configuration to an embedded target over a PPP serial link. 66023
The documentation for devf-generic now describes the -d option, which controls logging, and the -e option, which controls the enumeration and automounting of partitions. 66019
The documentation no longer says that iofunc_lock() isn't implemented. 65936
The integer that's passed to the handler you register with InterruptHookTrace() is a combination of the buffer index and the sequence number; to extract each, pass the integer to the _TRACE_GET_BUFFNUM() and _TRACE_GET_BUFFSEQ() macros. 65935
The output from fsysinfo now includes statistics about the number of pages mapped in and released by the heap-allocation subsystem. 65687
We've corrected the sample code for using images in columns in a PtTree so that it correctly sets Pt_ARG_TREE_COLUMN_ATTR. 65613
You can now use mmap() to get more than one writeable mapping to a real file. 65582
In the chapter Analyzing Your System with Kernel Tracing in the IDE User's Guide, documentation was added to “Filtering using partitions” to describe partition based filtering, which lets the current editor panes and views that support filtering to only show data related to selected partitions. 65546
In addition to supporting UDF (OSTA-UDF/ECMA-167) filesystems, fs-udf.so now supports ISO-9660 (base 1998 spec, 1999 spec, Joliet extensions, Rock Ridge extensions). As a result, it has several new options, as described in the Utilities Reference. 65320
The mkqnx6fs utility has new -O and -o options that you can use to change booting and filesystem options for the Power-Safe filesystem. 65319
We've corrected the description of the sync option for fs-qnx6.so. 65318
You can use the devn-el509.so and devn-sis9.so drivers with any variant of io-pkt, not just io-pkt-v4. 65311
In the chapter Analyzing Your System with Kernel Tracing in the IDE User's Guide, documentation was added to “Trace Event Log view” to explain an example of an event configuration file by describing it's contents. 65302
The filesystem (fs-*) entries in the Utilities Reference now have links to the Filesystems chapter in the System Architecture guide and the Understanding System Limits chapter of the QNX Neutrino User's Guide. 65275
We've corrected the documentation for enum-devices: when specifying a device, vend should actually be ven. 65255
We've removed references to the ntomulti-* variants (which we no longer ship) of addr2line, ar, gprof, nm, objcopy, objdump, size, strings, and strip. 65152
We now link to version 5.0 of the NetBSD documentation for ftp. 65106
The QNX Neutrino Library Reference now includes entries for resmgr_msgreply() and resmgr_msgreplyv(). 64924
On ARMv6 platforms, the maximum number of processes (actually address spaces) is 255; we've updated the Understanding System Limits chapter of the QNX Neutrino User's Guide. 64899
The documentation for the USB DDK no longer states that isochronous and split isochronous transfers are unsupported. 64842
The entry for mksbp in the Utilities Reference now describes how to build a System Builder project that's inside an IDE workspace or just logically linked to one. 64806
The Using PhAB Under Microsoft Windows appendix of the Photon Programmer's Guide now says you should run mkfontdir, not mkfontdir.exe (Ticket ID 86748) 64792
The devc-con, devc-con-hid, devc-par, and devc-serpci drivers are for x86 targets only; devc-serzscc is for PPCBE and x86 targets. 64730
We've updated the documentation for wpa_supplicant to reflect the NetBSD 5.0 version of the daemon. 64602
We've updated the list of supported options for pppd, including the list of those that are specific to QNX Neutrino. 64519
Use ioctl_socket() instead of ioctl() in Packet Filter (pf) or Berkeley Packet Filter (bpf) code. 64503
We've updated the IP Tunneling (Generic Routing Encapsulation) technote. 64212
In the chapter Finding Memory Errors in the IDE User's Guide, documentation was added to “Using a file to log the trace” to describe how to use the LD_PRELOAD command from the command line, as well as updates to the list of supported options for librcheck in “Memory Analysis GUI flags and corresponding environment variables”. 64172
The entry for mmap() in the Neutrino Library Reference now describes the MAP_BELOW, MAP_ELF, MAP_FILE, MAP_NORESERVE, and MAP_RENAME flags. 64168
In QNX Neutrino, RLIMIT_DATA covers all mappings made by the process that are MAP_ANON | MAP_PRIVATE that aren't MAP_STACK, which corresponds typically to heap allocations. 64135
In the chapter Managing Source Code in the IDE User's Guide, documentation was added to “Importing a BSP or other QNX source packages” to describe how to import a BSP or source package from Foundry27. 64093
The documentation for mmap() now describes how the function handles typed memory objects. 64076
The io-pkt-v4, io-pkt-v4-hc, and io-pkt-v6-hc stacks now process some generic driver options for all USB drivers using the NetBSD-to-QNX conversion library to let you identify a particular USB device. For more information, see the Utilities Reference. 64022
We now use the latest version of the tftp client, which supports a new -e option and port argument, and new blksize, tout, and tsize commands. 64021
The io-pkt-v4, io-pkt-v4-hc, and io-pkt-v6-hc stacks now process a name= driver option that lets you specify the interface names. 64020
We've added entries for ApInitialize() and ApLinkWindow() to the Photon Library Reference. (Ticket ID 86422) 64014
The entry for pidin in the Utilities Reference now describes the q format and the backtrace argument. 63487
The entry for pidin in the Utilities Reference now describes the mapinfo shorthand. 63486
We've added more details to the technote on creating your own runtime kit. 63296
All our disk filesystems except fs-qnx4.so use UTF-8 encoding for presentation of their filenames; attempts to specify a filename not using UTF-8 encoding will fail (with an error of EILSEQ) on these filesystems. (Ticket ID 85972) 62919
The Using Qnet for Transparent Distributed Processing chapter of the QNX Neutrino User's Guide now includes more details about the way that /net gets populated. 62899
In the chapter Using Code Coverage in the IDE User's Guide, documentation was added to “Enabling code coverage for Make projects” to describe how to configure code coverage, additional options to specify, and detailed comments were included in the example Makefile. 62762
The documentation for tr now says that you can specify ranges of characters with or without square brackets. 62731
In the chapter Profiling an Application in the IDE User's Guide, documentation was added to “Building with profiling enabled” to describe how to configure a Makefile to do profiling for function instrumentation. 62721
The entry for dlsym() in the QNX Neutrino Library Reference now describes the special RTLD_NEXT flag. The entry for dlopen() and the Dynamic Linking chapter of the System Architecture guide now describe how LD_PRELOAD is used when resolving symbols. 62713
We've removed a reference to vmware.boot, which we no longer ship, from the documentation for mkifs. 62596
The documentation for pidin now describes the channels argument. 62504
We've corrected the entry for /etc/inetd.conf in the Utilities Reference; a server doesn't need to explicitly leave the master socket open when it exits. 62469
The Photon Programmer's Guide has a new chapter, Understanding Encodings, Fonts, Languages and Code Tables. 62462
The QNX Neutrino Library Reference now includes entries for mq_timedreceive_monotonic() and mq_timedsend_monotonic(). These functions are similar to mq_timedreceive() and mq_timedsend(), but they use CLOCK_MONOTONIC, so the timeout isn't affected by changes to the system time. 62417
We've restored the “Setting up a restricted ftp subtree” section that was removed from the documentation for ftpd in QNX SDP 6.4.0. 62329
The System Architecture guide now says that if a thread sends a message with an “nc” (non-cancellation point) variant of MsgSend*(), then when the server replies, the thread is placed at the front of the ready queue, rather than at the end. If the scheduling policy is round-robin, the thread's timeslice isn't replenished. 62293
The usage message and documentation for ldrel no longer include the discontinued -S 0 option. 62258
The Utilities Reference now includes an entry for top. 62233
The entry for mkefs in the Utilities Reference now describes the -c option, which you can use to specify the directory in which to cache compressed files. 62221
The documentation for io-usb now describes the -P option, which you can use to specify the priority of the server. 62206
Even with exceptions disabled, the new() operator throws a std::out_of_memory exception if there isn't enough memory. If you want new() to return NULL instead of throwing an exception, overload the new() operator with your own. (Ticket ID 85592) 62050
You should allocate mutexes, condvars, barriers, reader/writer locks, semaphores, objects you plan to use atomic operations on, and the control structure for pthread_once() only in normal memory mappings. On certain processors (e.g. some PPC ones), atomic operations and calls such as pthread_mutex_lock() will cause a fault if the object is allocated in uncached memory. 61585
The Utilities Reference now includes an entry for qbinaudit. You can use this script to compare your binaries with the official released versions. 61572
The documentation for cam-disk.so now explains how you can specify a starting device number in the name= option. Note that you should do this only in closed systems where you know which devices and indexes are present. (Ticket ID 85444) 61524
The documentation for io-blk.so now explains how you can use the naming= option to change the naming scheme used for devices and partitions. Note that you should do this only in closed systems where you know exactly which devices will be present. Some system components may make assumptions about the naming scheme. (Ticket ID 85444) 61523
We've added an entry for devg-poulsbo.so to the Utilities Reference. 61490
The wait(), wait4(), waitid(), and waitpid() functions suspend the calling thread, not the calling process. 61293
ThreadCtl() and ThreadCtl_r() indicate an error of EINVAL if the specified runmask is invalid. 61290
If you use ConnectAttach(), your application needs to include <sys/netmgr.h>, in order to define ND_LOCAL_NODE. 61282
The entry for devc-con and devc-con-hid now describes how to specify international keyboard layouts. 60636
The QNX Neutrino Library Reference now includes an entry for getpagesize(). 60431
The QNX Neutrino Library Reference now includes an entry for fchdir(). 60375
The documentation for mkifs now explains how you can specify the compression algorithm for the compress attribute. 60348
We've added more details to the documentation for pidin about the output from the memory argument. 60155
The documentation for phlocale now mentions that this utility creates or updates /etc/country to indicate the country you're in, based on your selection of the time zone. 59765
The entries for mkefs, mketfs, and mkifs in the Utilities Reference now state that you can specify a filter of none. (Ticket ID 84523) 59663
We've added an entry for ldd to the Utilities Reference. This utility lists the shared libraries that a program requires. 59506
The Conventions for Recursive Makefiles and Directories appendix of the QNX Neutrino Programmer's Guide now describes how to use the JLEVEL macro to enable parallel builds. 59372
In the chapter IDE Concepts in the IDE User's Guide, documentation was added to “Considerations for project development” to include additional information that developers should know/consider for project development. 59277
We've updated the list of algorithms that setkey supports. 58728
Some examples of override files set VERSION_REL, which specifies the version of QNX Neutrino that you're building for. This variable is primarily for internal use at QNX Software Systems; it indicates that make is running on a build machine instead of on a developer's desktop. If you set this variable, make becomes a lot more particular about other settings (e.g. it will insist that you set PINFO). 58620
The fildes argument to mmap() can be the file descriptor for a file, shared memory object, or typed memory object, or NOFD if you're mapping physical memory. 58550
The options for tail now conform to POSIX; we've updated the documentation. 57975
The IDE User's Guide now explains how to change the order in which extra libraries are linked against. (Ticket ID 75996) 57550
In the IDE, if you build a make project, and then modify and build the project outside of the IDE for a library that it needs to link against, when you attempt to select Build Project in the IDE, it won't reissue the make all command for the project. The IDE will ignore the explicit user-specified build request for this particular scenario. 57485
We've added an entry for op to the Utilities Reference. Note that this utility is a security hole and requires some setup (described in the documentation) to make it functional. We recommend you use su instead of op. 56022
The fdisk info command displays a warning if the number of sectors reported by the device doesn't match the product of the number of cylinders, the sectors per track, and the number of heads. This is expected for hard drives that use zoned bit recording. 54075
The on utility now has a -P option, which spawns the process, setting the SPAWN_PADDR64_SAFE flag to indicate that the process is known to operate safely with 64-bit addressing or doesn't care about the physical memory location. 53500
The Writing a Resource Manager guide now includes a section on handling mount requests. 46791
In the chapter Building OS and Flash Images in the IDE User's Guide, documentation was added to “Image and item properties” to describe all of the properties for images. 45710
The entry for timer_getoverrun() in the QNX Neutrino Library Reference now points out that pulses are queued for a process, so timer overruns occur only for signals. 44817
The High Availability Manager can see death messages only from tasks that are running in session 1, and daemon() doesn't put the caller into that session; use procmgr_daemon() instead if you want to use your application with the HAM. If you want to use inetd under control of the HAM, specify the -D option when you start inetd. 42701
If you use Overrides directories in a buildfile in the IDE, and you want to build your project from the command line, you need to use the -r option to specify the path to the overriding directories. We've updated the IDE User's Guide. (Ticket ID 74804) 41527
Because of the nature of time measurement, timers might actually expire later than the specified time, and delays might be longer than specified. The QNX Neutrino Programmer's Guide now includes a chapter that explains the kernel's concept of time. 41038
The IDE User's Guide now explains the difference between shared objects and DLLs. (Ticket ID 74157) 40841
The Writing an Interrupt Handler chapter of the QNX Neutrino Programmer's Guide and the Customizing Image Startup Programs chapter of Building Embedded Systems now include more information about interrupts on multicore systems. 40481
All PCI servers (e.g. pci-bios) have an -x option that prevents the server from removing devices from the PCI bus while enumerating them. 40300
The micro-embedded shell, uesh, now accepts a script file as an argument. Since this shell doesn't support filename expansion, * and ? aren't special characters. 38216
The System Resources view now provides a processes' CPU usage as a % of non-idle time. 37587
By default, filesystems are mounted as read-write if the physical media permit it. You can use the -r option for mount to mount the filesystem as read-only. The io-blk.so library also supports an ro option for mounting block I/O filesystems as read-only. 36077
MsgDeliverEvent() and MsgDeliverEvent_r() can give an error code of EINVAL if the given event isn't valid. 29974
The documentation for the Advanced Graphics API now includes the correct header files. 29734
The Writing a Resource Manager guide now includes more details about unblocking your resource manager's clients. 29263
The Utilities Reference now includes entries for ed, getty, indent, ldd, ln-w, mcs, op, patch, and unifdef. 29234
The documentation for iofunc_notify() now describes the _NOTIFY_CONDE_* (extended) flags. 27315
The QNX Neutrino Library Reference now includes an entry for resmgr_msg_again(). 26868
The System Architecture guide and the entries for ChannelCreate(), ConnectAttach(), and MsgSend*() in the QNX Neutrino Library Reference now mention that if a process wants other processes to communicate with it, it can use name_attach() to create a channel and associate a name with it. The sender process can then use name_open() to locate that name and create a connection to it. (Ticket ID 70168) 26438
The documentation now explains why the nanospin*() functions wait for at least the specified time, but not necessarily for exactly the specified time. 25817
We've corrected the types of the members of the timeval structure in the entries for gettimeofday() and settimeofday() in the QNX Neutrino Library Reference. 25655
We've corrected the list of errors that ttyname() and ttyname_r() can indicate. 24628
The Pt_ARG_REGION_DATA resource isn't implemented, so we've removed it from the Widget Reference. 24315
The entry for traceroute in the Utilities Reference now describes the -d and -P options. 23311
The entry for iofunc_notify() in the QNX Neutrino Library Reference now describes the IOFUNC_NOTIFY_DISARM() and IOFUNC_NOTIFY_INIT() macros, which disarm and initialize a notification list. The entry for iofunc_notify_trigger() now describes the IOFUNC_NOTIFY_INPUT_CHECK(), IOFUNC_NOTIFY_OBAND_CHECK(), and IOFUNC_NOTIFY_OUTPUT_CHECK() macros, which check a notification list to see if it's worthwhile calling iofunc_notify_trigger(). 22781
The entries for ntpd and ntpdate now refer you to the FreeBSD documentation for information about the ntp.conf and ntp.keys configuration files. 22587
The entries in the Utilities Reference now indicate which host OSs the utilities run on. 22137
The documentation for mmap() now mentions that you can use MAP_SHARED | MAP_ANON to create a region to be shared by forked applications. 20273
If the given msg_len is less than the mq_msgsize for the given queue, mq_receive() sets errno to EMSGSIZE, not EINVAL. 18626
The Processes chapter of the QNX Neutrino Programmer's Guide now includes a section on manipulating threads via the /proc/pid/as files. 17722
The documentation for pthread_attr_setstackaddr() and pthread_attr_setstacksize() now points out that the system uses some of the provided stack for objects such as thread local storage and an initial stack frame, so less than the entire buffer is available to the thread. 16694
We've added more details to the entry for fdisk in the Utilities Reference, including information about partition types, the corresponding filesystems, and the commands you use to initialize the filesystems. 16356
The documentation for mmap() now describes the MAP_NOSYNCFILE flag. 14493
The documentation for ls now points out that if you're using Qnet, doing something like ls -R /net can take a very long time because it recursively lists all the directories on all the machines on your network. 10380