![]() |
This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Date of this edition: October 17, 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:
![]() |
|
![]() |
If you installed an alpha version of this software, uninstall it before installing the production version. |
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.
![]() |
Make sure that Plug and Play OS is disabled in the BIOS before you run QNX Neutrino self-hosted. |
On Windows and Linux hosts, the QNX Software Development Platform consists of the QNX Momentics Tool Suite, which you can use to develop applications that run on a target machine that's running the QNX Neutrino RTOS.
The self-hosted version of the QNX SDP consists of the QNX Neutrino RTOS and the QNX Momentics Tool Suite.
The key improvements in 6.4 include:
For more details, see the following sections:
For more information about the changes to the audio drivers, see "What's new: Audio device drivers (deva-*)," below.
We no longer support ARMBE, MIPSBE, MIPSLE, or Intel 386 targets. (Ref# 58190, 58192, 58193)
We've made the changes described below in order to conform to PSE52, a subset of POSIX intended for realtime controllers.
Any code that explicitly references the old field names will no longer compile. You should modify those references to use a leading __ before the field name. This issue affects only the compilation of code with the latest system header files; binary compatibility isn't affected. (Ref# 46088, 46089, 46090, 51558)
In order to satisfy this requirement, we need to change the value of EALREADY; its current value is 16 (same as EBUSY), but the new (POSIX-compliant) value is 237. However, this change would cause incompatibility problems because code that currently uses EALREADY will be compiled to use the old value.
In order to allow applications to safely make the transition to the new value, we've modified <errno.h> to define the following symbolic values:
For QNX SDP 6.4.0, EALREADY is defined as EALREADY_OLD in order to allow programs by default to be compatible with existing binaries. In a future release, we'll change EALREADY to EALREADY_NEW.
You should modify your code as follows:
#if defined(EALREADY_NEW) && defined(EALREADY_OLD) if (error == EALREADY_NEW || error == EALREADY_OLD) { // deal with EALREADY error cases } #else if (error == EALREADY) { // deal with EALREADY error cases } #endif
This will ensure that the code handles EALREADY error cases from any API that returns either the old or new value of EALREADY.
The value of EALREADY_DYNAMIC is determined by a procnto option:
The default for 6.4.0 is -eo (EALREADY ==EALREADY_OLD). We'll change this in a future release so that the default is -en (EALREADY == EALREADY_NEW).
instead of in <pthread.h>. (Ref# 42977)
This change shouldn't affect any code that examines inode values, because the only meaningful operation is to compare for equality.
If your code constructs 64-bit inode numbers from 32-bit ones, you should make sure that you don't extend the sign into the top 32 bits.
You should examine all code that uses mmap(), to ensure that it uses MAP_PRIVATE if required. The most common example of code that requires this change is a call to mmap() using only MAP_ANON. You should change these calls to use MAP_PRIVATE|MAP_ANON.
![]() |
In order to provide time for you to make this change, the procnto -m~b option still implicitly sets MAP_PRIVATE if you use MAP_ANON without it. However, we might remove this transitional behavior in a future release. |
(Ref# 56889, 58977)
To avoid this problem on these processors, procnto must first issue a dummy lwarx (Load Word And Reserved Indexed) command to a specific address, and then issue the dummy stwcx. to the same address. We've created a system page cpuinfo flag, PPC_CPU_STWCX_BUG, to indicate which CPUs are affected and, on those processors, adds the dummy lwarx to the context switch code. (Ref# 45538)
![]() |
Any PROT_EXEC in a 256 MB region turns off the N bit and allows code execution throughout the whole region. |
There's a new -m[~]x option to procnto that enables or disables the PROT_EXEC flag for system-allocated threads. It's enabled by default. (Ref# 58299, 58434)
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:
![]() |
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:
The other changes of note include the following:
ifconfig lo0 ip4csum tcp4csum udp4csum
With io-pkt, you control this via sysctl:
# sysctl -a | grep do_loopback_cksum net.inet.ip.do_loopback_cksum = 0 net.inet.tcp.do_loopback_cksum = 0 net.inet.udp.do_loopback_cksum = 0
(Ref# 44227)
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:
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:
The new binaries include:
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.
![]() |
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) |
There are two changes that were made to gcc:
You need to update your buildfiles as follows to use the new version of libc.so:
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
# 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)
![]() |
If your code calls the internal (and undocumented) _dispatch_create() function, you should modify it to call dispatch_create_channel() instead. |
The new drivers and DLLs include:
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.
The new drivers include:
The new drivers include:
The new drivers include:
The new drivers include:
The new binaries include:
The updates include:
The new binaries include:
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.
The QNX Momentics Tool Suite features:
For more details, see the following sections:
The changes include:
![]() |
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) |
New utilities include:
We've deprecated the following items:
In addition, the UI has been greatly improved, and profiling sessions are now saved in your workspace -- and you can now compare different sessions.
For more information, see the IDE User's Guide.
This version of the IDE includes the following fixes for previously reported issues:
Severity and Description Path Resource Location Creation Time Id Error launching external scanner info generator (gcc -E -P -v -dD C:/QNX640/ide4-workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c) code_cov Unknown 1157739187750 23
In this case, the project no longer includes a warning symbol beside the project name. (Ref# 41424)
#include <iostream>
the Code Coverage tool no longer fails. (Ref# 26376; Ticket ID 70067)
Various bug fixes
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.
![]() |
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.
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.
).For details on using QWinCfg, see its entry in the Utilities Reference.
If you're using the command-line tools, use the qconfig utility to configure your machine to use a specific version of Neutrino:
eval `qconfig -n "QNX Software Development Platform 6.4.0" -e`
![]() |
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.
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.)
![]() |
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:
QNX SDP 6.4.0 contains known issues in these areas:
![]() |
We're actively investigating all known issues. |
Workaround: To display the text correctly, open a web browser and view the license agreement .txt files located in base_dir/install/qnxsdp/6.4.0, where base_dir is where you installed SDP.
If you uninstall 6.4.0, the uninstaller checks to see if 6.3.2 is present. If so, it moves the cleanup utility back to its original location.
./uninstaller.bin -W beanDeleteConfigDir.active="False"
If you uninstall 6.4.0, the uninstaller checks to see if 6.3.2 is present. If so, it restores uninstaller.bin.
(Ref# 58784, 60037)
Workaround: Remove the extra qconfig string from the value of QNX_CONFIGURATION.
Workaround: Open the QNX SDP Activation dialog by selecting
from the Start menu, or by entering the following at the command prompt:drive:\Program Files\QNX Software Systems\bin\qnxactivate -a
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.
(Ref# 29440, 29380)
Workaround: Do the following:
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; }
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:
![]() |
This affects only static initializers containing ENDIAN_*() expressions, and doesn't apply to any runtime use of these ENDIAN_*() macros. |
Workaround: A requirement of startup code for PowerPC-based boards is to configure the DBAT0 register. The register is currently configured for a minimum size of 256 MB. Initializing DBAT0U[BL] to the exact (power of 2) size of physical memory will eliminate this situation from producing a machine check exception. Alternatively, if possible on the particular board, disabling the assertion of TEA will also prevent the errant (speculative load for a branch not taken) machine check when this specific situation occurs. This option should be considered in the context of the entire system. Please contact QNX for specific questions about these and other workarounds.
Workaround: Press F5 to start the debug shell; it simply starts fesh just after mounting the filesystems. If you want to run a consistency check a filesystem, run /sbin/chkfsys after the shell starts.
Workaround: Replace the partition boot loader. From a working system, run:
dloader /dev/part pc2
where part is the device name of the partition you need to boot.
Workaround: We've added an -R command-line option to diskboot and a new "Hit space..." option, F3. Using these prevents diskboot from restarting a devb- driver. The drivers are restarted if only a CD-ROM is found. In the case of this issue, the restart means devb-ahci and devb-eide compete for the same bus, which results in a hang.
Workaround: Contact Technical Support to get a customized utility that enables the interrupts.
Workaround: Disable legacy USB support in the BIOS.
Workaround: Look for this line in the source code:
mattr.flags = PTHREAD_RECURSIVE_ENABLE;
and change it to this:
pthread_mutexattr_setrecursive( &mattr, PTHREAD_RECURSIVE_ENABLE);
Workaround: Relink any SH4 binaries that you linked with QNX Neutrino 6.2.1 or earlier.
ksh C:/QNX640/host/win32/x86/usr/bin/setupbsp installation_dir archive
(Ref# 50723)
For example, the following code applies an alignment of 8 to both my_long_long_t and the long long:
typedef long long my_long_long_t __attribute__((__aligned__(8)));
Workaround: Make a duplicate typedef of a dummy type:
typedef long long my_dummy_t; typedef my_dummy_t my_long_long_t __attribute__((__aligned__(8)));
Workaround: Add the following to your C++ shared library:
#include <dlfcn.h> /* * stick around for atexit(dtors) * add to common.mk: * CCFLAGS += -DSONAME_STR=\"$(notdir $(FULLNAME)$(VERSION_TAG_$(BUILD_TYPE)))\" */ extern void hackslash(void) __attribute__((constructor)); void hackslash(void) { dlopen(SONAME_STR,RTLD_NOW); }
Workaround: If you see problems (such as relocation-truncation errors) at link time when building shared objects, consider splitting your shared object into multiple shared objects.
Workaround: Disable breakpoints in code that you're single-stepping through.
Workaround: Rebuild the startup binary using QNX Momentics 6.4.0. The resulting startup will work with 6.2.1, 6.3, and 6.4.0.
Workaround: Use drive-letter mountpoints instead.
-I $QNX_HOST/usr/lib/gcc-lib/powerpc-unknown-nto-qnx6.3.0/3.3.5/include
to the qcc command line. This tells qcc where to find the <altivec.h> header file. GCC doesn't need this workaround, as it knows to search its own include directories. (Ref# 26109)
Workaround: Make sure the QNX Momentics Cygwin is in your PATH before the "real" Cygwin, or delete the Cygwin make.
The PCI server code allocates one byte low of PCI memory and one byte high of PCI memory and keeps these values as the range of low and high PCI memory. It does the same for I/O space. The server then scans all devices in PCI space and checks the I/O and memory ranges for each device against the stored range values to see whether they're valid or not. If a range check fails, the device is placed in the disabled state and is initialized when an application calls pci_attach_device(). The PCI server code is standard across all platforms and only the low-level, hardware specific portion changes, so there is a generic portion to all the drivers. (Ref# 50790)
(Ref# 61821)
Workaround: Relink the driver binaries on Neutrino 6.4.0. For updated source code, see Foundry 27 on our website, or contact Technical Support.
Workaround: Use the on command to adjust the priorities of the audio and graphics drivers.
(Ref# 41600)
Workaround: Use the devc-con-hid console manager instead.
Workaround: Use the devg-svga.so or devg-vesabios.so graphics driver instead, or manually edit /etc/system/config/display.conf to find a display mode that works with devg-radeon.so.
Workaround: Use phgrafx to change the driver to devg-i830.so. You can also avoid the problem by exiting to text mode, and then typing shutdown at the command prompt.
Workaround: Do the following:
After this, you should be able to start and stop Photon on both cards properly.
You'll need to follow the steps above only if you run crttrap trap again.
Workaround: Use the onboard graphics controller instead. If you set the onboard display as the primary controller, any installed PCI graphics cards will still be detected / trapped.
If you also have a Microsoft USB mouse connected, you get a "devh-usb.so - Unable to attach to USB device 1 (10)" message. (Ref# 41122)
Workaround: Force the driver to use speed and duplex settings that it supports (10 and 100 Mbit/s).
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.
Workaround: Use kill -9 instead to kill io-net.
Workaround: Fully specify the vendor ID, device ID, bus number, and device number to the driver when starting (e.g. vid=0x0bda,did=0x8150,busnum=1,devnum=2,lan=2).
Workaround: If you encounter problems with this driver, use the io-net driver devn-asix.so instead.
Unable to find remove id ###
may appear on the console. This error message comes from the enumerator and is not an indication of an error condition. (Ref# 61971)
In this release, umount() sets errno to EBUSY if any pending or in-progress flash filesystem operations exist on the filesystem unless you specify _MOUNT_FORCE. The same applies for scripts that call the umount utility without the -f option. This has implications for applications that expect _MOUNT_FORCE behavior but don't specify it.
The IDE contains the following known issues:
Subscription License Expired - Your QNX License could not be obtained, some QNX functionality will be disabled.
This message appears only if QNX Software Systems has a contract with you to support server-based licenses. It indicates one of the following:
(Ref# 51688)
Workaround: Close any project that you created on a remote drive before disconnecting the drive.
An exception occurred while launching help. Refer to the log for more details.
The problem could be that the IDE couldn't find your default browser. Check the web browser listed in your preferences (see
) to make sure it's a browser that's installed on your system.If this doesn't fix the problem, check the log file; see
. If you've installed the Eclipse SDK, use the Error Log view. (Ref# 29971)Workaround: Build everything with debugging information, or use -gdwarf-2 instead of -gstabs with gcc 2.95.3.
Workaround: For priority labels, you need to generate the log file in wide mode.
Workaround: Close and then reopen the System Profiler perspective to restore the summary information.
Workaround: Add a 10-20 second delay before main exits, and specify the search path to your own shared libraries by selecting
, then in the Library Search Path field, add a directory where the .so file is located.Workaround: Run the process as the root. If the process is launched using qconn, then qconn should be run as root.
Workaround: Run only one Memory Analysis Tooling session and one IDE client at a time on the same target machine.
Workaround: If your program uses fork, you must disable the control thread of the Memory Analysis Tool (from the Launch Configuration, select
and disable Create control thread).In addition, it is not possible to attach to this type of process because the Memory Analysis Tool needs to run a control thread.
Copy operation error: ....\.boot Remove Permission denied
Copying of the boot image using drag-and-drop fails. (Ref# 46882; Ticket ID 77863)
Workaround: You can't use a target directory of /. Instead, map boot onto /boot, lib onto /lib, and so on.
ld: cannot find -lmy_lib
This error occurs because the build that the IDE performs from the Project Settings dialog doesn't re-build any dependent projects.
Workaround: Select your project from the Projects view, right-click and build your project by selecting Build Project from the context menu. (Ref# 45556)
Workaround: Don't disable the setting Always clear before each build.
all : cc2 cc2 : cc2.o cc2.o : cc2.cpp
then the link stage doesn't work properly. (Ref# 62006)
Workaround: To avoid this, use an explicit rule for linking:
cc2 : cc2.o $(CXX) -o cc2 cc2.o -lang-c++
Workaround: Use an explicit target in the make command.
Workaround:
To check out an existing PhAB project from CVS:
If you choose an existing location, select Use existing repository location.
(Ref# 42437)
Workaround: Change the memory location to 8c004000 from 8c002000 (e.g. [image=0x8c004000]).
Workaround: If you need a mini serial port driver for the Media5200b, you can modify the one for the Lite5200B. You need to change the interrupt number to 68 and use PSC6, GPIO6.
Workaround: You need change the baud rate to the correct one below:
Workaround: Change the following code so that it doesn't disable Rx (SH_SCIF_SCSCR_RE).
In mini_serial.c:
if (state == MDRIVER_INTR_ATTACH) { set_port16(mdata->port + SH_SCIF_SCSCR_OFF, SH_SCIF_SCSCR_RE|SH_SCIF_SCSCR_RIE, 0); return 1; }
In minidriver-serscif.c, change this:
out16(port + SH_SCIF_SCSCR_OFF, SH_SCIF_SCSCR_RE|SH_SCIF_SCSCR_RIE);
to this:
out16(port + SH_SCIF_SCSCR_OFF, in16(port + SH_SCIF_SCSCR_OFF)|SH_SCIF_SCSCR_RIE);
The baud rate and clock for Biscayne should be 57600 and 33333333.
Workaround: Use the -ae option to procnto to enable alignment fault emulation.
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
Workaround: When you're using Qnet with an Ethernet driver that's enabled to use jumbo packets, you should set the cluster size (the mclbytes option to io-pkt*) to be the same as the packet size (the ifconfig if_name mtu command for the driver). This ensures that the packet buffers that Qnet uses are contiguous in memory.
If you specify a jumbo packet size larger than 4 KB (the default page size), you must additionally specify the pagesize=X option to io-pkt, with the same value as the mclbytes=X option. For example, to use 8100-byte packets with devnp-i82544.so, do the following:
io-pkt-v4 -d i82544 -p tcpip pagesize=8192,mclbytes=8192 ifconfig wm0 mtu 8100 mount -T io-pkt lsm-qnet.so
![]() |
Be sure to mount Qnet after you change the MTU of the interface with ifconfig. |
If you now type:
cat /proc/qnetstats
you can see that the Qnet L4 has an MTU of 8096, which it learned from the driver (remember the 4 bytes for the trailing CRC).
![]() |
All the Qnets on your LAN must have exactly the same MTU. |
You can specify a particular MTU to Qnet (which can be the same or less than the driver-advertised value) with the mtu_en=X option.
Workaround: Start separate client (fs-nfs2, fs-nfs3) processes for each server you wish to mount.
Workaround: Your resource manager must handle the raw QNX messages until this is corrected.
Workaround: Drivers must accommodate for this by checking the length of the data in the mbuf and ignoring the mbuf if the length is zero.
Workaround: Disable hardware flow control by clearing ihflow and ohflow:
stty -ihflow -ohflow < /dev/ser1
Workaround: You can increase the timeout to 3 seconds by using pppoectl:
pppoectl pppeo0 lcp-timeout=3000
Workaround: Use Windows Security Properties to set the file permissions to give other users access.
Workaround: Configure Windows to unblock. Once you've done this, Windows won't display the security warnings when you restart PhAB.
PhAB: Can't open: "clipboard.phab" (Permission denied). Please resolve the problem and re-try this operation. (No error)
Thus, copying and pasting is impossible. (Ref# 39879)
Workaround: Make sure that your HOMEDRIVE and HOMEPATH environment variables are set to point to a directory that you have permission to write into.
PhAB for Windows uses the HOME environment variable if it's set, otherwise it internally sets HOME to HOMEDRIVE followed by HOMEPATH. If these aren't valid, then PhAB will encounter difficulties.
Workaround: Set QNX_HELP_HOME_PAGE to /usr/qnx640/target/qnx6/usr/help/product/momentics/bookset.html, and QNX_HELP_PATH to /usr/qnx640/target/qnx6/usr/help/product (assuming you installed QNX Momentics in the default location).
Workaround: Click the Options button, click the Others tab, and then increase the size of the image cache. Alternatively, you can view the documentation in a web browser.
Workaround: Either use a flat fill (i.e. set Pt_FLAT_FILL in Pt_ARG_BASIC_FLAGS), or use an image-based button.
Workaround: Use nondirect map mode instead.
Workaround: Kill the running qnxactivate command:
slay -s SIGKILL qnxactivate
and then run qnxactivate manually to complete the activation:
/usr/bin/qnxactivate
Workaround: If you want to work with Microsoft Visual Studio (MSVS) after installing QNX Momentics on the same system, do the following:
set MAKEFLAGS=saved_makeflags_value
Workaround: To disable UAC on your Windows Vista configuration:
You can reenable User Access Control by selecting the Enable UAC line and then clicking the Launch button.
![]() |
Disabling UAC bypasses some of Vista's security features. |
Workaround: Modify your user permissions. For instructions about changing these permissions, see the steps in the workaround for the problem (Ref# 44027) above.
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.
Workaround: See the detailed documentation at http://ctags.sourceforge.net/ctags.html.
Input file specified ctags: cannot sort tag file : No error
The ctags utility still generates tag files; however, they won't be sorted. (Ref# 43530)
Workaround: Manually call the QNX sort on the tags file.
Workaround: Log out and back in again before trying to activate.
After you've installed QNX SDP 6.4.0, 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.).
![]() |
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. |
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.
The problems fixed in QNX SDP 6.4.0 include the following:
Change | Ref# |
---|---|
The static libc now includes strptime(), which converts a string into a time. | 9132 |
RAD and DEG now work correctly in phcalc. | 8710 |
PtInitDnd() now accepts a drag event. If it isn't a Ph_EV_DRAG_COMPLETE subtype, you have to cancel the drag first, using the new PhCancelDrag() function. | 8280 |
Phindows now supports clipboard sharing when connecting to a Neutrino machine that uses with an up-to-date version of phrelay. You can use the -Ob and -OB command-line options to enable and disable clipboard sharing respectively. It's on by default. | 8216 |
The <string.h> header file now brings in <strings.h> if _POSIX_C_SOURCE isn't set, as this is common practice on other platforms. | 60983 |
A PpPrintContext_t job control (0xF2) subcommand (0x05 - Pp_ABORTED) has been implemented in libphrinter. As a result of this, older applications that continued to run when processing particular .phs files might now exit. This condition is triggered when the PpPrintContext_t resource Pp_PC_MAX_DEST_SIZE is set via PpSetPC(), and the current draw stream being rendered exceeds that set value. If the Pp_PC_MAX_DEST_SIZE isn't set (the default), this condition will not be encountered. When Pp_PC_MAX_DEST_SIZE isn't set, memory is allocated to accomodate the current draw stream (the default). The preview utility now sets verbosity level so that an error message will be sent to stderr and sloginfo if libphrinter encounters an error condition. |
60888 |
It is strongly advised that users utilize the AG layering API rather than the Photon layering API, due to increased functionality and ease of use. | 60878 |
VirtualPC and VMWare must run in a Windows session that's operating with 32-bit graphics. | 60669 |
devg-poulsbo.so is now included in distribution. | 60612 |
The qcc utility no longer needs a space between the -A option and its argument. | 60511 |
Advanced Graphics now includes a touchscreen calibration tool called gf-calib. | 60462 |
If you build a container project in the IDE, you've set the "stop on error" option on in the build configuration, and an error occurs in one of the projects, the build now stops correctly. | 60281 |
The maximum number of threads for flash (devf-*) drivers has increased from 4 to 100. You can use the -t option to specify the number of threads. | 59876 |
The usage message for mount now includes the -a option. | 59722 |
The shm_ctl() and shm_ctl_special() functions have a new flag, SHMCTL_LAZY. Setting this flag delays allocating memory until it's referenced. Calling mmap() with flags of MAP_ANON | MAP_LAZY | MAP_SHARED implicitly sets SHMCTL_LAZY on the underlying object. | 59589 |
The IDE now includes support for parallel building for QNX Projects. | 59489 |
There's a new dispatch_create_channel() function that's similar to dispatch_create() but lets you specify the ID of the channel to use. | 59009 |
The PtMultiText widget no longer displays CR and LF characters. (Ticket ID 83992) | 58416 |
In the IDE on Linux, if you aren't logged in as root, and you try to start the tftp server and bind to port 67 (which requires root privileges), the IDE now displays an error message. If you want to run tftp as a non-root user, change the port (e.g. to 6700), or make the proxy program set its user ID to root. For example: su (The actual commands may depend on the distro.) |
58265 |
The PhAB language editor, phablang now correctly saves your translations. | 58212 |
We've corrected a memory leak in io_close(), io_stream_read(), and io_stream_skip() for image_load_surface(). (Ticket ID 83864) | 58086 |
Indices to the -k option to the sort command are now 1-based as per POSIX instead of the old Draft 9 behavior, which was 0-based. We added the -9 option so you can choose the old behavior, but this option may be deprecated in a future release. | 57998 |
PxConfigReadString() now terminates the string with a NULL character. (Ticket ID 83833) | 57996 |
We've deprecated psin. | 57719 |
PgDrawGradientBevelBox*(), PgContrastBevelBox*(), and PgBevelBox*() now strictly constrain the incoming parameters as described in the documentation. The width parameter is inclusive, i.e. the inline, depth, and outline are constrained within the width. | 57454 |
PgSetVideoMode() returns an error if more than one layer is active via the Pg layer family of calls. By default, io-graphics is already using one layer. | 56988 |
The <termcap.h> file now defines the standard termcap variables, PC, BC, UP, and ospeed. The prototype to tputs() is now the standard: extern int tputs(char *, int, int (*)(int)); rather than the previous, extern int tputs(char *, int, int (*)(char));. | 56632 |
The color model is now set correctly during multi-pass drawstream rendering. ARGB issues are now addressed correctly in OSC. (Ticket ID 82983) | 56426 |
Both phditto and phindows now have a dialog for confirming that you want to close the window. | 56162 |
The IDE's Code Coverage tool now works with C/C++ Managed Projects. (Ticket ID 82862) | 56075 |
MultiMedia v1.x support has been removed from 6.4. MultiMedia v1.x-dependent applications will not resolve symbols or execute under 6.4. Inquire of QNX regarding the Aviage MultiMedia Suite for multimedia support. | 55967 |
The IDE now lets you edit the line number for a breakpoint. Right-click on the breakpoint, select Properties..., select the Common tab, and then edit the line number. (Ticket ID 82835) | 55861 |
GCC 4.2.* replaces calls to some functions such as strcpy() with calls to other functions such as memcpy(). As a result, memory analysis can show a different trap function name. To turn off this behavior, specify the -fno-builtin option when compiling. | 55514 |
We've discontinued 8-bit drivers and display modes in Photon. The phgrafx binary is for x86 only; we previously shipped it on other platforms, but crttrap, which it relies on, was an x86-only application, so phgrafx was never usable on non-x86 platforms. | 55260 |
The PtOSContainer widget now correctly translates coordinates. | 55060 |
The static libc now includes insque() and remque(), which you can use to add and remove elements of a doubly linked queue. | 54815 |
The phauxrender library (used by some print filters) now renders Bezier curves better. | 54688 |
PgDrawTextAreaCx() now properly processes the number of bytes. (Ticket ID 81546) | 53733 |
Some extra notes how this feature works. 1) In project properties select Build->Tool Chain Ediror and select external make builder. On the C/C++ BUild page verify that both check boxes in make generation group are on. 2) build once desirable configuration(-s). As a result a bunch of .mk files + top level make file for each processed configuration (the last one in configuration folder) should be created. This make file can be processed from command line using make utility: make -f [configuration]/makefile [target]. 3) Every time any configuration is changed, updated or deleted, user should refresh make infrastructure either by re-generating make files or changing existing files manually. | 53638 |
In order to conform to POSIX, pthread_cond_timedwait() and pthread_cond_wait() now return EPERM instead of EINVAL if the current thread doesn't own the mutex. | 52798 |
We've addressed some issues with drivers/frameworks software that assume physical addresses of memory are less that 4 GB (or aren't 64-bit paddr-safe ). We've also added a new -m[~]P option to procnto, as well as a new SPAWN_PADDR64_SAFE flag for spawn*(). The new procnto -m option variant is -mP, which turns on full allocation of high memory for all processes (the default is to limit anonymous allocation below the 4 gigabyte mark - i.e. -m~P). This is mostly useful only for testing. The new spawn flag is SPAWN_PADDR64_SAFE which allows the selective spawn of an application that is known to be 64-bit safe or that doesn't care about the physical memory location. (Ticket ID 80995) |
52392 |
The system monitor in Photon's shelf now correctly displays memory usage on machines with 4 GB of RAM. | 52342 |
We've updated the phs-to-pcl filter so that it's based on the new HP APDK library, and hence supports more printers. For more information, see the entry for phs-to-pcl in the Utilities Reference. | 52331 |
POSIX doesn't specify what should happen if you call getcwd( NULL, 0). The Neutrino version (like many others) now allocates a buffer for the name of the directory; it's up to your application to free the buffer when you no longer need it. | 51435 |
The devg-lx800.so configuration file geode.conf has a new option, use_bios=, which you can set to 0 to try modes not supported by the BIOS. Modes not supported by the BIOS may not work. | 51369 |
We've fixed a bug in the construction of Pg_SET_USER_CLIP draw commands that used to corrupt the draw stream. (Ticket ID 79669) | 50581 |
The Photon file manager, pfm, now properly handles character encoding when creating files. | 50536 |
PhAB no longer crashes when you paste PtBitmap widgets. (Ticket ID 79943) | 50322 |
The fdisk utility now attempts to determine the type of loader (if any) on the disk. | 50293 |
There's a new -c option to slogger that you can use to open the log file with O_SYNC to commit the log events to disk. (Ticket ID 78782) | 49153 |
Square caps on the end of thick lines now always match the thickness of the line itself. (Ticket ID 79056) | 48674 |
The rpcgen utility now looks for the C preprocessor in the right place on QNX Neutrino hosts. (Ticket ID 76034) | 48650 |
The rpcgen compiler now correctly handles arrays of booleans. (Ticket ID 79034) | 48648 |
The makefiles for new QNX projects in the IDE now work correctly with new versions of make on Linux. | 48365 |
PgDrawEllipse() no longer experiences a sign inversion when the radius is greater than 1000. (Ticket ID 78772) | 48313 |
The shm_ctl_special() function now supports some ARM-specific flags that give you better control over Page Table Entry contents. | 48279 |
The Extreme2 graphics driver no longer displays the initial TV output as a pink or light blue screen. It's now black. (Ticket ID 78491) | 48019 |
The Print selection button in the print dialog for Photon applications now functions correctly. (Ticket ID 77972) | 47747 |
You will notice performance improvements with the Memory Analysis Tooling application if you use "Memory Errors" options. There are no performance improvements in the area of memory events collection. However, you will notice the following caveats:
In addition, a new option to remove all optimizations has been added that sets the MALLOC_USE_CACHE environment variable to 0. You can also change the malloc cache size (using the save variable). The default is value is 32. This value should be power a of 2, and should be between 1 and 2048. |
47353 |
Fill patterns now function correctly with the phs-to-ps filter. (Ticket ID 78087) | 47330 |
Phindows now detects when the target has disconnected unexpectedly. | 47183 |
The IDE's debugger no longer occasionally stops in the wrong thread when you're debugging multiple threads (e.g. 15-16 threads) in a process. | 46983 |
POSIX requires that mmap() fail with EINVAL if the flags argument doesn't contain either MAP_SHARED or MAP_PRIVATE. This now happens unless you request that the memory manager use backward-compatibility mode. For more information, see the section on POSIX PSE52 conformance in these notes. | 46288 |
The IDE now lets you disassemble any piece of code starting with known address. You have to obtain the address of the function and use the Disassembly view action Go to address to jump to the specific function. | 46197 |
The gf_display_set_mode() function now returns GF_ERR_OK on success (as documented). | 46077 |
You can now use gzip to compress and expand files in a RAM (/dev/shmem) filesystem, but you need to specify the -f option. | 46076 |
The gf_cursor_t structure formerly used an anonymous enum for the cursor type, but this caused errors when you compiled C++ programs. The enumerated type is now called gf_cursor_type_t. (Ticket ID 77430) | 46045 |
The Lanbic/Navicore driver now supports gf_display_set_layer_order(). | 45863 |
In the IDE's Memory Analysis Toolkit, the dladdr option isn't required anymore and is disabled if you're using the new memory analysis library. | 45807 |
The IDE's Application Profiler can now load symbols for a shared library when explicitly set in the Shared Library path field in the Launch Configuration dialog. | 45711 |
If you use the shortcut icon for preferences in the IDE's TFTP view, you no longer get an error message when you save your changes by clicking the Apply and then the OK button. | 45704 |
In the Statistics window of the IDE's Memory Analysis Tool, the number of errors reported is now the actual number of errors that occurred as displayed in the Errors view. | 45443 |
The Extra Libraries dialog that is available in the IDE by right-clicking on Properties, and then selecting | now includes Up and Down buttons for reordering the libraries, and it provides a scrollbar if the list of extra libraries becomes too long to display. (Ticket ID 75996)45353 |
When you import events from a file (a librcheck trace file) into the IDE's Memory Analysis perspective, the import process now functions properly when you use this file for events and traces and leak detection is enabled. | 45107 |
In the IDE, if you change a QNX C/C++ Project indexer setting for a container project, the C/C++ index and a progress icon in bottom right of the Workbench window are now displayed. | 45081 |
PhAB now preserves the grid position of icons in its workspace. (Ticket ID 76763) | 44951 |
A project with shared libraries no longer encounters a problem when you debug shared libraries in the IDE. | 44885 |
On Windows Vista, the IDE's Memory Analysis Tooling perspective now displays the actual Vista host's time, not UTC. | 44861 |
The phs-to-pcl filter can now print on PPCBE targets. | 44845 |
Clipping is now processed correctly when multiple PtOSContainer widgets are children of a common parent widget. | 44677 |
The ph script now uses waitfor to test for existence of devices. | 44675 |
PgConfigScalerChannel() can now set the brightness and contrast. It previously ignored them. | 44564 |
PgGetScalerCapabilities() now indicates Pg_SCALER_CAP_BRIGHTNESS_ADJUST and/or Pg_SCALER_CAP_CONTRAST_ADJUST capabilities if supported by the driver. | 44492 |
When performing memory analysis in the IDE, if you use a time-based collection method for memory leaks, you no longer get results that show duplicate memory leaks. | 44473 |
PhAB for Windows now runs correctly on Windows Vista. | 44260 |
Phindows now draws thick lines in the correct position. (Ticket ID 76189) | 44028 |
The system monitor in Photon's shelf now displays large RAM values correctly. (Ticket ID 76001) | 44014 |
In the IDE's System Profiler, if you open a .kev file and select a timeline with obvious activity, and you then zoom in, the thread timelines and events no longer disappear. | 43684 |
In the IDE's Memory Analysis Tool, if you select a region that has only one allocation, (e.g., a region in the Usage view) and select Show in Trace to obtain a graphical representation, the graph now displays a single bar that corresponds to the only allocation. | 43494 |
Our libsocket.so no longer uses a QNX-specific itoa(), so if an application defines its own itoa(), the application's version no longer causes calls to socket() to fail. | 43281 |
In the Image Combine dialog box in the IDE's System Builder, the fields are automatically populated with information from the IFS properties. If you change the information for the fields in this dialog box, the values are now correctly saved and the IFS properties are updated. | 43188 |
POSIX requires that the error numbers in <errno.h> have unique values. In order to satisfy this requirement we're changing the value of EALREADY. For details, see the section on POSIX PSE52 conformance in these notes. | 42983 |
There's a new Advanced Graphics flag, GF_SURFACE_CREATE_SHAREABLE, that allows server side surfaces to be allocated via gf_surface_create(). | 42774 |
When running io-display, you can now prevent a display from shutting down when all applications exit by setti ng the noautoshutdown option to 1 in the display.conf configuration file. | 42650 |
When you zoom in on some of the System Profiler's panes (e.g. CPU Migration), the data is now correctly displayed, and the right-click menu is once again available. | 42616 |
We've added a gf_display_wait_vsync() function that blocks on a vertical synchronization. | 42532 |
There is now a shared version of the libgf library. | 42530 |
You can now use the SOFT3D_NAME environment variable to specify a software fallback library for 3D rendering. This allows you to use a library other than devg-soft3d.so. | 42529 |
In the IDE's Memory Analysis Tooling, if you import librcheck events from trace and event log files that were created on a target machine, the Memory Analysis perspective now correctly shows the events and traces. | 42162 |
If you choose a debugger other than gdb, the IDE no longer gives you an "Invalid debugger type" message. | 42127 |
Self-hosted Neutrino systems no longer include two different versions of qconfig. | 42105 |
In the IDE, the System Profiler's Inter CPU Communication chart now has a heading of "Cross CPU Messages" instead of "Total Migrations." | 42037 |
The kernel no longer crashes if you call TraceEvent() with unaligned data, although the kernel call will fail with EFAULT. | 41995 |
We've added a gf_context_unset_surface() function that lets you remove a surface from a context. | 41972 |
The devg-radeon.so driver now works properly on ViewSonic VP2030b monitors. | 41905 |
We've added PgSyncFlush() and PgSyncFlushCx() functions that ensure that the draw stream has been flushed and processed, before unblocking the calling client. | 41669 |
Advanced Graphics now supports 32-bit ARGB ordered surface formats (GF_FORMAT_ARGB8888). | 41663 |
The tinit utility now has an -f option that lets you specify the file that lists the commands to start. The default is /etc/config/ttys. | 41658 |
The phrelay utility now uses wframe_updated.so from /usr/photon/dll. | 41547 |
Phindows now supports extended the draw modes Pg_DrawModeSRCXOR, Pg_DrawModeSRCAND, and Pg_DrawModeSRCOR. | 41325 |
The Photon file manager, pfm can now execute applications from other locations than /usr/photon/bin. (Ticket ID 74650) | 41318 |
The -V (verbose) option now works for phs-to-ps. | 41194 |
Printer filters no longer run ready when they encounter broken .phs files. | 41180 |
Some interrupt controllers have read-and-clear registers indicating the active interrupts. That is, the first read returns a bitset with the pending interrupts and then immediately zeros the register. In order to handle this type of register, we've defined a INTR_GENFLAG_ID_LOOP flag. For more details, see the Customizing Image Startup Programs chapter of Building Embedded Systems. | 40731 |
You can now import an EFS buildfile into a project in the IDE. | 40682 |
The libphrender library's spanlist processing no longer suffers from 16-bit overflow. (Ticket ID 73681) | 39888 |
The lsm-qnet.so module has a max_num_l4s option that lets you specify the number of interfaces. | 39728 |
You can now use the Qnet "file" resolver (resolve=file option) to resolve IP addresses. | 39612 |
Phindows now correctly displays window titles that contain non-ASCII characters, specified by the -s option. | 38770 |
If you use the mount command to mount an NFS server, and you specify the argument -o ver3, and fs-nfs3 isn't running, fs-nfs2 no longer accepts the mount request. | 38640 |
Pt_ARG_MENU_TEXT_FONT widget resource has been added to PtPanelGroup for the popup menu in single-tab mode. (Ticket ID 73009) | 38582 |
Photon now supports a user-defined event type, Ph_EV_USER. (Ticket ID 73092) | 38579 |
The fs-cifs filesystem now returns the errno when the mkdir() function call fails as those returned by the local filesystem. | 38573 |
If you perform a socket operation on a file descriptor of a file on a fs-cifs mountpoint, the operation fails, and the errno returned is now correctly ENOTSOCK. | 38572 |
Both fs-nfs2 and fs-nfs3 now support fchdir(). | 38548 |
The exit status for fs-nfs3 is now correct. | 38512 |
If you use the instrumented kernel to trace events while you're using mq, emitting _NTO_TRACE_COMM_SMSG communication-class events no longer causes your application to crash with an EFAULT when it calls mq_send(). | 38082 |
We now support uuencode and uudecode. They're similar to uue and uud, but work better with pipes. | 32725 |
The libPtWeb.so shared object now processes Pp_PC_MAX_DEST_SIZE correctly as a ulong_t, which prevents printer drawstreams from being corrupted or truncated. | 30040 |
phs-to-ps no longer runs READY or segfaults when processing aborted printer jobs. | 29940 |
The gf_display_snapshot() function provides screen snapshots on Carmine cards. | 29893 |
FIFO scheduling is now honored correctly with SMP. | 29847 |
We've corrected our recursive makefiles to clear and later reset the NAME environment variable (if it exists), so they no longer use its value to name the resulting binary. | 29843 |
Trying to slay something on a node in a domain other than your own now works. | 29840 |
The kernel no longer crashes when you use ClockPeriod() to set the ticksize to a very small value and you then use the SCHED_APS_SET_PARMS command to SchedCtl() to change the scheduling window size. | 29832 |
The kernel no longer crashes when you use ClockPeriod() to set the ticksize to a very small value and you then invoke the SCHED_APS_PARTITION_STATS command to SchedCtl() at a very high frequency. | 29827 |
If you have multiple writable mappings to the same region of a memory-mapped file (in different processes, for example), then calling msync() with MS_SYNC no longer causes a deadlock. | 29574 |
The PtMultiText widget no longer leaks memory for text attribute font strings. (Ticket ID 72352) | 29421 |
If you use QWinCfg on Windows to switch to QNX Momentics 6.2.1, the value of the QNX_HOST environment variable now correctly contains backslashes ("\"). | 29368 |
The devg-radeon.so driver now works, even when you have more than 512 MB of system RAM. | 29339 |
In the IDE's System Profiler, if there are multiple events on a pixel in a timeline, and the first event isn't a labeled type of event, the labels for other events on that pixel are now correctly shown. | 29119 |
The PtWebClient widget now has a new Pt_CB_WEB_STATUS type called Pt_WEB_STATUS_CONTENTS. The information passed in the description field for this new status type is the string contents of the PtText or PtMultiText type-in field that just got focus. The contents string is preceded by an ordinal number identifying the control on the web page, and a colon. Currently only FORM-EDIT, FORM-PASS and FORM-TEXTAREA controls are supported. | 28874 |
PxLoadImage() no longer misreads ARGB1555 as RGB565. | 28821 |
The snapshot utility now works with phrelay (phditto, phindows). | 28671 |
The devn-speedo.so driver now has a probe_phy option that controls automatic probing of the PHY device. | 28648 |
We've removed a potential deadlock from the malloc library that could have occurred when you used vfork() and exec() if the vforked child received a termination signal while holding the malloc library mutex. | 28161 |
In order to conform to POSIX, we've changed the ino_t type from signed to unsigned. For more information, see the section on POSIX PSE52 conformance in these notes. | 27903 |
The phlocale utility now lets you to specify up to three different keyboard layouts, as well as a key combination for switching between them. (Ticket ID 70693) | 27351 |
The PgDrawArc() function, when you use the Pg_ARC_PIE flag, now gives more consistent results when using thick lines. (Ticket ID 70706) | 27266 |
The phlogin2 utility now scrolls user icons when there are more than 8 users registered in the system. (Ticket ID 70499) | 26944 |
Phditto now properly reads the length field from incoming message headers, and so no longer runs READY. | 26824 |
PhAB grouping no longer breaks widget anchoring. (Ticket ID 69002) | 26634 |
Horizontal scrolling now works properly in the IDE's System Profiler. | 26628 |
Blocked resources in PtCompoundClass_t are now properly defined as Pt_ARG_IS_POINTER. (Ticket ID 70199) | 26522 |
PhAB no longer displays the Pt_ARG_ARM_COLOR and Pt_ARG_ARM_FILL resources for PtNumericInteger and PtNumericFloat widgets. (Ticket ID 70195) | 26494 |
The performance of large block writes to /dev/shmem has improved. | 26280 |
The PtMTrend widget now properly renders when data is added via PtMTrendAddData(). (Ticket ID 70044) | 26155 |
You no longer lose your keyboard configuration when you change the machine's hostname. | 26052 |
PfGenerateFontName() now returns a mapped font entry if the requested font name, and/or size isn't available. (Ticket ID 69964) | 26043 |
Backtraces in the IDE's Memory Analysis now work reliably on ARM targets. | 26035 |
Focus is now processed correctly in the PhAB resource editor when a widget was instantiated via Ctrl-W. (Ticket ID 69636) | 25790 |
PtGenList column formatting now works correctly via phrelay. | 25733 |
The Photon helpviewer now sets the permissions on /var/help so that any user can generate search indexes. | 25628 |
Black-box regression tests for watchpoints in gdb no longer fail for ARM targets. | 25599 |
The PhAB resource palette no longer overrides the default count for PtTimer. (Ticket ID 69508) | 25494 |
The PtScrollbar is now updated correctly when you remove an item from a PtList or PtTree. (Ticket ID 69522) | 25472 |
The phabmsg now generates the filename extension during a "Save as ..." operation. (Ticket ID 69427) | 25308 |
If you reset your target board while you're debugging from the Windows-hosted IDE, and you've clicked Terminate and remove in the IDE Debug view, the ntoCPU-gdb.exe process no longer runs ready, consuming 100% of CPU. | 25174 |
Photon has two new functions: PgGetSurfaceGFSid() and PdCreateOffscreenContextGF(). | 24996 |
The Korean input method, kpim, no longer displays "illegal option" if you use the -x or -y command-line option. | 24827 |
PtTreeModifyItemString() no longer truncates the string to the longest displayed string length. (Ticket ID 69249) | 24819 |
The gdb debugger no longer hangs when you run it over phditto. | 24817 |
The PhAB color editor's custom color palette is now saved between edits and between sessions. The information is stored in the user's photon configuration area, in a file called $HOME/.ph/phab/abcpal.cfg. A new Reset button under the custom color palette lets you reset it to its default state. If there is no color information stored in your configuration area, PhAB looks for an abcpal.cfg file in the system directory where the PhAB executable (ab) is running from. It will also look in this system area when you press the Reset button. |
24705 |
The phrelay utility now supports the display of offscreen contexts. | 24530 |
PtNumericInteger and PtNumericFloat no longer render focus if the Pt_FOCUS_RENDER flag bit is cleared from Pt_ARG_FLAGS. (Ticket ID 68900) | 24345 |
Palette matching has improved. (Ticket ID 68240) | 24289 |
The <res_plugin_api.h> is now included in the distribution under /usr/include/photon/res_plugin_api.h. | 24172 |
The Pt_ARG_NUMERIC_TEXT_FONT resource is deprecated, and so is no longer displayed in the editor in PhAB. (Ticket ID 68691) | 24111 |
When pppd creates a proxy arp entry, it now does it with the permanent flag set, so the entry no longer times out after approx 20 minutes. | 24103 |
Pt_ARG_FILL_COLOR is now shown correctly as grey for PtNumericInteger and PtNumericFloat in PhAB. (Ticket ID 68680) | 24093 |
The PtNumericInteger and PtNumericFloat widgets' up and down keys are now properly mapped when the widget orientation is Pt_HORIZONTAL. (Ticket ID 68647) | 24063 |
PhAB no longer crashes when you attempt to import a project created with PhAB on QNX 4 . | 24040 |
The phfont server now processes fontext rules in the order they're entered. (Ticket ID 68193) | 24002 |
The pwm hooks now draw borders correctly. (Ticket ID 68475) | 23992 |
PtConnection now works over QNET. | 23906 |
24-bit images are now displayed correctly on PPCBE. (Ticket ID 67709) | 23825 |
Compose sequences now work for Phindows and PhAB for Windows. (Ticket ID 68354) | 23810 |
The pppd daemon now uses the /etc/ppp/options.ttyname option file. | 23743 |
PtMultiText now honors the setting of Pt_ARG_MARGIN_WIDTH. (Ticket ID 68038) | 23280 |
Phindows now processes mouse wheel scroll events. | 22835 |
Filled polygons have an improved filling algorithmn. | 22383 |
In PhAB for Windows, if you create an application and then build it, the Make Application window no longer has an extra unreadable character at the end of each line. | 22190 |
Rounded rectangles are now rendered correctly when the fill color is Pg_TRANSPARENT. | 22177 |
The cp utility no longer crashes when you give it a source path that's longer than the maximum allowed. | 22002 |
Certain tools, such as bindres and usemsg, which are needed for building PhAB applications, now work correctly on Windows, even if you don't have write permission in the root of your local drive. (Ticket ID 66893) | 21849 |
We've fixed some heap memory leaks in snapshot, and we've made the program use shared memory more efficiently. (Ticket ID 66820) | 21776 |
The tinit utility now has a -t option that makes tinit not mask the suspend signal (SIGTSTP) in spawned processes. | 21751 |
Chinese and Korean are now listed as supported languages in phlocale. (Ticket ID 66783) | 21685 |
The PtRect widget now handles thick lines stroke outlines properly. (Ticket IDs 66784, 75898) | 21684 |
The phditto program now functions the same way Phindows does in when handling -x and -y region offsets when the -u option is passed. (Ticket ID 66776) | 21659 |
The PxConfig*() framework now properly handles characters greater than 0x7f. | 21527 |
On the SH4 platform, gdb no longer sometimes displays "finish meaningless on outermost frame" when trying to step out of a DLL when stop-on-solib-events is on. | 21502 |
If you have a C/C++ project that returns a value of 10, and you run it in the IDE, the Console window reports the correct return value. (Ticket ID 66347) | 21300 |
The pv utility now displays images correctly on PPCBE. | 20732 |
The gdb debugger no longer displays a "Compiled with unknown debugging format" warning. | 20658 |
The tftp utility no longer terminates with a floating-point exception when printing statistics from a get or put command when you're using verbose mode. | 20615 |
Setting the Pt_ARG_SCROLLBAR_WIDTH resource for a PtList or for a compound widget that includes a PtList now has the correct effect. | 20431 |
During a reclaim copy, the flash filesystem now correctly handles a LAST bit that was set incorrectly. | 20149 |
The IDE's System Builder now supports the +keeplinked attribute. | 20124 |
The tftp utility no longer faults if you press Enter at the "To" prompt without supplying the host parameter. | 20064 |
The IDE's Debug Variables view no longer lists the this pointer twice. | 20063 |
The open dropdown list for a PtComboBox is longer displayed in front of the "blank" screensaver. | 19767 |
The ptermcs utility no longer core-dumps when you save your changes. | 19568 |
If you use PpSetPC() with Pp_PC_FILTER or Pp_PC_DRIVER, the print context now correctly uses the specified print filter. (Ticket ID 64836) | 19182 |
The getcwd() function now follows POSIX, which states that the returned path won't contain components that are symbolic links. You can revert to the old behavior by exporting the DIR_KEEP_SYMLINK environment variable. example (new default POSIX behaviour): # cd /tmp # mkdir adir # ln -s adir alink # cd alink # /bin/pwd /tmp/adir example (old behaviour) # DIR_KEEP_SYMLINK=1 sh # cd /tmp # mkdir adir # ln -s adir alink # cd alink # /bin/pwd /tmp/alink | 18912 |
Multiple concurrent calls to shm_unlink() for the same shared memory object no longer cause kernel corruption and crash the kernel. | 18121 |
Phindows now supports alpha-blended images with a global source value (i.e. a constant alpha multiplier for all pixels). (Ticket ID 63678) | 17548 |
The phs-to-pcl print filter now works correctly on PPCBE. (Ticket ID 63022) | 16990 |
The phditto program now flushes serial connections after an open(). (Ticket ID 62119) | 16733 |
Phrelay message headers now support 32-bit sizes, eliminating draw buffer overflows. | 16565 |
The mountpoint specification is optional for fs-cifs, fs-nfs2, and fs-nfs3. | 15446 |
You can now use the Tab key to complete the names of files and commands in ksh. | 13090 |
The snapshot utility now works in a phditto session. | 11487 |
24-bit memory contexts now work correctly on PPCBE. | 10751 |
Change | Ref# |
---|---|
We now package BSPs as zip files (as well as putting them in a repository on Foundry27). We've updated the Working with a BSP chapter of Building Embedded Systems to suit. | 60886 |
QNX SDP 6.4.0 includes a new On-line Technical Support guide that will help you set up your myQNX account, register your support plans, and help you send files to QNX Technical Support. | 60374 |
We've deprecated crttrap, and it's no longer used by the current architecture. It's been replaced by dispconf and the OS enumerator. | 60303 |
The entry for random in the Utilities Reference now describes /dev/urandom in addition to /dev/random. This server sends any error messages to slogger, not to stderr. | 59021 |
We've updated the description of the default thread attributes in the entry for pthread_attr_init() in the Neutrino Library Reference. | 58991 |
The section on time zones in the Neutrino User's Guide now reflects the changes to North American time zones that went into effect March 1, 2007. Note that the libraries interpret short specifications of a time zone (e.g. EST5EDT) according to the new rules. | 58906 |
We've corrected the prototype for end_of_draw() in the entry for disp_draw_miscfuncs_t in the Graphics DDK documentation. | 58763 |
We've removed references to Pg_IMAGE_DIRECT_555 from the documentation. It's identical programatically to Pg_IMAGE_DIRECT_1555, but ensure the alpha bit is set accordingly if you're modifying offscreen memory directly. | 58719 |
The wcstol(), wcstoll(), wcstoul(), and wcstoull() functions are declared in <wchar.h>, not <stdlib.h>. | 58697 |
We've removed the lists of entries arranged by category from the Neutrino Library Reference and Utilities Reference. For information about the types of entries, see the index in each book. | 58365 |
We've corrected the example in the entry for PtFileSel in the Widget Reference. | 57928 |
The kernel keeps an array of the running threads (one per processor); the running thread isn't at the front of the Ready queue. We've corrected the System Architecture guide and the Neutrino Programmer's Guide. | 57392 |
The start, requires, and driver clauses in the scripting language for enum-devices now support a /wait option that makes the enumerator pause until the command associated with the clause terminates. | 57346 |
We've corrected the descriptions of the bwidth and ileave values for the -s option for the flash filesystem (devf-*) drivers in the Utilities Reference. These values must be powers of 2, but you don't specify them as powers of 2. For example, if the width of the data bus is 8, specify a bwidth of 8, not 3 (for 23). | 57300 |
We've corrected the information about the alignment of struct stat structures in the data returned by a resource manager. See the "Returning directory entries from _IO_READ" section in the Writing a Resource Manager chapter of the Neutrino Programmer's Guide. | 57274 |
It's safe to call snprintf(), sprintf(), sscanf(), swprintf(), and swscanf() from a signal handler if you aren't printing or scanning floating-point data. | 57261 |
We've added the -o option to the entry for traceprinter in the Utilities Reference. You can use this option to send the output to a file. | 57173 |
Neutrino supports two new filesystem utilities: chattr for changing filesystem attributes, and fsysinfo for displaying filesystem statistics. | 57169 |
We've updated the sections on limits for the CD-ROM and DOS filesystems in the Neutrino User's Guide. | 56945 |
The System Architecture guide and the Neutrino Programmer's Guide now describe the automatic unmasking and masking of interrupts as handlers are attached and detached. | 56704 |
The resmgr_handle_tune() and resmgr_iofuncs() functions are declared in <sys/resmgr.h>; we've corrected the documentation. | 56558 |
We've corrected an example of using message queues with Photon so that it correctly uses mq_notify(). (Ticket ID 82904) | 56130 |
The Utilities Reference now includes an entry for devn-micrel8841.so. | 56090 |
The example in the documentation for socketpair() now points out that if you write to fd[0], you read from fd[1], and vice versa. | 55765 |
The table of UNIX commands and their Neutrino equivalents in the Neutrino User's Guide now includes the Linux dmesg command and its equivalent, slogger. | 55503 |
It does matter whether or not the name of a typed memory object starts with a slash. We've corrected the documentation for posix_typed_mem_open(). | 55385 |
The documentation for chkfsys no longer says that the utility prevents itself from operating when files are open for writing on the drive. | 55247 |
The handler function that you attach using ado_attach_interrupt() runs in user space, not in the kernel space. | 54999 |
We've corrected the list of where dlopen() looks for shared objects. | 54951 |
We've added more details to the documentation for pidin about the information that the fds argument gives. | 54781 |
The len argument to PgDrawTextArea() specifies the number of bytes required to store the string. | 54218 |
We've added entries for devh-egalax.so and devh-touchintl.so to the Utilities Reference. | 53593 |
Resource managers use the _IO_FLAG_* bits internally to indicate permissions; we've updated the documentation. | 53463 |
The Message Passing chapter of Getting Started with QNX Neutrino no longer says that priority inheritance happens only one level deep. | 53452 |
We've corrected the description of the SPAWN_CHECK_SCRIPT flag in the inheritance structure in the documentation for spawn(). | 53327 |
The Utilities Reference now includes an entry for devn-rtl8169.so. | 52783 |
We've corrected the example in the documentation for pthread_cond_timedwait() so that it will work for timeouts of less than one second. | 52174 |
The System Architecture guide, the Neutrino User's Guide, and the Utilities Reference now describe the Power-Safe filesystem, fs-qnx6.so. | 52024 |
We've corrected the list of options in the entry for calib in the Utilities Reference. | 51964 |
The accept() function gives an error of EINVAL if you called it on a socket that you hadn't called listen() on. | 51915 |
The mem_offset() function gives an error of EOVERFLOW (not E2BIG) if the address is too large for the 32-bit off_t. | 51779 |
The ntpd daemon adjusts the operating system's time, but doesn't set the hardware clock; you can use rtc to do this. | 51161 |
The timeout value starts timing out when you call TimerTimeout(), not when the blocking state is entered. It might be possible to get preempted after calling TimerTimeout() but before the blocking kernel call. We've mentioned this in the documentation. | 50428 |
We now support a read-only Universal Disk Format filesystem, via fs-udf.so. | 50246 |
We've updated the entries in the Neutrino Library Reference for _RESMGR_NPARTS() and _RESMGR_PTR() to clarify that these macros return the negative of the number of parts (to distinguish the number of parts from error codes that the resource manager's handler functions might return. A return of -1 from iofunc_notify() thus indicates success. (Ticket ID 79542) | 50026 |
The phshutdown utility has a new -u option for "unattended" shutdown. This initiates system shut down without displaying the shut down type dialog. | 48161 |
Our documentation for pppd now links to the NetBSD documentation, which includes the exit codes for the daemon. (Ticket IDs 78436, 83868) | 47882 |
Qnet doesn't support the combination of bind=ip and resolve=file. (Ticket ID 77285) | 47612 |
We've documented the retries, timeout, and verbose options for cam-cdrom.so, cam-disk.so, and cam-optical.so. | 46821 |
The Help icon for the Introduction step in the "Neutrino Inter Process Communication" cheat sheet now correctly links to the help topic about "Inter Process Communication." | 46147 |
The chapter on Qnet in the System Architecture guide now describes how you can use the tx_retries option to control how long it takes Qnet to decide that a link is down. | 46000 |
The description of disp_mode_info_t in the Graphics DDK documentation now describes the max_virtual_height and max_virtual_width fields. | 42401 |
The entry for devi-hid in the Utilities Reference no longer refers to calib; you need a calibration file only for touchscreens. | 42252 |
We've corrected the description of the abort() function in the Neutrino Library Reference. | 41794 |
We've corrected the description of the %a and %A formatting codes for the -fprintf and -printf arguments to the find command. | 41544 |
The socket() function sets errno to EAFNOSUPPORT if the specified address family isn't supported. | 41440 |
The qconfig utility doesn't list the packages in any particular order. | 40881 |
The documentation now mentions that if you use slay to change the runmask for a process, the processor for blocked threads doesn't change until the threads become unblocked (or never if the threads remain blocked). | 40730 |
The documentation for InterruptAttach() no longer implies that Neutrino supports paging. | 40135 |
We've corrected the descriptions in the Neutrino Library Reference of what iofunc_fdinfo_default(), iofunc_lseek(), and iofunc_lseek_default() return. | 39595 |
The entry for mkifs in the Utilities Reference now includes the -s option, which you can use to specify which sections of an ELF binary not to strip. | 39285 |
Asynchronous I/O (aio_*()) works across Qnet, but asynchronous messaging (asyncmsg_*()) doesn't. | 39103 |
If you ask pidin to display thread names, and a thread doesn't have a name, pidin displays the thread's ID instead. | 39027 |
You don't have to be root in order to set or get a thread name. We've corrected the documentation for pthread_getname_np() and pthread_setname_np(). | 39026 |
The entry for mount in the Utilities Reference now describes the -a option, which you can use to mount all the devices listed in /etc/fstab. | 38763 |
We've updated the section on multimedia in the System Architecture guide to describe what's in the QNX Aviage Multimedia Suite. | 38498 |
The Writing Shell Scripts chapter of the Neutrino User's Guide now has a section on the handling of the #! line of a script. | 38464 |
For portability, use pthread_sigprocmask() instead of sigprocmask() in multithreaded processes. | 38215 |
We've corrected the description of the contig_len argument in the entry for posix_mem_offset() in the Neutrino Library Reference. | 38121 |
The documentation for ham_action_control() now says that when an action item is enabled (the default), it's executed when the condition associated with it is triggered. | 29791 |
The entry for SchedCtl() and SchedCtl_r() in the Neutrino Library Reference now mentions that the SCHED_APS_JOIN_PARTITION command indicates an error of EINVAL if the partition with the given ID doesn't exist. | 29298 |
The depth member of the AOAudioFormat_t structure is in bytes, not bits. | 28572 |
The entry for devc-sersci in the Utilities Reference now lists the FIFO and RTS trigger values for the SH7760, 7770, and 7780. | 27945 |
The documentation for flashctl now describes the filesystem information that it displays if you specify the -i option. | 27875 |
The documentation for phrelay now mentions the /etc/system/config/noditto file. If this files exists, then users aren't allowed to ditto existing Photon sessions. | 27146 |
We've updated the usage message and documentation for tracelogger to reflect the current options. (Ticket ID 73381) | 26514 |
If an Ethernet packet is shorter than ETHERMIN bytes, padding can be added to the packet to reach the required minimum length. In the interests of performance, the driver software doesn't automatically pad the packets, but leaves it to the hardware to do so if supported. If hardware pads the packets, the contents of the padding depend on the hardware implementation. We've mentioned this in the Core Networking User's Guide. (Ticket ID 66506) | 25338 |
The entry for _amblksize in the Neutrino Library Reference now describes how and when you can change the value of this variable. | 25273 |
The entry for tinit in the Utilities Reference now describes how the utility parses its configuration file. | 24931 |
If name_attach() creates a channel, the channel will have the _NTO_CHF_DISCONNECT, _NTO_CHF_COID_DISCONNECT, and _NTO_CHF_UNBLOCK flags set. | 24908 |
There are now entries for ham and hamctrl in the Utilities Reference. | 24739 |
The df utility rounds its figures into 512- or 1024-byte blocks (depending on the options), and it always rounds down. If the filesystem doesn't use a block size that's a multiple of 512 bytes, some rounding errors will occur. We've noted this in the entry for df in the Utilities Reference. | 23715 |
PtWebClient now supports three new Pt_ARG_WEB_OPTION options to control how Javascript displays dialogs: "fDisableJavascriptAlert", "fDisableJavascriptConfirm" and "fDisableJavascriptPrompt". These options are supported in Netfront only. | 23297 |
We've updated some examples in Building Embedded Systems to use fs-nfs3 instead of fs-nfs2. | 22936 |
We've updated the list of supported adapters in the entry for devb-ncr8 in the Utilities Reference. | 22482 |
We've added some information about enabling and disabling hardware checksumming to the entries for devn* in the Utilities Reference. | 22051 |
If a name server isn't responding, there's a timeout of 1.5 minutes per name server. You can't change this timeout, but many TCP/IP utilities have a -n option that you can use to prevent name lookups. (Ref# 21660; Ticket ID 66749) | 21660 |
There's now an entry for phrelaycfg in the Utilities Reference. | 20709 |
We've made some minor corrections to the entry for slogger in the Utilities Reference, including the description of /dev/console, what happens when multiple applications open /dev/slog for reading, and the example of alternating between files. | 18978 |
We've corrected the description of _amblksiz in the documentation for malloc(). | 18003 |
The entry for phuser in the Utilities Reference now explains how to choose an icon to represent a user in the login screen. | 17889 |
The thread that receives a sigevent of type SIGEV_SIGNAL_THREAD depends on the functions associated with the sigevent. The documentation now specifies which thread gets the sigevent. | 17720 |
The bootfile in a mkifs buildfile typically sets the _CS_PATH configuration string, and might set _CS_LIBPATH. The documentation now states that you can set environment variables, such as PATH and LD_LIBRARY_PATH, in a script file. | 16063 |
We recommend that you use dinit to initialize the filesystem, and dloader to make it bootable. The dinit bootloader options are for backwards compatibility reasons, but aren't generally used anymore. | 15828 |
The description of the rsrc_request_t structure in the documentation for rsrcdbmgr_attach() now includes the RSRCDBMGR_FLAG_NAME and RSRCDBMGR_FLAG_LIST flags, and the name member. | 14438 |
We've removed the entries for the board-specific devf-* drivers from the Utilities Reference. All the flash filesystem drivers use the same options as devf-generic. | 12749 |
The PtBarGraph widget is now documented. | 10082 |