Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Technical Articles

QNX Technical Articles

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

 

QNX® Software Development Platform 6.4.0: Release Notes

QNX® Software Development Platform 6.4.0: Release Notes

Date of this edition: November 28, 2008

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

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:

If you find problems with any virtualization environment, please let us know.


Note:
  • We no longer support the QNX Momentics Tool Suite on the following hosts:
    • Windows NT
    • Linux Red Hat 8 and 9
    • Solaris
  • You can't install QNX SDP 6.4.0 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 the latest information about using BSPs with QNX SDP 6.4.0, see the SDP 6.4.0 BSP Information page (http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/SDP_6.4.0_BSP_Info?_message=1218739798710) found in the BSPs and Drivers project of 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.0?

The key improvements in 6.4 include:

For more details, see the following sections:

Migrating from earlier releases

Supported targets

We no longer support ARMBE, MIPSBE, MIPSLE, or Intel 386 targets. (Ref# 58190, 58192, 58193)

POSIX PSE52 conformance

We've made the changes described below in order to conform to PSE52, a subset of POSIX intended for realtime controllers.

What's new: Kernel

What's new: Core networking

QNX Neutrino has a new core networking stack that's based on NetBSD 4.0 stack. The main features include:

There are three variants of the networking manager:

io-pkt-v4
IPv4 version of the stack with no encryption or Wi-Fi capability built in. This is a “reduced footprint” version of the stack.
io-pkt-v4-hc
IPv4 version of the stack that has full encryption and Wi-Fi capability built in and includes hardware accelerated cryptography capability (Fast IPsec).
io-pkt-v6-hc
IPv6 version of the stack (includes IPv4 as part of v6) that has full encryption and Wi-Fi capability, also with hardware accelerated cryptography.

Note: In our documentation, we use io-pkt to refer to all the stack variants. When you start the stack, use the appropriate variant; io-pkt isn't a symbolic link to any of them.

We've discontinued the following:

Instead of using: Use:
io-net io-pkt*
ipf, ipfs, ipfstat, ipmon, ipnat pf, /etc/pf.conf, pfctl
lsm-ipfilter-v4.so, lsm-ipfilter-v4.so lsm-pf-v4.so, lsm-pf-v6.so
lsm-sctp.so N/A; not currently supported by io-pkt*
nfm-autoip.so lsm-autoip.so
npm-pppmgr.so Now included in io-pkt*
npm-pppoe.so Now included in io-pkt*
npm-qnet.so, npm-qnet-l4_lite.so lsm-qnet.so
npm-qnet-compat.so N/A
npm-tcpip.so N/A
npm-tcpip-v4.so, npm-tcpip-v6.so Now included in io-pkt*
npm-ttcpip.so N/A

We also no longer ship the SRI SNMP suite or the Network DDK.

The new, related binaries include:

brconfig
Configure network bridge parameters
hostapd
Authenticator for IEEE 802.11 networks
ifwatchd
Watch for addresses added to or deleted from interfaces and call up/down-scripts for them
lsm-autoip.so
AutoIP negotiation module for link-local addresses
lsm-qnet.so
Transparent Distributed Processing (native QNX network) module
/etc/nsswitch.conf
Name-service switch configuration file. This file replaces the lookup keyword in /etc/resolv.conf.
openssl
Command-line tool for using the OpenSSL crypto library
pf
Packet Filter pseudo-device
pf.conf
Configuration file for pf
pfctl
Control the packet filter (PF) and network address translation (NAT) device
pppoectl
Display or set parameters for a PPPOE interface
sockstat
List the open sockets
tcpdump
Dump traffic on a network
wpa_cli
WPA command-line client
wpa_passphrase
Set WPA passphrase for a SSID
wpa_supplicant
Wi-Fi Protected Access client and IEEE 802.1X supplicant

The other changes of note include the following:

What's new: Filesystems

QNX Neutrino 6.4.0 introduces the Power-safe “copy on write” filesystem. It's the default filesystem for self-hosted Neutrino systems. FFSv3 and ETFS are included in base runtime.

The new filesystems and the related utilities include:

chattr
Manipulate the attributes of a file (QNX Neutrino)
chkqnx6fs
Check an entire Power-Safe filesystem for consistency (QNX Neutrino)
fs-qnx6.so
Shared object that supports the Power-Safe filesystem (QNX Neutrino)
fs-udf.so
Shared object that supports Universal Disk Format (OSTA-UDF/ECMA-167) filesystems
fsysinfo
Display filesystem statistics (QNX Neutrino)
mkqnx6fs
Format a Power-Safe filesystem (QNX Neutrino)

For more information, see the Filesystems chapters in the System Architecture and the Neutrino User's Guide, as well as the entries in the Utilities Reference.

Other changes include:

fs-etfs-ram
An ETFS filesystem is no longer mounted by default; you can use the -m option or mount -tetfs /dev/etfs2 my_mountpoint. (Ref# 41841, 57498; Ticket ID 74912)
fs-qnx4.so
A deadlock no longer occurs during one of our benchmark tests. (Ref# 49288, 49636)

What's new: Graphics

The new binaries include:

dispconf
Generate display configuration data
gf-calib
Calibrate a GF touchscreen (QNX Neutrino)
io-display
QNX Advanced Graphics server

When you want to run both GF/OpenGL ES and Photon applications, you must start io-display before starting the Photon graphics server, io-graphics. In this situation, io-graphics queries io-display for the display's settings rather than its own command-line settings.

For more information on io-display and Photon, refer to Appendix: Photon in Embedded Systems in the Photon Programmer's Guide.

phrelaycfg
Configure remote access to your Photon session.

Note: We strongly recommend that you use the Advanced Graphics layering API instead of the Photon layering API, due to increased functionality and ease of use. (Ref# 60878)

What's new: Libraries and header files

libc.so
Because of some changes in the way that gcc handles its runtime support routines, we've had to change the version number of libc.so to 3, to be able to support old (pre-6.4.0) binaries on a 6.4.0 system.

There are two changes that were made to gcc:

  • The link visibility of the runtime support symbols in libgcc has changed to be hidden. This means that each binary (executable or shared object) has its own copy. Linking against a shared library now no longer lets you use the copy that's in the shared library. Earlier binaries relied on finding these symbols in libc.so.2.
  • The other change was in the way the compiler calls the runtime support routines. It has specific knowledge of the registers corrupted by each routine, and it also assumes that the routines won't be called indirectly (i.e. the routines won't live in another executable or shared object). This means that it saves fewer registers than it used to before calling the routine (a performance improvement), but that if an executable compiled with gcc 4 is linked in such a way that it calls a runtime support routine indirectly, then register corruption will occur.

You need to update your buildfiles as follows to use the new version of libc.so:

  • Change this line:
    procmgr_symlink ../../proc/boot/libc.so.2 /usr/lib/ldqnx.so.2
        

    to this:

    procmgr_symlink ../../proc/boot/libc.so.3 /usr/lib/ldqnx.so.2
        
  • If your buildfile explicitly includes libc.so.2 in the list of binaries, change it to include libc.so (or at least libc.so.3).
  • Add libc.so.2 to the list of included binaries before libc.so:
    # Include the current libc.so. It will be created as a real
    # file using its internal SONAME, with libc.so being a
    # symlink to it. The symlink will point to the last libc.so.*,
    # so if an earlier libc is needed (e.g. libc.so.2), add it
    # before libc.so.
    
    libc.so.2
    libc.so
        

(Ref# 58590, 59482)

Dinkum libraries
We've upgraded to Dinkumware version 5.0. For information about the changes to the libraries, see http://www.dinkumware.com/WhatsChanged.aspx. The new libraries include at least the following corrections:
  • If you call pow( x, 2.0f ), the function no longer returns infinity for small values of x.
_cmdname()
The _cmdname() function now correctly gives the full path that the current process was invoked from. Not only does this change make _cmdname() behave as documented, but it's necessary to make _cmdfd() work correctly. (Ref# 59299)
dispatch_create_channel()
This function is similar to dispatch_create(), but it lets you specify the channel ID for the dispatch. This lets you safely use name_attach() in Photon applications, as well as specify channel flags for name_attach(). (Ref# 24325, 59009)

Note: If your code calls the internal (and undocumented) _dispatch_create() function, you should modify it to call dispatch_create_channel() instead.

encrypt()
This function now lets you encrypt or decrypt the given string, depending on the flags argument. (Ref# 40565, 40639)
pthread_mutex_timedlock()
This function now returns EOWNERDEAD if the owner of the lock died while holding it. (Ref# 52449, 52863)
shm_ctl_special()
This function supports some new special flags for PPC and ARM platforms. (Ref# 39614, 48279, 58664)
spawn*()
There's a new SPAWN_PADDR64_SAFE flag that permits the selective application spawn of a task that's known to be 64-bit safe or doesn't care about the physical memory location. (Ref# 52392, 60956; Ticket ID 80995)

What's new: Drivers

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

The new drivers and DLLs include:

deva-ctrl-intel_hda.so
Sound driver for the Intel High Definition Audio controllers
deva-mixer-hda.so
Mixer DLL for High Definition Audio codecs. We currently support a limited number of codecs.

Other changes include:

The changes to the Audio DDK include:

The changes to the software PCM mixer include:

We've deprecated the drivers for Creative Sblive and Cyberpro5.

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

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

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

The new drivers include:

devg-gma9xx.so
Graphics driver for Intel 945GX and 945GMx chipsets
devg-soft3d.so
Software 3D graphics module
devg-poulsbo.so
Graphics driver for the Poulsbo chipset. Note that this graphics driver is currently undocumented. Refer to the devg-poulsbo.so -use message for information about using this driver.

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

The new drivers include:

devh-egalax.so
Driver for USB Egalax touch devices
devh-touchintl.so
Driver for USB Touch International touch devices

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

The new drivers include:

devi-semtech
Semtech input manager for Photon
devi-zytronic
Zytronic input manager for Photon

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

The new drivers include:

devn-asix.so
Driver for the ASIX AX88172/AX88178/AX88772 USB Ethernet dongle
devn-micrel8841.so
Driver for Micrel 8841 (1 port) or 8842 (2 port) Ethernet controllers
devn-rtl8169.so
Driver for Realtek 8169 Gigabit Ethernet controllers
devnp-ath.so
Driver for wireless network adapters based on the Atheros AR5210, AR5211, AR5212, and AR5213 chips
devnp-axe.so
Driver for USB (2.0) Ethernet adapters based on the ASIX AX88172 chip
devnp-bcm1250.so
Driver for Broadcom BCM1250 10/100/1000 Mbit Ethernet controllers
devnp-bcm43xx.so
Driver for the Broadcom-based 802.11b/g wireless Ethernet controller
devnp-bge.so
Driver for Broadcom 57xx Tigon3 10/100/1000 Mbit Ethernet controllers
devnp-i82544.so
Driver for Intel 82540, 82544, 82545, 82546, and 82547 Gigabit Ethernet LAN adapters
devnp-mpc85xx.so
Driver for Freescale MPC85XX TSEC Ethernet controllers. This driver is shipped only with the BSPs that need it.
devnp-mpcsec.so
Hardware Crypto Engine driver. This driver is shipped only with the BSPs that need it.
devnp-msk.so
Driver for Marvell Yukon-2 based Gigabit Ethernet adapters
devnp-ral.so, devnp-ural.so
Driver for wireless adapters based on the Ralink RT2500, RT2501, RT2600, and RT2500USB chipsets
devnp-rum.so
Driver for USB 2.0 wireless adapters based on the Ralink RT2501USB and RT2601USB chipsets
devnp-shim.so
“Shim” driver for backward compatibility with io-net
devnp-speedo.so
Driver for Intel 82557, 82558, and 82559 Fast Ethernet LAN adapters

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

The new binaries include:

enum-usb
Enumerate devices on the USB bus

What's new: Documentation

What's new: Multimedia

The new binaries include:

mcd
Media Content Detector utility

What's new: Web browsers

We continue to work on other browser-related offerings that are planned for future releases or available separately from SDP. Please contact QNX directly for more information.

What's new in the QNX Momentics Tool Suite?

The QNX Momentics Tool Suite features:

For more details, see the following sections:

What's new: Compiler and tools

The changes include:

dumper
There's a new -z option that makes dumper use gzip to compress the core files. The option takes an integer argument that specifies the level of compression, in the range from 1 (fastest) through 9 (best compression). (Ref# 39662)
gcc
  • We've updated gcc to version 4.2. We no longer ship versions 2.95.3 or 3.3.5. (Ref# 54006)
  • With gcc 4.2, the char data type is now unsigned on PPC targets. (Ref# 43764)
  • If you use the -Os option with gcc to optimize for size, you no longer get some compile errors. (Ref# 19955, 21347)
  • Version 4.2 of gcc (unlike 2.95.3 and 3.3.5) doesn't report any parsing errors for seemingly simple code. (Ref# 20409)
  • Nested functions (i.e. one function declared inside another) now work properly.
  • The __cxa_atexit() function is now supported. C++ shared objects can optionally use __cxa_atexit(), which allows their destructors (normally registered with atexit()) to be called at dlclose() time. As a result, you can now use dlopen() and dlclose() on C++ shared objects. (Ref# 19702)
gdb
We've updated gdb to version 6.7. (Ref# 54030)
icc
We've discontinued the Intel 8.1 compiler, icc. (Ref# 56606)
make
The MSYS version of make works with UNC paths, such as //some_machine/dir. (Ref# 24202)
mkefs, mketfs, mkifs
You now can specify a value of none for the filter attribute. This is useful if you need to override a global filter. (Ref# 59585; Ticket ID 84523)
qcc
  • The -M option to qcc isn't changing to -Map as we warned in earlier release notes. (Ref# 26743, 55446)
  • In order to use gcc's support for the PPC Altivec extensions, you no longer have to add this option:
    -I $QNX_HOST/usr/lib/gcc-lib/powerpc-unknown-nto-qnx6.3.0/3.3.5/include
      

    to the qcc command line. (Ref# 26109)

python
We now include Python, the powerful object-oriented programming and scripting language. (Ref# 56492, 58443)

Note: We don't support Python on Linux or Windows. If you need Python on these hosts, you should download it from http://www.python.org. (Ref# 60935, 60940)

showmem
This is a new utility that you can use to determine how your system's memory is used. (Ref# 26719, 60931)

New utilities include:

ap
Manage adaptive partitions
paste
Merge lines of input files, and writes the resulting lines to standard output. (POSIX)
showmem
Display memory information
showmount
Display memory information
uudecode
Decode a file that was encoded with uuencode
uuencode
Encode a binary file or standard input into ASCII

We've deprecated the following items:

What's new: Integrated Development Environment

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

What's new: PhAB

Various bug fixes

What's new: Phditto

What's new: Phindows

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

Known issues

QNX SDP 6.4.0 contains known issues in these areas:


Note: We're actively investigating all known issues.

Known issues: Installing and uninstalling

Known issues: Kernel

procnto
  • If you exec() a program with a relative path, and you're using Qnet, the kernel will leak small amounts of memory, and Qnet will leak some resources. (Ref# 62502)
  • We've observed some memory corruption for uncacheable memory with the Renesas BigSur (SH7751) board. It might be a problem with the hardware. (Ref# 27741)
  • Some calls to mmap() with MAP_ANON or MAP_LAZY may be slower with QNX SDP 6.4.0 than with earlier releases on certain platforms. The difference is more pronounced for small sizes (e.g. 4 KB). For larger sizes (more than 32 KB), performance may be the same or better with 6.4. It might take longer to start applications and create threads. In part, this is due to the virtual memory manager's more complete data structures. (Ref# 27831)
  • If you're in a directory on a remote machine, and you pipe the output of a command to xargs, and you redirect the output to a file, you get a “cannot fork” error. For example:
    cd /net/remote_machine/tmp
    find . -type f | xargs grep FAIL > report.txt
    /bin/sh: cannot fork - try again
        

    It seems to be a problem with permissions. Piping the output of xargs to less works. (Ref# 29834)

    Workaround: Log in as root.

  • If you have multiple memory mappings to files that use the same underlying resource manager, and these mappings are first referenced simultaneously (e.g. the first reference in a program), there is the potential for a deadlock if the number of simultaneous first references exceeds the number of threads in the underlying resource manager. (Ref# 29440, 30045)
  • Some older versions of VMWare may show signs of instability. For example, you might get kernel faults that don't occur on real machines or with VMWare 6.5. You might also see messages such as “The CPU has been disabled by the guest operating system.” (Ref# 57058)
  • procnto and the underlying filesystem may become deadlocked when you use read/write memory-mapped files with multiple threads, under the following circumstances:
    • If you have multiple mappings to files that use the same underlying resource manager, and these mappings are first referenced simultaneously (e.g. the first reference in a program), there is the potential for a deadlock if the number of simultaneous first references exceeds the number of threads in the underlying resource manager.

    (Ref# 29440, 29380)

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)
chdir(), chroot()
A bug in chdir() makes chroot() not work properly. (Ref# 21089)

Workaround: Do the following:

  1. Run export DIR_KEEP_SYMLINK=1 before starting your program.
  2. Use chdir() to go to your new root directory before you chroot() to it.

Here's an example:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
#include <errno.h>

void print_cwd() {
    char* cwd;
    char buff[PATH_MAX + 1];
    buff[0]=0;
    
    cwd = getcwd( buff, PATH_MAX + 1 );
    if( cwd != NULL ) {
        printf( "mycwd: My working directory is %s.\n", cwd );
    } else { 
        printf("mycwd: getcwd returned Null\n"); 
    }
}

int main( void )
{
    char* cwd;
    int rc;
    char buff[PATH_MAX + 1];

    printf("before running this, you should 'export DIR_KEEP_SYMLINK=1' \n"); 
    chdir("/home/ftp");
    printf("mycwd: initial cwd:\n"); 
    print_cwd(); 
    printf("mycwd changing chroot to /home/ftp/\n"); 
    rc=chroot("/home/ftp/");
    printf("mycwd: chroot rc=%d\n",rc);
    print_cwd(); 
    printf("mycwd: chdir to ad\n");
    rc=chdir("ad");
    printf("mycwd: chdir rc=%d\n",rc); 
    print_cwd(); 
 

    return EXIT_SUCCESS;
}
ENDIAN_*()
This release includes inline assembly optimization on some platforms for the ENDIAN_*() (byte-swapping) routines.

These routines are macros that determine the best method to perform the byte-swapping (as inline math using shift-and-mask operations that may be constant-folded at compile time, or as inline assembly using native CPU instructions at runtime). Due to a bug in the gcc 2.95.3 __builtin_constant_p() implementation, code compiled with gcc 2.95.3 always selects the assembly variant.

This means that if you use an ENDIAN_*() expression as a static initializer, it fails to compile. For example, if you use gcc 2.95.3 to compile the following code:

static uint32_t numbers[] = {
ENDIAN_LE32(0x39c39c39),
ENDIAN_BE32(0x39c39c39)
};
  

you'll get an initializer element is not constant compile error. (Ref# 27099)

Workaround: Do one of the following:

  • If you're defining the structure inside a function body, remove the static qualifier, which causes the data structure to be initialized at runtime rather than compile time, at which stage inline assembly is valid.
  • Compile affected code with gcc 3.3.5, which has a fixed __builtin_constant_p() that allows detection of a constant expression and implements the byte-swapping with shift and mask operations. You can choose gcc 3.3.5 by specifying the appropriate -V compiler version to cc or gcc, or by setting GCC_VERSION=3.3.5 within a Makefile or common.mk environment.

Note: This affects only static initializers containing ENDIAN_*() expressions, and doesn't apply to any runtime use of these ENDIAN_*() macros.

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)
Synchronization objects
You should allocate synchronization objects (mutexes, condvars, etc.) only in normal memory mappings. Otherwise on certain processors, such as some PPC processors, pthread_mutex_lock(), atomic_add(), and so on will cause a fault if the control structure is allocated in uncached memory. (Ref# 61585)
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