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


Home
QNX Community Resources
QNX Documentation Library
QNX® Momentics® Development Suite 6.3.2 Release Notes

QNX® Momentics® Development Suite 6.3.2 Release Notes

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

QNX® Momentics® Development Suite 6.3.2 Release Notes

Date of this edition: June 26, 2008


Note: Changes to these notes since September 7, 2007 are highlighted below with this icon: New!

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

Host OS: You can install this package on the following host OSs:


Note: We no longer support QNX Momentics on the following hosts:
  • Windows NT
  • Linux Red Hat 8 and 9
  • Solaris

QNX Neutrino 6.3 supports only the new flash filesystem (FFS3). The older flash filesystem (FFS2) has been discontinued.


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 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.

Main features of QNX Momentics 6.3.2

QNX Momentics 6.3.2 is a roll-up release that incorporates the following:

QNX Momentics Development Suite

QNX Neutrino RTOS


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

Photon microGUI


Note: The Photon Application Builder (PhAB) is available only for Windows and QNX Neutrino hosts.

If you're using a Linux host, but you still want to use PhAB, consider installing a QNX Neutrino host to a second partition or an x86 simulator (e.g. VMware).


A word about coexistence

The QNX Momentics development 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.

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 (QWinCfg) for switching between versions of QNX Momentics.

You launch QWinCfg via the start menu (e.g. All Programs-->QNX Momentics 6.3.2-->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 (').

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 Concepts chapter of the IDE User's Guide.)


Note: Coexistence of 6.3 and 6.2.1 is supported only on Windows hosts.

Environment variables

Neutrino uses these environment variables to locate files on the host machine:

QNX_HOST
The location of host-specific files.
QNX_TARGET
The location of target-specific files on the host machine.
QNX_CONFIGURATION
The location of the qconfig configuration files.
MAKEFLAGS
The location of included *.mk files.

The qconfig utility sets these variables according to the version of QNX Momentics that you specified.

What's new: Board Support Packages

What's new: Compiler and tools

gcc
  • QNX Momentics 6.3.2 includes both gcc 2.95.3 and 3.3.5. Note that the newer version contains some alignment changes and adjustments. For details, see the 6.3 and 6.2.1 Compatibility note posted on our website.
  • gcc 2.95.3 is the default compiler version. To get the default compiler, simply run:

    nto$CPU-gcc

    or:

    qcc -Vgcc_nto$CPU

    To get a specific version, run:

    nto$CPU-gcc-$version

    or:

    qcc -V$version,gcc_nto$CPU

    Examples:

    Command Compiler version
    ntoarm-gcc 2.95.3
    ntoarm-gcc-2.95.3 2.95.3
    ntoarm-gcc-3.3.5 3.3.5
    qcc -Vgcc_ntomipsle 2.95.3
    qcc -V2.95.3,gcc_ntomipsle 2.95.3
    qcc -V3.3.5,gcc_ntomipsle 3.3.5

    Note: To change the default compiler in the IDE, use the Compiler Tab in the project Properties dialog.

  • GCC 3.3.5 has deprecated the preprocessor cpp0; this functionality is now merged in the compiler cc1.
  • We've corrected the symbol information for the __movstr() function in libgcc.a. The incorrect symbol type for this function caused runtime errors if you used -Os optimization. (Ref# 38980, 38981)
ld
Our linker used to behave such that any path specified with the -L option would also be added to the list of paths to be searched for shared objects.

This behavior is being deprecated; it will be removed in a future release. The correct method is to use the -rpath-link option.

ldrel
If you run ldrel on a binary that contains segment relocations, the relocations will be stripped. If you don't want them stripped, specify the -r option.
make
If you're using the QNX recursive makefile hierarchy, make needs to be able to find the makefile fragments (.mk files) with the rules for building QNX projects. These are stored in $QNX_TARGET/usr/include.

The environment variable MAKEFLAGS gives extra command-line flags to make; by setting it to -I$QNX_TARGET/usr/include, these .mk files will be found.


Note: Microsoft's nmake also uses MAKEFLAGS, so if there's a mixed environment, you can use GNUMAKEFLAGS, which is an extension to standard make and exists only in the QNX-supplied version.

mkifs
  • The -n option forces all modification times of inline files to be 0. This enables the checksum value to be repeated on subsequent builds.
  • The mkifs utility attempts to shrink the size of executables and shared objects that it puts in the image filesystem by removing data that isn't absolutely needed for execution of the program. You can disable this by using the +raw attribute.

    The mkifs utility keeps the following ELF sections by default, even without the +raw attribute:

    • QNX_Phab
    • QNX_info
    • QNX_usage

    You can use the -s command-line option to name sections that you want mkifs to keep.


    Note: If you specify -s, only the sections that you specify are kept. You need to explicitly specify the above names if you want to keep them as well.

What's new: Core OS

Asynchronous messaging
Asynchronous messaging is a communication model that relies on a store-and-forward technique. Compared to regular reply-based communication in client-server systems, the messaging infrastructure ensures delivery, even if a participant is temporarily offline, busy, or unobtainable. In this technique, the sender doesn't need a response from the recipient. This provides more flexibility and scalability as the senders and receivers are decoupled and are no longer required to execute in lockstep.

Note: Asynchronous messaging is an experimental feature in 6.3; its implementation may change. For more information, see the Asynchronous Messaging technote in the online documentation, as well as the asyncmsg_*() entries in the Neutrino Library Reference.

C++
Some class definitions are stricter in 6.3. For example, the set class requires unique keys; you can no longer modify keys that you've already added to the set, because you could create duplicates. This change could cause code that compiled on 6.2.1 not to compile on 6.3. (Ref# 21773)
dinit
In 6.3, dinit now creates long filenames by default. You can disable support for long filenames by specifying the -N option. (Ref# 17642)

Note: This is the reverse of the behavior of 6.2.1; the -N option formerly enabled support for long filenames.

fcntl()
We fixed problems with side-channel connections and errno values reported. (Ref# 16959, 16960)

Note: The OS now prevents _NTO_SIDE_CHANNEL connections from being duplicated (via dup(), dup2(), or fcntl(F_DUPFD)). This is to maintain consistency with the concept of side-channels forming a separate file-descriptor space that isn't subject to normal process-inheritance rules.

If you are dup()ing side-channels, then they must now be attached as normal file descriptors.

Note also that the low-level ConnectAttach() doesn't allow the specification of a specific side-channel index, which is required by dup2().


FD_SETSIZE
The value of FD_SETSIZE has changed from 32 to 256. This affects the size of the fd_set objects that you pass to select(). This means that by default the highest allowable fd number for FD_SET(fd, &set) is 255.

To change the value, #define FD_SETSIZE before including <sys/select.h>, but make sure you do this consistently throughout your modules.

Instrumented kernel
The instrumented kernel (procnto-instr) is the default kernel for QNX Neutrino self-hosted systems.
LD_LIBRARY_PATH
For security reasons, the path(s) specified by LD_LIBRARY_PATH for setuid/setgid binaries isn't searched when loading shared objects.

Instead, only the path(s) defined by the _CS_LIBPATH configuration string are used. You can examine or modify the value of _CS_LIBPATH using the getconf and setconf utilities.


Note: In a buildfile, you can set the initial value of _CS_LIBPATH via the LD_LIBRARY_PATH= part of the procnto line. For example:
PATH=/proc/boot:/bin:/usr/bin LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll procnto

libpm and libpmm
  • The pm_power_mode_t type has changed from 8-bit to 32-bit. This means that all code that includes <sys/pm.h> must be recompiled and relinked against the latest libpm.a and libpmm.a libraries.
  • The prototype for the mode_init() policy function in libpmm changed from a void function to a return type of pm_power_mode_t. This function is now intended to return the initial power mode that the device should be set to. This will typically be PM_MODE_ACTIVE.
POSIX Message Queues
QNX Momentics 6.3 ships with an optional alternate implementation of POSIX message queues. This implementation uses asynchronous messaging to buffer the messages within the kernel itself, and eliminates the (context-switching) overheads of using an external server (mqueue) in each message-queue operation, thus greatly improving the performance of POSIX message queues.

For more information, see Managing POSIX Message Queues in the QNX Neutrino Technotes in the online documentation.

Priority levels
The OS now supports 256 priority levels. Non-root processes can use only priority levels 1 to 63. Only root processes (i.e. those whose effective uid is 0) are allowed to set priorities above 63.

You can change the allowed priority range for non-root processes with the procnto -P priority option.

Here's a summary of the ranges:

Priority level Owner
0 idle thread
1 through priority − 1 non-root or root
priority through 255 root
resmgr_handle_tune()
This is a new function that you can use to tune some of the parameters used internally by the resource manager layer when performing the client fd - ocb mapping. For more information, see the Neutrino Library Reference.
select()
The select() function used to make use of the functions _select_event() and _select_block(). The latter two functions weren't documented (other than being prototyped in /usr/include/sys/select.h.)

As of 6.3, these two functions are no longer used internally. However, they've been left in libc for the time being, but may be removed altogether in a future release. For reference, here is the old implementation of select():

/*
Copyright 2001, QNX Software Systems. All Rights Reserved
 
This source code has been published by QNX Software Systems 
(QSS). However, any use, reproduction, modification,
distribution or transfer of this software, or any software
which includes or is based upon any of this code, is only
permitted under the terms of the QNX Realtime Platform End
User License Agreement (see licensing.qnx.com for details)
or as otherwise expressly authorized by a written license
agreement from QSS. For more information, please email
licensing@qnx.com.
*/
#include 
#include 
#include 
#include 
#include 
#include 
#include 
 
/*  The routine implements the Unix select call.  When 
 semantics differ the BSD
 semantics defined in APUE (pg. 396-400) are followed.
*/
 
int select(int nfds, fd_set *readfds, fd_set *writefds, 
fd_set *exceptfds, struct timeval *tvptr) 
{
     struct sigevent            event;
     struct timespec            ts;
 
     if(tvptr) 
     {
         if (tvptr->tv_sec < 0 ||   /* don't bother 
                         checking upper ends, roll over will catch really bad overflows */
             tvptr->tv_usec < 0)
             return errno= EINVAL, -1;
         
         ts.tv_sec= tvptr->tv_sec ;
         ts.tv_nsec= tvptr->tv_usec * 1000L ;
     }
 
     event.sigev_notify = SIGEV_SIGNAL_THREAD;
     event.sigev_signo = SIGSELECT;    /* This signal is     
      always SIGBLOCKed */
     /* event.sigev_value will be modified as needed by 
      select_sigevent() */
     event.sigev_code = SI_NOTIFY;
     event.sigev_priority = -1;
 
      return _select_event(nfds, readfds, writefds, exceptfds, tvptr ? &ts : 0, &event, _select_block, 0);
}
64-bit “large file” libc/filesystem support
QNX Neutrino 6.3 implements the X/Open Largefile Support extensions. For details, see the 6.3 and 6.2.1 Compatibility note posted on our website.
Startup library
The startup library supports 64-bit physical addresses for the MIPS, PPC, and x86 architectures. Two versions of the libstartup.a are built:
  • libstartup.a with paddr_t defined as 32 bits
  • libstartup-64.a with paddr_t defined as 64 bits

By default, startup programs will compile and link with the 32-bit version. If a board needs 64-bit physical addresses, add the make macro PADDR_SIZE=64 to the board's pinfo.mk file (see startup/boards/440rb/pinfo.mk for an example).

System page
  • The system page no longer contains the meminfo section, nor is the SYSPAGE_ENTRY(system_private)->ramsize field filled in. This is because they're restricted to 4 GB. Code referencing those syspage items should be modified to use the asinfo section (which has been generated since Neutrino 2.0).
  • The add_mem() function has been removed from the startup library.

    Here's replacement code for SYSTEM_ENTRY(system_private)->ramsize:

    uint64_t
    get_total_mem(void) {
        char                    *str = SYSPAGE_ENTRY(strings)->data;
        struct asinfo_entry     *as = SYSPAGE_ENTRY(asinfo);
        uint64_t                total = 0;
        unsigned                num;
    
        for(num = _syspage_ptr->asinfo.entry_size / sizeof(*as); num > 0; --num) {
            if(strcmp(&str[as->name], "ram") == 0) {
                total += as->end - as->start + 1;
            }
            ++as;
        }
        return total;
    }

    For code that scans meminfo, replace the check of the type field with a strcmp() of the appropriate asinfo entry name (as above) and scan asinfo.

/etc/rc.d/rc.local
For your convenience, 6.3.2 installs an empty, executable version of /etc/rc.d/rc.local, with permissions of of 750 (read, write, execute for the user; read, execute for the group; no permissions for others). (Ref# 22665)
Fast mutex optimization (SH4 and ARM)
Renesas SH4 and ARM/XScale processors don't include atomic operations (atomic compare-swap or load-linked/store conditional), so these instructions are emulated on these platforms. As these instructions are used for mutexes, the cost of this emulation is significant. 6.3.2 includes a new scheme that instead includes a specific code sequence that, when coupled with updates to the kernel, allows the implementation of mutexes using normal (nonemulated) assembly sequences. This provides a significant performance improvement for uncontested mutexes.
Threads
Threads now have names, which can make debugging easier. (Ref# 27085)

The following commands now support thread names:

  • pidin now displays the thread names
  • dumper maintains the thread-name information in core files
  • the IDE System Information view now shows the thread names
  • the IDE Debugger now reads the thread names

Virtual memory manager

The QNX Neutrino Core OS 6.3.2 includes a completely rearchitected virtual memory (VM) manager. This provides significant benefits and functionalities, as follows:

Here are more details:

What's new: Libraries and header files

System headers
We've changed the following header files to make them more POSIX_compliant:
  • <limits.h> (Ref# 26160)
  • <setjmp.h> (Ref# 26162)
  • <stdlib.h> (Ref# 26163)
  • <stdint.h> (Ref# 26166)
  • <confname.h> (Ref# 26167)
  • <wordexp.h> (Ref# 26171)
<sys/platform.h>
We've removed the obsolete XBS_ILP32_* symbols and replaced them with the _XBS5_ILP32_* equivalents. If you use the old definitions, you should update your code. (Ref# 26159)
fork()
  • Physically contiguous areas are now preserved across a fork(). If one process does a mmap() with MAP_ANON|MAP_PHYS to obtain a physically contiguous memory (drivers and the like), and then forks, the child process now enforces contiguous areas when copying the parent's mappings. (Ref# 17531)
  • If you do a mmap() with MAP_ANON|MAP_SHARED with permissions of PROT_NONE, and use mprotect() to change a single page to PROT_READ|PROT_WRITE, and then fork(), the permissions of the MAP_ANON|MAP_SHARED mapping are now correctly set per-page. (Ref# 24585)
iofunc_funcs_t
The iofunc_funcs_t structure is now larger, and the _IOFUNC_NFUNCS count has increased. If you use memset() to initialize this structure, the change in size won't affect your resource managers.

If your resource managers use this callout table to install their own OCB allocation routines, and you didn't use memset(), recompiling your resource managers will cause the new callouts (for OCB locking) to be used. The libc library is backwards-compatible in that resource managers that haven't been recompiled won't attempt to use the new callouts, and a NULL callout means to use the default/old behavior.

pthread_getname_np(), pthread_setname_np()
You can use these functions to get and set the name of the threads in your applications.
remove()
If path names a directory, remove(path) is now equivalent to rmdir(path) instead of unlink(path), due to a change in POSIX. (Ref# 19534, 28319)
sigevent
Future versions of the library might use hidden bits in the sigev_notify member of the sigevent structure. To avoid problems in the future, don't compare this member directly to a constant; use the new SIGEV_GET_TYPE() macro. For example, instead of:
if( my_event.sigev_notify == SIGEV_PULSE) 
  

use:

if( SIGEV_GET_TYPE(&my_event) == SIGEV_PULSE) 
  
siginfo_t
The siginfo_t structure now has a new field, si_bdslot. When a signal is caused by a program exception (SIGSEGV, SIGILL, etc.), the field is nonzero if the faulting instruction is in a branch delay slot on architectures with them (MIPS, SH).

Note:
  • This is currently implemented only for MIPS.
  • Earlier versions of procnto left this field as a random value, so code should check the procnto version number before examining the field.

What's new: Utilities

on
This utility now supports these new options (Ref# 13645):
  • -R runmask — set the CPU affinity to runmask. You can use this option multiple times to specify masks that are more than 32 bits long.
  • -C cpunum — set the CPU Affinity to cpunum, where the first CPU is 0. You can use this option multiple times.

If you use both the -C and -R options or multiple instances of them, the resultant mask is the bitwise ORing of all -C and -R options. (Ref# 28501)

pidin
This utility now supports these new formatting codes:
  • H — display scheduling-specific information for each thread
  • h — display the thread name
  • i — display the runmask
  • l (“el”) — show the last CPU a thread ran on

and these new arguments:

  • sched — display useful scheduling parameters for each thread
  • extsched — display details of the active extended scheduler configuration
  • fds — show information about the process's file descriptors
  • rmasks — display the process's runmask.

(Ref# 27982, 28098)

slay
  • The meanings of these options have changed somewhat:
    • -R runmask — set the CPU affinity to runmask. You can use this option multiple times to specify masks that are more than 32 bits long.
    • -C cpunum — set the CPU Affinity to cpunum, where the first CPU is 0. You can use this option multiple times.

    If you use both the -C and -R options or multiple instances of them, the resultant mask is the bitwise ORing of all -C and -R options. (Ref# 28083)

  • There's a new -i option that also sets the inherit mask when used in conjunction with -R or -C. (Ref# 27716, 29576)
  • When you use -R or -C without -T, all threads in the specified process or processes are now affected. Previously -R or -C would fail without -T (Ref# 27716)
  • -P without -T now affects all threads in the specified process or processes. Previously it affected only thread 1. (Ref# 27817)
  • You can now identify the processes by name or ID. By default, slay matches either name or pid; you can use the new -m name or -m pid option to restrict the match. (Ref# 28890)
tracelogger
If you specify a duration for the log (with the -s option), then the number of iterations logged is once again unlimited instead of being set to 32. (Ref# 26823)
use
This utility has a new -s option that you can use to display the version numbers of the source used in the executable. (Ref# 47698, 48222, 47907)

What's new: Startup

What's new: Device drivers

Audio device drivers (deva-*)

Block-oriented drivers (devb-*)

New drivers:

Fixed issues:

devb-mvSata
This driver now correctly initializes the mvSata card with a PCI device ID of 0x6081. (Ref# 48942)
devb-eide and devb-ahci
These drivers now support:
  • AMD/ATI SB600 (Ref# 48366)
  • JMicron/Intel ESB controllers (Ref# 47332)
  • ATA pass-through interface (Ref# 47145)

devb-eide

The devb-eide driver supports the following chipsets:

Manufacturer Chip Vendor Id Device Id Revision Xfer Mode
Intel 82371FB 0x8086 0x1230   BIOS
Intel 82371SB 0x8086 0x7010   MDMA 2
Intel 82371AB 0x8086 0x7111   UDMA 2
Intel 82443MX 0x8086 0x7199   UDMA 2
Intel 82801AA 0x8086 0x2411   UDMA 4
Intel 82801AB 0x8086 0x2421   UDMA 4
Intel 82801BAM 0x8086 0x244A   UDMA 5
Intel 82801BA 0x8086 0x244B   UDMA 5
Intel 82801CA 0x8086 0x248B   UDMA 5
Intel 82801CAM 0x8086 0x248A   UDMA 5
Intel 82801DB 0x8086 0x24CB   UDMA 5
Intel 82801DBM 0x8086 0x24CA   UDMA 5
Intel 82801DB 0x8086 0x24CB   UDMA 5
Intel 82801EB 0x8086 0x24DB   UDMA 5
Intel 82801ESB 0x8086 0x25A2   UDMA 5
Intel 82801FB 0x8086 0x266F   UDMA 5
Intel 82801EB 0x8086 0x24D1   SATA
Intel 82801ER 0x8086 0x24DF   SATA
Intel 82801FB 0x8086 0x2651   SATA
Intel 82801FR 0x8086 0x2652   SATA
Intel 82801FBM 0x8086 0x2653   SATA
Intel 82801ESB 0x8086 0x25a2   UDMA 5
Intel 82801ESB 0x8086 0x25a3   SATA
Intel 82801GB 0x8086 0x27df   UDMA 5
Intel 82801GB 0x8086 0x27c0   SATA
Intel 82801GB 0x8086 0x27c4   SATA
Promise PDC-20262 0x105a 0x4d38   UDMA 4
Promise PDC-20267 0x105a 0x4d30   UDMA 4
Promise PDC-20265 0x105a 0x0d30   UDMA 5
Promise PDC-20269 0x105a 0x4d69   UDMA 5
ServerWorks OSB4 0x1166 0x0211   UDMA 2
ServerWorks CSB5 0x1166 0x0212   UDMA 4 (untested)
ServerWorks CSB5 0x1166 0x0212 0x92+ UDMA 5
HighPoint Tech HPT-366 0x1103 0x0004 0x01 UDMA 4 (untested)
HighPoint Tech HPT-370 0x1103 0x0004 0x03+ UDMA 5
HighPoint Tech HPT-372 0x1103 0x0005   UDMA 6
HighPoint Tech HPT-374 0x1103 0x0008   UDMA 6
AMD PCB-756 0x1022 0x7409   UDMA 4 (untested)
AMD PCB-766 0x1022 0x7411   UDMA 5 (untested)
AMD PCB-768 0x1022 0x7441   UDMA 5
nVidia   0x01bc 0x10de   UDMA 5 (untested)
ACER Labs M5229 0x10b9 0x5229 0x19-0xc1 UDMA 2
ACER Labs M5229 0x10b9 0x5229 0xc2-0xc3 UDMA 4
ACER Labs M5229 0x10b9 0x5229 0xc4 UDMA 5
ACER Labs M5287 0x10b9 0x5287   SATA
ACER Labs M5289 0x10b9 0x5289   SATA
ATI (IXP-150/200/250) 0x1002 0x4349   UDMA 5
SiS SiS-5513 0x1039 0x5513 0xd0 UDMA 2/4
SiS SiS-5517 0x1039 0x5517   UDMA 6
SiS SiS-5518 0x1039 0x5518   UDMA 6
SiS SiS-180 0x1039 0x0180   SATA
SiS SiS-181 0x1039 0x0181   SATA
VIA Tech 82C586B 0x1106 0x0571 82686B PCI-ISA bridge 0x40+ UDMA 5
VIA Tech 82C586B 0x1106 0x0571 8231 bridge UDMA 5 (untested)
VIA Tech 82C586B 0x1106 0x0571 8233 bridge UDMA 5 (untested)
VIA Tech 82C586B 0x1106 0x0571 8233C bridge UDMA 5 (untested)
VIA Tech 82C586B 0x1106 0x0571 8233A bridge UDMA 6
VIA Tech 82C586B 0x1106 0x0571 8235A bridge UDMA 6 (untested)
VIA Tech 82C586B 0x1106 0x0571 8237 bridge UDMA 6 (untested)
VIA Tech 8237 0x1106 0x3149   SATA
VIA Tech 82C586B 0x1106 0x0571 0x6+ UDMA 2
Winbond W83C553F 0x10ad 0x0105   MDMA 2
PCMCIA Any PIO 0
PCI IDE Any   BIOS

The devb-eide driver now:

devb-ahci

The devb-ahci driver supports the Intel AHCI SATA controller with the following device IDs:


Note: You need to enable AHCI mode in the BIOS.

This driver now correctly detects the hard drive on the IBM ThinkPad T60. (Ref# 40126)

devb-mvSata

The devb-mvSata driver supports Vendor ID 0x11ab with the following device IDs:

Device ID Chipset
5080 88SX5080
5081 88SX5081
5040 88SX5040
5041 88SX5041

Graphics drivers (devg-*)

Driver Controller Target CPU
devg-chips.so (replaces devg-chip_hiqv.so) Chips & Technologies 65550 and greater MIPSLE, PPCBE, SHLE, x86
devg-coral.so Fujitsu Coral B & Coral P ARMLE, PPCBE, SHLE, x86
devg-i830.so Intel 82830, 82845, 82855, 82865, 82915G, 82915GM, 82945G, and 82945GM x86
devg-orchid.so Fujitsu Orchid PPCBE, SHLE, x86
devg-radeon.so ATI Radeon 9200, 9600, 9800, Mobility M9, X300, X600 PPCBE, x86 (see below)
devg-ravin.so NEC RavinE MIPSLE, PPCBE, x86
devg-sis630.so SiS 300 & 630 x86
devg-smi7xx.so Silicon Motion 712, 722 & 731 ARMLE, MIPSLE, PPCBE, SHLE, x86
devg-smi5xx.so Silicon Motion 501 ARMLE, MIPSLE, PPCBE, SHLE, x86
devg-tvia.so (replaces devg-igs5300.so) TVIA 52xx and 53xx MIPSLE, SHLE, x86

Other changes include:

devg-radeon.so
  • The x86 version of this driver initializes secondary cards for multicard displays.
  • The devg-radeon.so driver now supports the Radeon M22 (Mobility X300). (Ref# 39723)
Polygon acceleration
We added polygon acceleration support for some chipsets (e.g. Fujitsu Coral, Orchid).
$QNX_TARGET/etc/system/enum/devices/graphics
We updated the enumerator to detect the supported chipsets.

Network drivers (devn-*)

Many drivers now have a probe_phy option that lets you select whether or not the PHY is probed at regular intervals to see if the duplex setting and/or the speed on the connection has changed (e.g. the cable has been unplugged and plugged into a different hub or switch. For more information, see the devn-* entries in the Utilities Reference.

6.3.2 also addresses the following issues:

devn-asix.so
This is a new driver for SMC2209 USB/Ethernet adaptors.

CPU targets provided: x86, ARMLE, MIPSLE, MIPSBE, PPCBE, SHLE

Location: $QNX_TARGET/x86/lib/dll/devn-asix.so, $QNX_TARGET/armle/lib/dll/devn-asix.so, $QNX_TARGET/mipsle/lib/dll/devn-asix.so, $QNX_TARGET/mipsbe/lib/dll/devn-asix.so, $QNX_TARGET/ppcbe/lib/dll/devn-asix.so, $QNX_TARGET/shle/lib/dll/devn-asix.so

Supported device IDs / chipsets:

  • device 0x1a00 # Dlink DUBE100
  • device 0x1720 # SMC 2209
devn-bcm43xx.so
We've updated this driver (for Broadcom BCM43xx Wireless Ethernet controllers) to add support for WPA and WPA2.

CPU targets provided: x86, PPCBE, SHLE

Location: $QNX_TARGET/x86/lib/dll/devn-bcm43xx.so, $QNX_TARGET/ppcbe/lib/dll/devn-bcm43xx.so, $QNX_TARGET/shle/lib/dll/devn-bcm43xx.so

Supported device IDs / chipsets:

  • device 4301 # BCM4301_D11B
  • device 4307 # BCM4307_D11B
  • device 4320 # BCM4306_D11G
  • device 4325 # BCM4306_D11G
  • device 4303 # BCM4303_D11B
  • device 4321 # BCM4306_D11A
  • device 4324 # BCM4306_D11 DUAL
  • device 4318 # BCM4318_D11G
  • device 4319 # BCM4318_D11 DUAL
  • device 431a # BCM4318_D11A
  • device 4311 # BCM4311_D11G
  • device 4312 # BCM4311_D11 DUAL
  • device 4313 # BCM4311_D11A
devn-hermes2.so
This is a new driver for Agere Wireless Ethernet controllers.

CPU targets provided: x86

Location: $QNX_TARGET/x86/lib/dll/devn-hermes2.so

Supported device IDs / chipsets: PCMCIA manufacturer ID 156 device 3 # PCMCIA Hermes2 - Proxim Orinoco 802.11b

devn-i82544.so
We've updated this driver (for Intel 82544 Ethernet LAN adapters) with support for new chipsets.

CPU targets provided: x86, PPCBE

Location: $QNX_TARGET/x86/lib/dll/devn-i82544.so, $QNX_TARGET/ppcbe/lib/dll/devn-i82544.so

Supported device IDs / chipsets:

  • device 1008 # Intel 82544EI Gigabit
  • device 1009 # Intel 82544EI Gigabit
  • device 100c # Intel 82544GC Gigabit
  • device 100d # Intel 82544GC Gigabit
  • device 100e # Intel 82540EM Gigabit
  • device 100f # Intel 82545EM Gigabit
  • device 1010 # Intel 82546EB Gigabit
  • device 1011 # Intel 82545EM Gigabit
  • device 1012 # Intel 82546EB Gigabit
  • device 1013 # Intel 82541EI Gigabit
  • device 1015 # Intel 82540EM Gigabit
  • device 1016 # Intel 82540EP Gigabit
  • device 1017 # Intel 82540EP Gigabit
  • device 1018 # Intel 82541EI Gigabit
  • device 1019 # Intel 82541EI Gigabit
  • device 101d # Intel 82546EB Gigabit
  • device 101e # Intel 82540EP Gigabit
  • device 1026 # Intel 82545GM Gigabit
  • device 1027 # Intel 82545GM Gigabit
  • device 1028 # Intel 82545GM Gigabit
  • device 1075 # Intel 82541GI Gigabit
  • device 1076 # Intel 82541GI Gigabit
  • device 1077 # Intel 82541GI Gigabit
  • device 1078 # Intel 82541ER Gigabit
  • device 1079 # Intel 82546GB Gigabit
  • device 107a # Intel 82546GB Gigabit
  • device 107b # Intel 82546GB Gigabit
  • device 107c # Intel 82541PI Gigabit
  • device 108a # Intel 82546EB Gigabit
  • device 108b # Intel 82573V Gigabit
  • device 108c # Intel 82573E Gigabit
  • device 109a # Intel 82573L Gigabit
devn-pcnet.so
  • Packet processing now occurs only after the driver has fully registered with io-net, in order to prevent an assertion with the debug version of io-net. (Ref# 23068)
  • This driver now includes the probe_phy option, as described above. (Ref# 28634)
  • Promiscuous and multicast support for the devn-pcnet.so driver is controlled via command-line options rather than by devctl() due to observed NIC-reset problems when the modes are switched in the hardware. The default mode is promiscuous Rx disabled and all-multicast Rx enabled. This allows TCP/IP v6 to run it's routing daemons. You can enable promiscuous mode by specifying the promiscuous command-line option to the driver. You can disable multicast mode by specifying the nomulticast command-line option to the driver. (Ref# 29378)
  • This driver now provides more information when you use nicinfo.
  • We've fixed an issue that affected duplex operations at 10 Mbit/second.
  • We've added the _NPKT_PROMISC flag to received packets.
devn-rtl.so
  • The correct duplex setting is now negotiated when the speed is 10 Mbit. (Ref# 17146)
  • This driver now works on MIPSBE targets. (Ref# 24259)
  • This driver now includes the probe_phy option, as described above. (Ref# 28637)
  • Issuing a umount /dev/io-net/en1 no longer causes io-net to crash. (Ref# 29470)
  • You can now start a second instance of io-net using the RTL driver. (Ref# 29488)
  • nicinfo now reports the correct speed and duplex setting when they're specified. (Ref# 29489)
  • The devn-rtl.so driver no longer loses packets during a receive on PPCBE targets. (Ref# 29680)
  • devn-rtl.so now scans and automatically detects Dlink DFE-528Tx Rev E1 with vendor ID 0x1186 and device ID 0x1300, with NIC labeled DL10038D. (Ref# 29729)

    Note: The Dlink DFE-538TX Rev D2 with a NIC labeled DL10038C that also has the same vendor and device IDs as the DFE-528TX card isn't apparently 100% rtl-8139-compatible and doesn't appear to work correctly.

  • We now provide an SHLE variant of this driver.
  • We've added a caching API for SH.
devn-pegasus.so
  • The devn-pegasus.so driver now works with newer 8513-based chips. (Ref# 27727)
  • This driver now includes the probe_phy option, as described above. (Ref# 28647)
  • Multicast and broadcast statistics are now correctly displayed with nicinfo. (Ref# 29130)
devn-rtl8150.so
This is a new driver for SMC2208 USB/Ethernet adaptors.

CPU targets provided: x86, ARMLE, SHLE

Location: $QNX_TARGET/x86/lib/dll/devn-rtl8150.so, $QNX_TARGET/armle/lib/dll/devn-rtl8150.so, $QNX_TARGET/shle/lib/dll/devn-rtl8150.so

devn-tigon3.so
This is a new driver for the Broadcom BCM57xx Ethernet controller.

CPU targets provided: x86

Location: $QNX_TARGET/x86/lib/dll/devn-tigon3.so

Supported device IDs / chipsets:

  • Broadcom BCM5705
  • Broadcom BCM5721
  • Broadcom BCM5751
  • Broadcom BCM5752
  • Broadcom BCM5787
libdrvr*
  • If you forced the speed on the command line, the first link's speed was negotiated properly, but subsequent renegotiations didn't honor the override speed, performing a normal auto-negotiation instead. We've now corrected this.
  • We've corrected an auto-negotiation problem with gigabit Ethernet.
  • We've added the unit option as an alias for the lan option.
  • We've corrected the display of memory addresses.
pccard-launch
This is a new Pccard launch utility.

CPU targets provided: x86, ARMLE, MIPSLE, MIPSBE, PPCBE, SHLE

Location: $QNX_TARGET/x86/usr/sbin/pccard-launch, $QNX_TARGET/ppcbe/usr/sbin/pccard-launch, $QNX_TARGET/shle/usr/sbin/pccard-launch

pci-bios
We've updated this PCI server to add PCI-to-PCI bridge support.

CPU targets provided: x86

Location: $QNX_TARGET/x86/sbin/pci-bios

startup-bios
  • We've added support for the Supermicro Supero x6DLP-EG2 x86 SMP platform based on the Intel Sossaman.

    CPU targets provided: x86

    Location: $QNX_TARGET/x86/boot/sys/startup-bios

  • We added support for the x86 NX (no-execute) page table bit. On processors that support it (AMD64, IA-32e), mmap()'d memory no longer lets you execute instructions in that memory unless you've specified the PROT_EXEC permission flag. If not specified, a SIGSEGV occurs.

    Note: You must have installed the QNX Neutrino Core OS 6.3.2 and enable page-table extensions (with the -x startup option) in order for the NX bit to be effective.

    You can turn off support by putting -F ~0x4000 on the startup command line. (Ref# 40162)

What's new: Filesystems

fs-*.so
Mounting a disk filesystem with an invalid option no longer causes a memory leak. (Ref# 22341)
fs-cd.so
Because of a firmware bug, some CD-ROM devices return random addresses when queried for multisession information. We've modified fs-cd.so to work around this bug by returning to session 0 if it can't mount the last session. (Ref# 47233)
fs-dos.so
This filesystem now correctly handles volume labels that contain spaces or non-ASCII characters. Note that labels are 8.3 only, are not also stored as long filenames in Unicode, and if they're non-ASCII, you must specify the appropriate codepage= option (at fs-dos.so mount time) to decode/display it. (Ref# 44704, 45433)
fs-qnx4.so
  • We've fixed a race condition in fs-qnx4.so concerning the allocation of inodes. (Ref# 48016, 49966)
  • fs-qnx4.so now correctly reclaims inode slots when you rename files. (Ref# 29627)
io-blk.so
  • A small cache size no longer makes io-blk.so become deadlocked with FAT16 filesystems. (Ref# 48742)
  • If multiple threads unmount files simultaneously, io-blk.so no longer becomes deadlocked. (Ref# 19408)
  • Trying to create new_directory/. (where new_directory doesn't exist) now fails with an error of ENOENT. (Ref# 26377)
  • If you specify the blk verbose option, the output now goes to the system logger, slogger, instead of to standard output. (Ref# 38719)
Other improvements:
  • improved fsync() and delayed-write algorithms
  • vnode versioning to eliminate a rare LRU/recycle race condition
  • improved DOS volume recognition and mounting
  • minor chages to conform with POSIX
  • the ability to preallocate all io-blk caches and data structures

What's new: Network protocols

Qnet
We now ship two versions of Qnet:
  • npm-qnet-l4_lite.so — the new lightweight Qnet
  • npm-qnet-compat.so — the pre-6.3 version.

The default version is the new lightweight Qnet (npm-qnet.so is a link to npm-qnet-l4_lite.so). If you wish to use the older version of Qnet, have npm-qnet.so link to npm-qnet-compat.so, and then restart io-net.


Note:
  • The new Qnet (npm-qnet-l4_lite.so) isn't compatible with the pre-6.3 version.
  • You can't have an instance of npm-qnet-l4_lite.so and npm-qnet-compat.so active at the same time on the same node.
  • You can't unmount Qnet (either version) from io-net in 6.3.2.

npm-qnet-l4_lite.so
  • We've added a new Qnet IOMSG, _NETMGR_QOS_FLUSH. This message lets an application force a retransmission instead of waiting for Qnet to activate its own timeout. This is useful for periodic detectable hardware failures where the application can take action, instead of enabling shorter timeout periods for Qnet, which adds more load to the system. (Ref# 38260)

    Here's an example:

    #include <sys/netmgr.h>
    #include <sys/netmsg.h>
    
    extern int __netmgr_send( void *smsg1, int ssize1, const void *smsg2,
                              int ssize2, void *rmsg, int rsize);
     
    int main (void)
    {
                struct _io_msg msg;
    
                msg.type = _IO_MSG;
                msg.combine_len = sizeof(msg);
                msg.mgrid = _IOMGR_NETMGR;
                msg.subtype = _NETMGR_QOS_FLUSH;
    
                __netmgr_send(&msg, sizeof(msg), 0, 0, 0, 0);
    }
        
SCTP
  • SCTP currently supports only IPv4; its API may be subject to change.
  • Although SCTP (lsm-sctp.so) supports only the IPv4 protocol family, it must be used in combination with the npm-tcpip-v6.so DLL. You can't mount lsm-sctp.so while using the npm-tcpip-v4.so DLL. This is due to internal dependencies. Note that npm-tcpip-v6.so also supports IPv4 along with IPv6 and other features.
  • The TCP/IP stack (npm-tcpip.so) must be started with the option stacksize using a larger value than the default. For example, io-net -d -ptcpip stacksize=4096 when using SCTP (lsm-sctp.so).
IPFilter
IPFilter (lsm-ipfilter-[v4|v6] can be used only with the matching TCP/IP stack (i.e. lsm-ipfilter-v4.so with npm-tcpip-v4.so; lsm-ipfilter-v6.so with npm-tcpip-v6.so).
Full TCP/IP stack and other updates
  • The full TCP/IP stack (npm-tcpip-v6.so; npm-tcpip-v4.so) has been updated to overcome the vulnerabilities in the TCP protocol. For details, see the security advisories NISCC Vulnerability Advisory 236929 and CERT Advisory TA04-111A.

    Note: Although our Tiny TCP/IP stack (npm-ttcpip.so) hasn't been updated to address the TCP vulnerabilities, we anticipate that embedded devices using our tiny stack have applications that use short-lived TCP connections and are therefore not as vulnerable.

  • RPC library has been updated to support RPC Bind version 4.
  • dhcpd and dhcprelay have been updated to ISC dhcp version 3.0 p2.
  • New binaries: rpcbind, rpcgen, ntpd, ntpupdate, ntpdc, ntpq, ntptrace, gns
  • New DLLs: nfm-autoip.so npm-qnet-l4_lite.so, npm-qnet-compat.so, lsm-ipfilter.so and lsm-sctp.so
  • New libraries: libipsec, libsctp
rpcbind
By default, rpcbind executes in “secure” mode and uses Unix Domain Sockets for local communication.

If you wish to use an older RPC application with rpcbind or to use rpcbind in combination with the Tiny TCP/IP stack, you'll need to refer to the -L and -i options to rpcbind.


Note: The service rpcbind must be defined for both UDP and TCP in the /etc/services file. While the default /etc/services provided has these modifications, if you choose to use the current /etc/services file at installation time, these definitions will be missing and rpcbind will fail to function. The required lines are:
    
sunrpc    111/tcp        rpcbind portmap 
sunrpc    111/udp        rpcbind portmap

sysctl, npm-tcpip-v4.so, <netinet/icmp_var.h>
The TCP/IP stack would always respond to the ICMP timestamp request. You can turn this feature off with the sysctl utility or the sysctl() function. The object to control this is net.inet.icmp.tstamprepl; the default is 1 (on). (Ref# 23329)
sysctl, npm-tcpip-v4.so, <netinet/in.h>, <netinet/ip_var.h>
The TCP/IP stack by default uses sequential IP header IDs. You can enable random IP header IDs, by using the sysctl utility or the sysctl() function. The object to control this is net.inet.ip.random_id; the default is 0 (off). (Ref# 23328)
fs-cifs
  • By default, if the CIFS server can't be reached, or isn't responding, it could take a long period of time before an application fails, as TCP timeouts would be applied. We've added a new -o timeout=num_seconds option that lets you specify the timeout to apply. This is applied to all server-blocking operations (e.g. mount, open(), read(), write(), and so on). Note that you could always use a signal to unblock the application. (Ref# 23115)
  • fs-cifs now supports more modern dialects. This improves compatibility with later Windows OS releases. This results in improvements in the accuracy of file time status, and quicker mounting of Windows shared directories. (Ref# 38233)
  • If fs-cifs failed to authenticate with the server using an encrypted password, it would then attempt to authenticate with the server using an older method while sending the password unencrypted. This behavior has been changed to only send the password encrypted, unless you specify the option -o plainpwd. You might need the -o plainpwd option when mounting shares on older versions of Windows. (Ref# 39865)

    The new password options are as follows:

    -o plainpwd
    If logging in with an encrypted password fails, try to log in by using the password unencrypted.

    Note: Sending passwords in plain text may be considered a security problem.

    -o showpwd
    Show the plain-text password in the log file.

    Note: Adding the password to the log file may be a security problem if unauthorized personal have access to the log file.

fs-nfs2, fs-nfs3
NFS requests always have a unique identifier (xid) value. If a NFS server stops responding (for example because of a temporary network failure) fs-nfs2 and fs-nfs3 try to remount the server and resend the request. We've found that some servers refuse to reply to a request if the request's xid hasn't been changed after a remount, which is against the NFS specification. We've added an -x option to work around this problem; it causes the client to change the xid of the request after a remount. (Ref# 25402)
fs-cifs, fs-nfs2, fs-nfs3
The usage message now correctly states that you don't need to specify a server-export/mountpoint combination on the command line when you launch fs-cifs, fs-nfs2, or fs-nfs3. You can invoke the mount command later to add mountpoints. (Ref# 15446)
SRI SNMP suite
QNX Momentics includes an SNMP package that consists of the EMANATE/Lite technologies (15.3.1.23) developed by SNMP Research International (SRI). This package has been ported to QNX Neutrino. For more information on SRI products, including release notes, visit:

www.snmp.com/products

The software is installed in the /usr/snmp15.3.1.23 directory.

QNX Momentics includes EMANATE/Lite runtime binaries; if you need to develop your own MIBS, etc., you should purchase a full SNMP package from one of our partners (e.g. SRI/Emanate, NuDesign).

What's new: Photon

Photon File Manager
The Photon File Manager's preferences dialog lets you select a filename-encoding scheme. This feature allows PFM to properly display filenames that aren't encoded in valid UTF8. For details, see the pfm entry in the Utilities Reference.
phfont
The design architecture has evolved from 6.2.x. Under 6.2.x, io-graphics was able to load the font server into its own data segment in order to speed up rendering services. This interface has been taken to a new level, through libfont, by allowing several system configurations:
  1. An external font server and a client font instance within io-graphics.
    Benefit:
    Increased speed.
    Cons:
    Increase in memory footprint. Although io-graphics instantiates a client font instance, it can use greatly reduced resources, since it isn't concerned with other application requests.
  2. A server font instance within io-graphics. This is the same behavior as 6.2.x. If an external font server isn't started, io-graphics will attempt to start a server font instance.
    Benefits:
    Good speed; middle memory footprint.
    Cons:
    Slower than option 1, since the graphics driver may have to wait for an outside client font request to complete.
  3. An external font server only.
    Benefit:
    Minimal memory footprint
    Cons:
    Slowest option

Client applications may also load a private client font instance, resulting in maximum speed when making font requests. Please read the new documentation for phfont, fontadmin, and libfont (Font Library Functions, specifically Pf*Dll() API calls).

Under the 6.3 architecture, rendering plugins are utilized by phfont. These DLLs are located in /lib/dll/font. Each rendering DLL has an embedded use message; just type use dllname.

The following binaries are no longer required:

  • phfontphf
  • phfontpfr
  • phfontFF
  • phfontFA.

Please read the documentation on phfont for further details. Options for the DLLs are set via the fontopts file; see the docs on fontadmin for further details.

Due to the new library (libfont), when linking against a static libph you must also link against libfont.

embed_font
You can use this script to copy all the font system binaries and libraries to a target build image. Usage is simple:
embed_font target_root_directory
fontview
The fontview program is a font-viewer application that can display glyphs from any font format supported by phfont, without having to install the font file. For more information, see the usage message (type use fontview from a pterm).

The fontview utility uses the same rendering plugins as phfont.

io-graphics
Supports the following wide-screen video modes:
  • WXGA (1280x800)
  • WXGA+ (1440x900)
  • WSXGA+ (1680x1050)
  • WUXGA (1920x1200)

These are the standard display sizes for laptops with wide screens. (Ref# 25744)

TrueType fonts
We fixed a problem where PhAB for Windows wouldn't recognize and render user-supplied TrueType fonts. (Ref# 19865)

To install a TrueType font:

  1. Use the Windows Control Panel to install the font.
  2. Add the .ttf file to the following directory:

    %QNX_TARGET%\usr\photon\font_repository directory

  3. Run mkfontdir so that the font appears in the font index file (fontdir).
Photon hook
You can pull in and execute a block of user code during the initialization of Photon applications. For details, see the widget styles section of the Managing Widgets in Application Code chapter of the Photon Programmer's Guide.
Photon clipboard
The Photon clipboard has been enhanced with added security. You can no longer get access to another user's clipboard files, unless you're running as root. Clipboard files are no longer compatible between 6.3.0 and previous releases. This also means that Photon applications built against libph.so.2 can't share the clipboard with Photon applications built against libph.so.3.

You're no longer limited to 64 KB when you cut and paste text; the limit is now your system RAM.

Clipboard Changed Event
Clipboard changes cause a new event to be emitted. The event is a Ph_EV_INFO, with a subtype of Ph_CLIPBOARD_CHANGED. The data associated with the event contains the input group number and the “clip type” string, so that the listener can call PhClipboardRead() to paste the data just copied. The old region-changed event has been deprecated, but for now will still be emitted when the clipboard changes.
phlogin
The default login application is now phlogin2, which provides a user icon that you can select to log in. If you remove phlogin2 from the path, phlogin (the original GUI login from 6.2) is used automatically.
savercfg
  • There's now support for power-saving modes and enhanced password protection.
  • Format of the config file has changed, but the new savercfg/saver are able to read both old and new formats.
  • The new savercfg writes only the new format, so the old format will be lost once you change your settings. The transition is essentially transparent from the user's point of view, but anyone sharing their homedir between 6.3/6.2.x platforms should be aware of this.
Security
New versions of the following files fix some security vulnerabilities in Photon reported by iDefense.com:
  • target/qnx6/armle/usr/lib/libAp.a
  • target/qnx6/armle/usr/lib/libph.so.3
  • target/qnx6/armle/usr/lib/libApS.a
  • target/qnx6/armle/usr/lib/libph.a
  • target/qnx6/armle/usr/lib/libphS.a
  • target/qnx6/armle/usr/lib/libAp.so.3
  • target/qnx6/armle/usr/photon/bin/fontsleuth
  • target/qnx6/mipsle/usr/lib/libAp.a
  • target/qnx6/mipsle/usr/lib/libph.so.3
  • target/qnx6/mipsle/usr/lib/libApS.a
  • target/qnx6/mipsle/usr/lib/libph.a
  • target/qnx6/mipsle/usr/lib/libphS.a
  • target/qnx6/mipsle/usr/lib/libAp.so.3
  • target/qnx6/mipsle/usr/photon/bin/fontsleuth
  • target/qnx6/ppcbe/usr/lib/libAp.a
  • target/qnx6/ppcbe/usr/lib/libph.so.3
  • target/qnx6/ppcbe/usr/lib/libApS.a
  • target/qnx6/ppcbe/usr/lib/libph.a
  • target/qnx6/ppcbe/usr/lib/libphS.a
  • target/qnx6/ppcbe/usr/lib/libAp.so.3
  • target/qnx6/ppcbe/usr/photon/bin/fontsleuth
  • target/qnx6/shle/usr/lib/libAp.a
  • target/qnx6/shle/usr/lib/libph.so.3
  • target/qnx6/shle/usr/lib/libApS.a
  • target/qnx6/shle/usr/lib/libph.a
  • target/qnx6/shle/usr/lib/libphS.a
  • target/qnx6/shle/usr/lib/libAp.so.3
  • target/qnx6/shle/usr/photon/bin/fontsleuth
  • target/qnx6/x86/usr/lib/libAp.a
  • target/qnx6/x86/usr/lib/libApS.a
  • target/qnx6/x86/usr/lib/libph.so.3
  • target/qnx6/x86/usr/lib/libph.a
  • target/qnx6/x86/usr/lib/libphS.a
  • target/qnx6/x86/usr/lib/libAp.so.3
  • target/qnx6/x86/usr/photon/bin/fontsleuth

This change fixes these issues:

  • Local exploitation of a format string vulnerability in the fontsleuth command allows attackers to gain root privileges — iDefense Security Advisory 02.07.06. (Ref# 29447)
  • Local exploitation of a stack-based buffer overflow vulnerability libAp allows local attackers to gain root privileges — iDefense Security Advisory 02.07.06. (Ref# 28807)
  • Local exploitation of a stack-based buffer overflow vulnerability in libph allows local attackers to gain root privileges — iDefense Security Advisory 02.07.06. (Ref# 29448)

What's new: Subversion

QNX Momentics now includes clients for both CVS and Subversion. (Ref# 47520, 47901, 47486)

For more information about Subversion (svn), see:

What's new: Windows-specific

We now provide two shells:

You'll find these executables under ${QNX_HOST}/usr/bin (e.g. C:\QNX632\host\win32\x86\usr\bin). You may want to create desktop shortcuts for these or other executables you'll use often.

Known issues

QNX Momentics 6.3.2 contains known issues in these areas:


Note: We're actively investigating all known issues.

Known issues: Installing

Known issues: Adaptive partitioning

Known issues: Booting

Known issues: BSPs, DDKs, and TDKs