QNX Technical Articles
QNX® Momentics® Development Suite 6.3.0 Service Pack 2 Professional and Standard Editions Release Notes
Date of this edition: November 17, 2014
![]() |
Changes to these notes since October 4, 2005 are highlighted below
with this icon:
![]() |
Target OS: QNX® Neutrino® 6.3.0 or 6.3.0 SP1
Host OS: Microsoft Windows XP SP1 or SP2, 2000 SP4, or NT SP6a; Sun Solaris 7, 8, or 9; QNX® Neutrino® 6.3.0 or 6.3.0 SP1; Linux Red Hat 8, 9, or Enterprise WS 3 or 4
![]() |
|
![]() |
Make sure that Plug and Play OS is disabled in the BIOS before you run QNX Neutrino self-hosted. |
Contents...
- What's new in QNX Momentics 6.3.0 SP2?
Experimental items
- Known issues
- Deprecation of legacy multimedia components
- Getting started with the documentation
- Technical support
- List of fixes
![]() |
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. |
What's new in QNX Momentics 6.3.0 SP2?
Here are the main new features in Service Pack 2:
- Board Support Packages
- Compiler and tools
- Core OS
- Filesystems
- IDE (Professional Edition only)
- Networking
- Photon
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.
What's new: Board Support Packages
QNX Neutrino now supports SH7770 and SH7780 CPUs from Renesas. We now provide Board support Packages (BSPs) for the Renesas Lanbic and EDOSK 7780. There's also support for running the SH4A in 32-bit physical mode to let you use the 512 MB PCI window.
![]() |
You need to relink any SH4 binaries that you linked with QNX Neutrino 6.2.1 or earlier if you want to run them on SH4A targets. For more information, see “Known issues: BSPs, DDKs, and TDKs,” below. |
What's new: Compiler and tools
- bison
- On self-hosted Neutrino systems, there's now a symbolic link from /usr/share/bison to /usr/qnx630/host/qnx6/x86/usr/share/bison (Ref# 18563)
- gcc
- SP2 removes gcc 3.3.1 from your system and installs gcc 3.3.5.
- qcc
- qcc now passes all -m options to the compiler stage. (Ref# 21910)
We're no longer planning to deprecate the -M option. In 6.4, qcc will continue to use -M for generating a mapfile. (Ref# 26743)
What's new: Core OS
- 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. SP2 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.
- malloc() optimizations
- The standard C library malloc() has been reworked to improve performance for small allocations.
- Debug malloc
- New features include enhanced leak detection and multi-level stack traces.
- Neutrino Library Reference
- The classifications for all functions now reflect the POSIX 1003.1 standard, 2004 edition. (Ref# 12184)
- A new appendix lists the classification and safety information for all functions. (Ref# 15113)
- esh, uesh, fesh
- The embedded shells have two new builtin commands: emount and waitfor. (Ref# 22074, 23627)
- procnto-smp
- The SMP kernel now boots properly on Intel Pentium 4 hyperthreaded machines. (Ref# 25086)
What's new: Filesystems
- fs-cd.so
- This module now supports ISO-9660 Interchange Level 3 (multiple file sections). (Ref# 22087)
- fs-nfs3
- This manager now works correctly when you're using asynchronous writes and the server is using root-squashing (i.e. it maps root to anonymous or nobody). (Ref# 25113)
What's new: IDE (Professional Edition only)
- Eclipse 3.0
- The IDE is now based on Eclipse 3.0 and includes these new features:
- new look and feel, including new title bars and tabs, buttons for minimizing views, better drag-and-drop feedback, and detached views
- more responsive UI, including the ability to run jobs in the background
- support for single and multiple editor tabs, as well as editor pinning for editors that shouldn't be closed, and new menu options, keyboard shortcuts and key bindings
- background workspace auto-refresh — changes made in the local filesystem can now be automatically refreshed in the workspace (currently disabled by default)
- regular expressions in the text editors' Find/Replace dialog
- new editor functions: move lines up or down, copy lines, insert a new line above or below the current line, and convert text to lowercase or uppercase
- launch shortcuts in the context menu of all applicable views
- the ability to invoke an Ant build from the Run context menu
The first time that you open a perspective in the SP2 IDE that you previously opened in the 6.3.0 or SP1 IDE, you'll get an ominous-sounding, but benign, message: This is because some perspectives now include different views, or the views' names have changed. You can ignore the message, but we recommend that you reset the perspective by choosing
. For example, if you don't reset the C/C++ perspective, it won't include the new Problems view, which displays errors and warnings associated with your projects.The new C Development Tools include:
- improvements to the New C++ Class wizard
- new C/C++ wizards that make it easier to create source and header files, source folders, and C & C++ projects
- filtering and grouping in the Outline view
- code folding — lets you hide and display functions, methods, classes, structures, and macros
- new preferences and code-folding in the Makefile editor
- a Type Hierarchy view that lets you easily visualize a program's structure and class usage.
If you import an old QNX C/C++ project into the SP2 version of the IDE, you should enable Clean and specify the clean target in the Make Builder tab of the project properties. The Clean entry in the Project menu uses this setting, which is enabled by default for new projects. Debugging support and application launching in the CDT has been improved:
- thread-specific breakpoints
- breakpoint filtering
- support for variables in the Environment, Argument, and Working Directory tabs
- mixed source/assembly in the Disassembly view
- global variables can now be added to the Variables view
- the Debug console is now in the generic Console view
- automatic refresh options for shared library and register information
C/C++ project configuration and building have been improved:
- automatic project settings discovery
- C++ Include Paths and Symbols
- C/C++ Project Paths project properties to help you determine which files and directories you should put source, output, or library into
- C/C++ file types — define the types of specific files, especially C++ headers without extensions
- C/C++ working sets
It's now easier to edit and navigate through your C/C++ source files:
- C/C++ content assist — completions for classes and structure members, local and global variables, functions, preprocessor definitiions, and preprocessor commands
- Rename refactoring
- Open type — open up the declaration of C/C++ classes, structures, unions, type definitions, enumerations and namespaces
- C/C++ Browsing perspective — navigate the class and structure members of a particular project
- context-sensitive searches from the Outline view, as well as resource-selection restricted searches in the C/C++ Search Dialog
- hyperlink navigation
- index error markers
These exclusive QNX Momentics tools have also been updated and improved:
- Memory Analysis
- System Profiler
- Code Coverage
- System Information
For more information, see the IDE User's Guide and the IDE's Welcome page.
- C/C++ Development perspective
- You can now use Ctrl-Space in the C/C++ Editor to complete the names of members of a structure. (Ref# 23059)
- You can now use the Outline view to examine header files that are included in another header file. (Ref# 22180)
- Debugger
- The Details pane in the Variables view now has an Assign Value (Ctrl+S) action. (Ref# 16758)
- CVS
- In earlier versions of Eclipse, if you used the CVS Checkout as... command and specified an existing directory, the contents of that directory were deleted and replaced with the checked-out files — without prompting. In Eclipse 3, you're now prompted to confirm the action if the destination already exists. For more information, see bug 25783 at www.eclipse.org.
Other changes include:
On Linux hosts, it's no longer possible to start multiple instances of the IDE on the same workspace. (Ref# 19384)
What's new: Networking
- slinger
- Slinger used to allow a remote user to access files outside of its root
directory (as identified by the HTTPD_ROOT_DIR environment
variable) by including ../ in the URI of the request sent to
slinger (e.g. http://hostname/././../../etc/passwd).
Slinger tried to keep track of how far into the directory tree it went, but this wasn't reliable and could be defeated by adding ./ before the ../ in the path. Slinger doesn't provide support to write to the filesystem, and accesses files as user ID -2. It now removes any ../ strings from the URI before processing. (Ref# 21825)
- A large HTTP GET request-URI (greater than the value of PATH_MAX) formerly could overflow Slinger's internal buffer and cause a fault. This has been fixed. (Ref# 21965)
- Slinger used to allow a remote user to access files outside of its root
directory (as identified by the HTTPD_ROOT_DIR environment
variable) by including ../ in the URI of the request sent to
slinger (e.g. http://hostname/././../../etc/passwd).
- telnetd
- During the initialization of the telnet link, if the client sent a large number of parameters to negotiate, telnetd used to overrun its reply buffer with the responses to all of the request's parameters. The telnetd daemon now flushes the buffer if it becomes full. (Ref# 21965)
- devn-bcm43xx.so
- This is a new driver for the Broadcom-based 802.11b/g wireless Ethernet
controller.
It isn't yet included in the Utilities Reference, so
here's a quick description of it:
io-net -d bcm43xx [option[,option ...]] ... &
Use commas (,) to separate the options (not spaces). - ssid=name
- 802.11 network name to use (ssid). Scans in bss mode.
- channel=num
- 802.11 channel to use. Scans in normal mode.
- mode=mode
- 802.11 network mode: bss (access point), ibss (802.11 adhoc) or adhoc (802.11 adhoc). Default is bss (access point).
- station=name
- Station name for this machine. Defaults to CS_HOSTNAME.
- authtype=type
- Authentication scheme to use: open or sharedkey. Default: open.
- default_key=[1-4]
- Which of the keys given by key[1-4] to use for the Wired Equivalent Privacy (WEP) algorithm, which is part of the 802.11 standard.
- key[1-4]=KEY
- Set up one of the four default WEP keys. Where KEY is a hex string of 10 (64/40bit WEP) or 26 (128bit WEP) characters. For example, key1=0x0102030405.
- ioport=port
- I/O port of the interface. Default: autodetect.
- irq=num
- IRQ of the interface. Default: autodetect.
- mac=XXXXXXXXXXXX
- MAC address of controller. The default is automatically detected on supported hardware.
- verbose
verbose=num - Be verbose. Specify num for more verbosity (num can be 1-4; the higher the number, the more detailed the output). The output goes to slogger; invoke sloginfo to view it.
What's new: Photon
- helpviewer
- The search index shipped with SP1 wasn't complete; the index with SP2 has been corrected. (Ref# 23220, 23221)
- mkfontdir
- The documentation for mkfontdir now explains how to use it on Linux or Solaris hosts. (Ref# 22155)
Experimental items
![]() |
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 Momentics 6.3.0 are:
- asynchronous messaging
Known issues
The 6.3.0 SP2 release contains known issues in these areas:
- Audio
- Block-oriented drivers
- Booting
- BSPs, DDKs, and TDKs
- Compiler and tools
- Core OS
- Documentation
- Filesystems
- Graphics drivers
- IDE (Professional Edition only)
- I/O devices
- Licensing
- Multimedia
- Networking
- Photon
- Solaris-specific
- USB
- Windows-specific
![]() |
We're actively investigating all known issues. |
Known issues: Audio
- The graphics drivers run at a higher priority than applications, but they
shouldn't run at a higher priority than the audio, or else breaks
in the audio occur.
(Ref# 4026)
Workaround: Use the on command to adjust the priorities of the audio and graphics drivers.
Known issues: Block-oriented drivers
- devb-*
- High-priority threads can get starved off by lower ones via devb-* because the filesystem uses sleepon_*() functions, which don't inherit priorities. (Ref# 2109)
- devb-adpu320
- Reading DVD-RAM causes devb-adpu320 to become blocked on a CONDVAR. (Ref# 19772)
- devb-doc, devb-doc3, dformat, dformat3
- The Disk On Chip drivers were provided by the vendor. If you run use -i on them, the state is given as Experimental. (Ref# 23101)
- devb-aha8
- You can't restart this driver on IBM PPC405 boards. (Ref# 16018)
- devb-ncr8
- This driver supports the NCR53c810, NCR53c815, NCR53c820, NCR53c825, NCR53c860, NCR53c875, NCR53c885, NCR53c895, and NCR53c896 PCI SCSI adapters. The list in the documentation is incomplete. (Ref# 22482)
- devb-umass
- Automounting works with USB only the first time a device is inserted; devb-umass crashes with a SIGSEGV when a USB device is inserted after the driver has been started with PNP and automount enabled. (Ref# 18901)
- The documentation and usage message say to use the devnn option to specify the USB address of the device. The correct name of the option is devno. (Ref# 24347)
Known issues: Booting
- The combination of F1 and F4 for
diskboot (Safe Mode, Don't mount filesystems) doesn't work.
(Ref# 21876)
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.
- The graphics enumerator on x86 systems doesn't detect the
Fujitsu Coral-PA reference card.
(Ref# 25057)
Workaround: Edit your /etc/system/enum/graphics enumerator file, search for Coral-P, and add the following line:
device(pci, ven=10cf, dev=201e) # Fujitsu Coral-PA
The Coral-PA card will be enumerated when you reboot the system.
The Coral cards don't support text mode, so on x86 systems, you need two video cards: one to use in text mode, and the Coral card.
Known issues: BSPs, DDKs, and TDKs
- Don't use a BSP with SP1 or SP2 unless the BSP's release notes state that you should. Please contact us for more information.
- On Neutrino hosts, running the default uninstall script uninstalls both the binary and source BSP packages. (Ref# 18894)
- SH4 binaries linked with QNX Neutrino 6.2.1 or earlier
generate an “illegal instruction” error on exiting when you
run them on SH4A targets.
Renesas changed the nop opcode between SH4 and SH4A, and
some of our process-initialization files (inserted at link time)
used the old form.
This was fixed in QNX Neutrino 6.3.0.
(Ref# 24701)
Workaround: Relink any SH4 binaries that you linked with QNX Neutrino 6.2.1 or earlier.
- When you install a BSP or TDK on a self-hosted system, some binaries overwrite system binaries; if you install more than one BSP or TDK, it might overwrite binaries installed by another BSP or TDK. For more information, see the release notes for the BSPs and TDKs. (Ref# 25958)
Known issues: Compiler and tools
- gcc
-
- If you're using gcc 3.3.5 with the deprecated GNU libstdc++ library, cout/cin doesn't work on SH targets. Use the Dinkum C++ library instead.
- MIPS C++ support with gcc 3.3.5 works only with the Dinkumware NO_EXCEPTION libraries. Anything else will generate a SIGILL error.
- On MIPS, code that uses exceptions in shared libraries generates a SIGILL or other signal. Exceptions work as expected in static libraries and executables. (Ref# 23355)
- There's an alignment issue with gcc 2.95.3, where an
__attribute__((__aligned__(N))) applied to a
typedef also applies that alignment to the base
type.
(Ref# 18662)
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)));
- Nested functions (i.e. one function declared inside another) aren't standard C or C++, and they can cause problems on SH and PPC platforms. We recommend that you not use GNU extensions to ANSI C; for more information, see “Extensions to the C Language Family” in the gcc documentation at www.gnu.org.
- With gcc 2.95.x and 3.x,
C++ shared objects can optionally use
__cxa_atexit(), which allows their destructors
(normally registered with atexit())
to be called at dlclose() time. This feature
isn't yet supported; as a result, you can't use dlopen()
and dlclose() on C++ shared objects.
(Ref# 19702)
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); }
- On most platforms, the gcc 3.3.5 options
-fpic and -fPIC are synonymous, but on PPC they're
different and incompatible.
We chose -fpic over -fPIC for performance reasons,
and our PPC OS is built that way.
(Ref# 21947)
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.
- When you're compiling with gcc 3.3.5 for MIPS, you might
get this error:
relocation truncated to fit: R_MIPS_GPREL16
(Ref# 22822)
Workaround: Pass the -Wac,-G4 option to qcc.
- gcc 2.95.3 ignores #pragma pack() directives
for global structures on the ARM platform.
For example, the structure in this code is still padded to 8 bytes
instead of the expected 5:
#pragma pack(1) struct five { unsigned char a; unsigned b; }; struct five five;
(Ref# 5151)
Workaround: This problem doesn't affect code generated with gcc 3.3.5.
- Both gcc 2.95.3 and 3.3.5 report parsing errors
for seemingly simple code.
(Ref# 20409)
Workaround: See “Parse errors for simple code” in gcc.gnu.org/bugs.html#known.
- If you use the -Os option with gcc 3.3.5 to optimize for size, you might get some compile errors. This issue will be fixed in gcc 3.4. (Ref# 19955, 21347).
- gdb
-
- Watchpoints don't work on the Freescale 8540ADS and Lite5200 platforms. (Ref# 21293)
- Black-box regression tests for watchpoints fail for ARM targets. It appears that the watchpoint isn't correctly set. (Ref# 25599)
- If you have two breakpoints exactly one instruction apart, the
second breakpoint won't stop the debugger.
(Ref# 20833)
Workaround: Disable breakpoints in code that you're single-stepping through.
- gdb may display a “Compiled with unknown debugging format” warning when debugging binaries compiled with gcc 3.3.5. This doesn't seem to affect the debugger in any way. (Ref# 20658)
- If you run gdb over phditto,
gdb hangs, because
the Photon server spawned by phrelay inherits
phrelay's set of ignored signals including
SIGUSR1, which gdb relies on.
(Ref# 24817)
Workaround: Launch pterm windows using pwm's Desktop Menu (press Alt-Enter or right-click on the desktop background) instead of using the Terminal button on the shelf. Only pterm windows started by shelf inherit the ignored SIGUSR1.
Another option is to write a wrapper around gdb to reset SIGUSR1.
- On SH4 targets, gdb sometimes displays
“finish meaningless on outermost frame” when trying to
step out of a DLL if stop-on-solib-events is on.
(Ref# 21502)
Workaround: Disable stop-on-solib-events, or download the newer version of gdb from our website; log into your myQNX account, then go to
in the Download Center. - 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 may run ready, consuming 100% of CPU.
(Ref# 25174)
Workaround: There is no workaround (other than not following this sequence of events). If gdb does run ready, you must terminate it from the Windows Task Manager. This problem will be fixed in a future version of gdb; you can get an experimental version from the Download Center on our website; look under
.
- ld
-
- Between the 2.10.1 version of the GNU linker
in QNX Momentics 6.2.1 and the 2.12.1 version in QNX Momentics 6.3.0, a
bug was fixed in the handling of relocation addends for SH
targets. As a result of this fix, SH startup binaries
(e.g. startup-systemh) that were created prior to
QNX Momentics 6.3.0 won't work correctly if included in a boot image
generated in QNX Momentics 6.3.0.
Workaround: Rebuild the startup binary using QNX Momentics 6.3.0. The resulting startup will work with both 6.2.1 and 6.3.0.
- Version 2.12.1 of ld produces bad
R_386_NONE relocations if you're using gcc 2.95.3
and C++ to build shared objects.
(Ref# 20433)
Workaround: SP2 also includes version 2.10.1, and the qcc configuration files have been set up to use the older linker only if you're using gcc 2.95.3 and C++ to build shared objects.
- Between the 2.10.1 version of the GNU linker
in QNX Momentics 6.2.1 and the 2.12.1 version in QNX Momentics 6.3.0, a
bug was fixed in the handling of relocation addends for SH
targets. As a result of this fix, SH startup binaries
(e.g. startup-systemh) that were created prior to
QNX Momentics 6.3.0 won't work correctly if included in a boot image
generated in QNX Momentics 6.3.0.
- make
- The Windows version of make doesn't work with UNC paths,
such as //some_machine/dir.
(Ref# 24202)
Workaround: Use drive-letter mountpoints instead.
Our recursive makefiles use the value of the NAME environment variable (if set) to name the resulting binary. We realized (too late) that this was too generic a variable to use for this purpose; if you have a NAME environment variable set on your system for some other purpose (e.g. your name or email address), its value will be used as the name of your binaries. We apologize for this mix-up. (Ref# 29843)
Workaround: Unset the NAME environment variable before you build any executables.
- The Windows version of make doesn't work with UNC paths,
such as //some_machine/dir.
(Ref# 24202)
- qcc
- In order to use gcc 3.3.5's support for the PPC Altivec
extensions, add this option:
-I $QNX_HOST/usr/lib/gcc-lib/powerpc-unknown-nto-qnx6.3.0/3.3.5/include
to the qcc command line. 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)
- We're deprecating the -M option as of QNX Momentics 6.3.0. In 6.4, qcc will use -M for generating Makefile dependencies. (Ref# 26693)
- In order to use gcc 3.3.5's support for the PPC Altivec
extensions, add this option:
- qconfig
- After you've installed SP1 on a self-hosted Neutrino system, qconfig erroneously lists 6.3.0 and 6.3.0 SP1 as separate versions. It doesn't matter which version you choose. (Ref# 23085)
- qcp
- The qcp utility works only on x86 platforms. (Ref# 9500)
- usemsg
- If you use usemsg to add versioning information or
a usage message to a binary that has had a stack size set with the
-N option to qcc, sometimes the stack-size
modification is lost.
(Ref# 25103)
Workaround: Pass the -l option to usemsg.
- Neutrino-specific
- SP1 and SP2 don't update the /usr/include directory
on self-hosted systems (although most of the files in it are symbolic
links).
(Ref# 27226)
Workaround: When you compile, use $QNX_TARGET/usr/include instead of /usr/include as the location of the system header files.
- Windows-specific
-
- The IDE and tools suffer from performance problems when installed on a Windows workstation with Novell client software. The problem also affects all Cygwin applications. (Ref# 21730)
- Because of recent changes to the Cygwin library, you can't use COM1 as the port name for serial debugging under Windows. Instead, you must use /dev/com1.
- The usemsg.exe utility might not be able to find the
required files.
(Ref# 21881)
Workaround: Make sure the QNX Momentics Cygwin is in your PATH before the “real” Cygwin, or delete the Cygwin make.
Known issues: Core OS
Kernel
- procnto
Specifying the -as option to procnto on SH platforms is the same as specifying -ad, not -ae as stated in the Utilities Reference. (Ref# 22858)
- Physical memory fragmentation can occur when a lot of
threads are created and remain alive for a period of time before
most of them are destroyed.
This fragmentation might cause problem for device drivers that need
physical, contiguous memory (passing the MAP_PHYS flag to
mmap()) for DMA and other device-related operations.
This problem doesn't affect normal memory allocation, such as that using malloc(). When physical, contiguous allocations fail, malloc() and other normal memory-allocation operations still work. Also, this problem describes a situation when it isn't possible to allocate 4 MB physical, contiguous memory in a system that has 64 MB RAM. It may still be possible to allocate small chunks of physical, contiguous memory. As most device drivers need only small chunks of physical, contiguous memory (e.g. 32 KB), this problem may not be a concern for them either.
When creating a thread, the OS kernel uses _smalloc() to allocate memory for various internal data structures called objects. When the thread is destroyed, the kernel releases the memory to a pool of free objects for reuse the next time an object is needed. When a free-object pool reaches a certain size, the OS releases objects directly back into a kernel memory pool that only the kernel uses. The kernel does not return the memory to the free pool of general memory that all the processes in the system use. Physical memory can get fragmented when kernel holds on pages of memory here and there; eventually large (4 MB and greater) physical, contiguous allocations could start to fail. (Ref# 16405)
Workaround: Reserve enough physical contiguous memory before hand to make sure it's always available when needed.
- The 74xx series PPCs with a 60x bus (not MBX) don't
support 16-byte bus transactions. This limitation can cause
unexpected alignment exceptions when using Altivec
instructions to/from uncached memory regions. Symptomatic of
this issue, passing messages to or from uncached memory regions
can result in a kernel crash, due to the 60x bus limitation.
(Ref# 14878)
Workarounds:
- Don't pass messages to or from uncached memory regions.
- Disable the PPC_CPU_ALTIVEC feature flag in startup-* code to avoid using Altivec instructions in a message pass. (This also means that the OS won't save and restore the Altivec register set on a context switch.)
- On Broadcom MIPS BCM1250 and BCM1125 chips, the startup program doesn't add cache callouts for the onboard L2 cache. This causes msync() operations that attempt to flush the cache not to force the data all the way to main memory. This isn't normally a problem, because the L2 cache uses a bus-snooping protocol and maintains consistency with the main memory anyway. You might have problems if you have the same region of memory mapped both with and without the PROT_NOCACHE attribute. (Ref# 21855)
- Programs that you execute in place (XIP) in an image
filesystem (IFS) on PPC targets might randomly crash in rare cases.
PPC targets have separate caches for data and instructions. If the IFS is copied (or decompressed) when the data cache is enabled, the startup needs to flush the data cache. The kernel maps in the code or data segment directly from IFS for XIP; if the cache isn't flushed, the instruction cache may be loaded incorrectly, because it's loaded from the underlying memory directly, which may be different from the contents in the data cache.
As the first-level data cache size is relatively small, the chance of running into this problem is low. We haven't seen any such crash in our kernel regression tests, and we aren't aware of any problem report from customers or internal sources which may be related to this problem. (Ref# 24783)
Workaround: If you aren't using a mini-driver, you can add the following code segment to the startup program startup/lib/ppc/cpu_startnext.c to flush the data cache for IFS areas:
void cpu_startnext(uintptr_t eip, unsigned cpu) { unsigned start, size, vaddr, dcache_linesize; /* First, flush the cache for ifs so that kernel can load executables from it without problems. */ dcache_linesize = 1 << ppcv->cache_lsize; start = shdr->image_paddr + shdr->startup_size; vaddr = start & ~(dcache_linesize - 1); size = shdr->imagefs_size + (start - vaddr); for( ;; ) { icache_flush(vaddr); if(size <= dcache_linesize) break; vaddr += dcache_linesize; size -= dcache_linesize; }
If you're using a mini-driver, please contact us for a fix.
- When you're debugging an application on a system that's using floating
point emulation (ie. you passed -fe to procnto),
attempts to step over floating point instructions cause the system to hang.
(Ref# 26049)
Workaround: Don't use floating point emulation, or don't step over floating point instructions (use a run-to-breakpoint instead).
- procnto-smp
- If you use pipelines or setpgid() on a termination process, procnto-smp can become deadlocked. You have to reboot your machine to recover. (Ref# 23481)
- When using floating point emulation on MIPS processors, internal filesystem sanity tests have resulted in SIGILL exceptions. This problem doesn't occur if you use a hardware floating point unit. (Ref# 25206)
- An internal test of terminal access control fails on x86 SMP. (Ref# 24948)
- A test of mutexes on an SMP x86 platform case may cause a reboot. The test case in question produces a high degree of resource contention in order to test the reliability of the mutual-exclusion mechanisms within the OS. It does this by creating several resources with multiple threads per resource, each contending for that resource. On a four-way SMP x86 system, this test case has caused, on rare occasions, the system to unexpectedly reboot. At the time of the reported failure, there were 11 resources and 79 competing threads per resource. (Ref# 24938)
- mq
If you use the instrumented kernel to trace events while you're using mq, emitting _NTO_TRACE_COMM_SMSG communication-class events might cause your application to crash with an EFAULT when it calls mq_send(). We've encountered this problem on SHLE boards. (Ref# 38082)
Workaround: Filter out the _NTO_TRACE_COMM_SMSG events by doing one of the following:
- On the command line, filter out all COMM-class messages by passing the -F6 option to tracelogger.
- In your application, filter out COMM_SMSG messages by
calling:
TraceEvent( _NTO_TRACE_DELEVENT, _NTO_TRACE_COMM, _NTO_TRACE_COMM_SMSG);
- In the IDE, filter out COMM_SMSG messages with qconn by selecting the Class Specific mode in the System Profiler Configuration dialog, then selecting the Communication tab, selecting the Event Specific mode, and then disabling Send Message.
The side effect of filtering out these events is that the IDE's System Profiler won't be able to show you any message-passing.
Libraries and header files
- Bessel functions
- According to POSIX 1003.1, the Bessel functions —
j0(), j1(), jn(), y0(),
y1(), and yn() — should be declared in
<math.h>.
They currently aren't declared in any header, but the functions are in
libbessel.a and libbessel.so.
(Ref# 23554)
Workaround: Declare them in your program; for the correct prototypes, see the entries for these functions in the Neutrino Library Reference.
- asctime(), ctime(), gmtime(), and localtime()
These functions return a time in one of two static buffers (either a tm structure or an array of type char). Calling any of these functions can change the data in both these buffers. The documentation needs to make this clear. (Ref# 24716; Ticket ID 69174)
- calloc_ram()
- The prototype for this startup-library function is incorrect in the
Customizing Image Startup Programs chapter of
Building Embedded Systems.
(Ref# 23448)
The prototype should be:
paddr32_t calloc_ram (size_t size, unsigned align)
- chroot()
- The entry for this function in the Neutrino Library Reference incorrectly states that the effective user ID of the process must be the superuser to change the root directory. (Ref# 22761)
- ELF64_R_INFO()
The definition of this macro is incorrect in <sys/elf.h>. It uses Elf32_Xword() instead of the Elf64_Xword() macro. (Ref# 40936)
Workaround: Edit the header file and change this line:
#define ELF64_R_INFO(s,t) ((((Elf32_Xword)(s))<<32) | ((Elf64_Xword)((t)&0xffffffff)))
to this:
#define ELF64_R_INFO(s,t) ((((Elf64_Xword)(s))<<32) | ((Elf64_Xword)((t)&0xffffffff)))
- ENDIAN_*()
- If the <cpuinline.h> file for a given processor family doesn't contain an implementation for __cpu_endian_ret*(), an application reverts to an implementation of the ENDIAN_*() macros defined in <gulliver.h>, which may have unintended side effects when used on device memory. Since the value is read multiple times, multibyte register devices that have clear-on-read behavior generate errnoneous values. The implementation also isn't optimal, in that the memory location may be read several times. (Ref# 22140)
- FILE* I/O functions
- If a FILE* stream is placed into unbuffered mode (so
theoretically all writes should physically happen
immediately and any failures be detected),
the low-level functions correctly indicate the errors, but
the FILE*-oriented
output functions (fwrite(), fprintf(), etc.)
don't propagate these errors back as their return values.
For example, if there's no space left on the disk, these functions don't
indicate that an error has occurred.
(Ref# 19598)
Workaround: Use the file-descriptor I/O functions instead, or call ferror() to check for errors after each call to fwrite(), fprintf(), and so on.
- fork()
- Physically contiguous areas aren't 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 (which is supposed to be a duplicate of the parent) actually doesn't enforce 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 not set per-page, but are reset to the default when the
mmap() was first done, PROT_NONE.
(Ref# 24585)
Workaround: In the parent process, set the appropriate permissions when you create the mapping, or in the child process, use mprotect() to explicitly establish the mapping's protection attributes.
- In extremely limited cases, it's possible that a call to fork() may fail and set errno to EINTR. This issue is limited to only x86, PowerPC, and SH architectures and usually occurs only when stacks have dynamically allocated all backing store (e.g. a 512 KB stack has 512 KB memory allocated) through heavy stack usage followed by a call to fork(). (Ref# 18408)
- getgrouplist()
- The list of groups that this function creates still includes the group ID that you pass as the basegid argument. Typically, you pass the group number from the password file for this argument. (Ref# 15547)
- ham_action_fail_notify_pulse(), ham_action_fail_notify_pulse_node(), ham_action_fail_notify_signal(), ham_action_fail_notify_signal_node()
- The prototypes for these functions are incorrect in the High Availability Toolkit Developer's Guide, and the names of ham_action_fail_notify_pulse_node() and ham_action_fail_notify_signal_node() are wrong. These functions all return an int. (Ref# 26253)
- libc
- The following functions are included in libc.a, but not
in libc.so (to save space), but the documentation doesn't
mention this.
(Ref# 26866)
- alphasort()
- brk()
- cfgopen()
- crypt()
- encrypt()
- entutent()
- fcfgopen()
- forkpty()
- ftw(), ftw64()
- getgrouplist()
- getlogin(), getlogin_r()
- getpass()
- getutent()
- getutid()
- getutline()
- getwd()
- getw()
- globfree()
- glob()
- hwi_find_item()
- hwi_find_tag()
- hwi_next_item()
- hwi_next_tag()
- hwi_off2tag()
- hwi_tag2off()
- initstate()
- inputline()
- intr_capture()
- intr_lock()
- intr_release()
- intr_timed_wait()
- intr_unlock()
- intr_wait()
- login_tty()
- modem_open()
- modem_read()
- modem_script()
- modem_write()
- nftw(), nftw64()
- openpty()
- pclose()
- popen()
- pututline()
- putw()
- qnx_crypt()
- random()
- rdchk()
- re_comp()
- re_exec()
- regcomp()
- regerror()
- regexec()
- regfree()
- sbrk()
- _scalloc()
- scandir()
- sched_get_priority_adjust()
- setkey()
- setstate()
- setutent()
- _sfree()
- slogb()
- slogf()
- slogi()
- _smalloc()
- srandom()
- _srealloc()
- utmpname()
- vslogf()
- wordexp()
- wordfree()
- libmalloc
- When using libmalloc_g, if you enable MALLOC_FILLAREA and MALLOC_CKCHAIN and do too many heap over- or underruns, then your process may fault. This occurs because the underruns and overruns may corrupt the metadata associated with heap allocations. Once the heap is corrupted, the reliability of the checking is also compromised. This is described in the section on libmalloc_g in the Neutrino Programmer's Guide. (Ref# 24428, 23322)
- The libmalloc implementation of string.c may corrupt the heap on PPC targets. (Ref# 24394)
- An internal string.c test case fails for the libmalloc string implementation. The libmalloc implementation of strcmp() and strncmp() incorrectly compares the two strings based on the difference between the characters treated as signed values instead of the difference between the characters treated as unsigned values. (Ref# 24369)
- mprobe() sometimes causes the caller to fault. (Ref# 24423)
- The libmalloc macro DH_ULEN() always returns
0 because of a bug in the definitions in the header files.
If MALLOC_GUARD is undefined, DH_ULEN() is
defined to be 0 in <malloc_g/malloc-lib.h>.
If your code also includes <malloc_g/malloc.h>, the file
explcitly undefines MALLOC_GUARD before including
<malloc_g/malloc-lib.h>, resulting in the
DH_ULEN() value of 0.
(Ref# 24454)
Workaround: Include <malloc_g/malloc.h> after <malloc_g/malloc-lib.h>, as follows:
#define MALLOC_DEBUG #define MALLOC_GUARD #define MALLOC_PC #include <malloc_g/malloc-lib.h> ... other includes/code that depends on MALLOC_GUARD ... #include <malloc_g/malloc.h>
- Memory traces may incorrectly show that allocations made before main() are associated not with a particular function, but possibly with a variable name. (Ref# 19486)
- When you're using the libmalloc library, stack information for memory events is implemented only for x86, PPC, and SH4 architectures. The result is that line-number information and call traces aren't available for display when memory events occur on other architectures. This is a feature deficiency and will be corrected in a future release. The offset within the function where the event occurred is provided. (Ref# 12611)
- The libmalloc backtrace information is missing for architectures other than x86, PPC and SH4. This will be implemented in future release. (Ref# 25393)
- MsgSend(), memcpy()
- A regression test fails for PROT_NOCACHE memory. (Ref# 24709, 21505)
- name_attach()
- In QNX Momentics 6.2.1B, the name_attach() server side never
had to handle any
_IO_* messages, but could set an error code of
ENOSYS for them all.
In 6.3.0, an _IO_CONNECT message is sent when the client
does a name_open(); if the server doesn't reply with an
EOK, the client fails to connect to the server.
This message is needed in the remote case to force the
establishment of the network link, and to determine that the server is
actually there.
(Ref# 20507)
Workaround: Add code to the server to handle this message. For an example, see the online documentation for name_attach() in the Neutrino Library Reference.
- pipe()
- When there are multiple writers to a pipe and the O_NONBLOCK flag is clear, a write of less than PIPE_BUF bytes into a full pipe could cause loss of data in the particular write even though the write returns with no error. (Ref# 20220)
- When there are multiple readers and writers to a pipe, and reader/writer processes terminate repeatedly, the pipe manager may fault. (Ref# 20128)
- pthread_cond_timedwait(), pthread_cond_wait()
- The documentation for these functions should include the following
(Ref# 27051):
If a thread that's blocked on a condition variable is canceled, the thread reacquires the mutex that's guarding the condition variable, so that the thread's cleanup handlers run in the same state as the critical code before and after the call to this function. If some other thread owns the lock, the canceled thread blocks until the mutex is available.
Make sure that the thread's cleanup handlers unlock the mutex. - RPC Library (librpc.so, librpc.so.2, librpc.a, librpcS.a)
- If all available memory is exhausted, the RPC library can potentially fault if a malloc() call fails during the first execution of either a clnt_broadcast() call or a rpc_broadcast() call. Memory corruption may occur if all thread-specific data keys are exhausted before the RPC library functions have been called. (Ref# 21945)
- spawn()
- On ARM targets with low-memory conditions, attempts to create a new process may result in an EINTR error instead of ENOMEM as might be expected. This happens when, during process creation, attempts to fault in the stack result in an out-of-memory condition, at which point a SIGBUS is delivered to the process, causing it to return EINTR. If the out-of-memory condition is detected before the stack is allocated, ENOMEM is returned. (Ref# 24406)
- <stdio.h>
- A duplicate declaration of vsnprintf() causes compile warnings. (Ref# 21880)
- sysconf()
- The value that sysconf( _SC_OPEN_MAX ) returns might not be correct if you've used the -F option to procnto to change the maximum number of file descriptors per process. (Ref# 16966)
- tempnam()
- The entry for tempnam() in the
Neutrino Library Reference doesn't accurately describe
how the function determines the directory portion of the temporary
file's name.
(Ref# 27332)
Workaround: See the entry for tmpnam(); this function and and tempnam() use the same method for determining the directory.
The tempnam() function's behavior doesn't conform to POSIX. - vfork()
- Internal testing causes a kernel crash on x86, ARM, and PPC platforms. (Ref# 24952)
Utilities
- mkefs, mkefts, and mkifs
- The documentation for these utilities incorrectly says that if you specify a perms attribute of * for a file, the host file's permissions are used, and that for an inline file, the permissions are obtained from the umask of the user running mkefs. The actual permissions used are 0666. (Ref# 22371)
- mkefs
- Under Windows, if you redirect the output from mkefs to a
file, the end-of-line characters will be DOS-style (CR, LF) instead of
UNIX-style (CR).
(Ref# 19065)
Workaround: Under Windows, use this syntax:
mkefs buildfile outputfile
instead of redirecting the output:
mkefs buildfile > outputfile
- mkifs
- Executables compiled with the -Nstacksize option
and then included in images built using mkifs don't (by default)
use the stacksize parameter.
(Ref# 23573)
Workaround: Specify [+raw] in the build file for any executables that you compiled with the -Nstacksize option. For more information about the raw attribute, see the entry for mkifs in the Utilities Reference.
The documentation for mkifs doesn't describe the difference between the raw.boot and binary.boot bootfiles. (Ref# 39923)
Workaround: Here are descriptions:
- raw.boot
- Create a binary image with an instruction sequence prepended to it to jump to the offset of startup_vaddr within the startup header. The advantage is that when you download a raw image to memory using a bootloader, you can then instruct it to run right at the beginning of the image, rather than having to figure out what the actual startup_vaddr is each time you modify the startup code.
- binary.boot
- Create a simple binary image without the jump instruction. If you build a binary image, and you want to load it with U-Boot (or some other bootloader), you have to execute mkifs -vvvv buildfile imagefile, so that you can see what the actual entry address is, and then pass that entry address to the bootloader when you start the image. If you modify the startup code, the entry address may change, so you have to obtain it every time. With a raw image, you can just have the bootloader jump to the same address that you downloaded the image to.
- Executables compiled with the -Nstacksize option
and then included in images built using mkifs don't (by default)
use the stacksize parameter.
(Ref# 23573)
- QNX_HOST, QNX_TARGET
- The development environment variables
(QNX_HOST, QNX_TARGET, etc.) aren't set
if you have a login shell other than the default (sh).
This environment is picked up automatically from
/etc/profile.d/qnxsdk.sh but if SHELL is
set to ksh, then /etc/profile looks for
*.ksh in the directory instead of *.sh
and finds nothing.
(Ref# 24660)
Workaround: Copy /etc/profile.d/qnxsdk.sh to /etc/profile.d/qnxsdk.ksh.
- startup-bios
The -I option isn't described in the documentation. (Ref# 24418)
Workaround: Here's the description:
- -I irq
- Make irq the highest-priority hardware interrupt in the system. You can specify a number from 0 through 7 (the default is 3).
- tracelogger, traceprinter
- In the previous version of tracelogger, if you specified
a duration for the log (with the -s option), then the number
of iterations logged was unlimited.
With the new version, the number of iterations logged is left at the
default, 32.
(Ref# 26823)
Workaround: If you're using the -s option, add the -n0 option.
- The entries for tracelogger and traceprinter
in the Utilities Reference are out-of-date.
(Ref# 26514)
Workaround: See the System Analysis Toolkit User's Guide for the correct documentation.
- We've seen some kernel crashes when running regression tests using
tracelogger and the procnto-800-instr
instrumented kernel on Motorola RPX Lite boards.
We haven't been able to reproduce these crashes outside the regression
environment; they might be caused by memory exhaustion.
(Ref# 26507)
Workaround: Be cautious when running tracelogger on procnto-800-instr kernels under low-memory conditions.
- In the previous version of tracelogger, if you specified
a duration for the log (with the -s option), then the number
of iterations logged was unlimited.
With the new version, the number of iterations logged is left at the
default, 32.
(Ref# 26823)
- gzip
QNX Momentics 6.3.0 SP2 inadvertently contained a GPL utility (gzip) in the SDK. (Ref# 38820)
Workaround: You should remove this utility if you didn't choose to install the GPL Utilities package during the 6.3.0 installation. The files to remove are:
- $QNX_TARGET/cpu/bin/gzip
- $QNX_TARGET/cpu/bin/gunzip
- $QNX_TARGET/cpu/bin/zcat
- $QNX_TARGET/cpu/bin/uncompress
Known issues: Documentation
- The QNX Momentics Professional Edition includes two sets of documentation:
a zipped-up set in the IDE, and an unzipped set outside the IDE.
When you install SP2, you're given the choice of updating the IDE, the
tools, or both.
If you update the IDE, all the documentation in the
IDE's help system is updated.
If you update the SDK, all the documentation outside the IDE is updated.
If you update just one of the above, the documentation inside and outside
the IDE won't match.
(Ref# 25114)
Workaround: We recommend you update both the IDE and SDK.
- The telephone numbers and email addresses for Technical Support in the printed version of the Welcome to QNX Momentics guide are now obsolete. For up-to-date information, see the Technical Support section in the Services area of our website, www.qnx.com. (Ref# 26700)
Known issues: Filesystems
- fs-pkg
- This filesystem isn't designed to let you use chmod or chown on “virtual” fs-pkg directories. (Ref# 9552)
- fs-cifs
- A CIFS server may send a NETBIOS Keepalive message to a client
to demonstrate to the client that the server is still present.
This message isn't typically needed, because the TCP protocol's Keepalive
message does the same thing.
This message may be sent after three or more hours of inactivity on the
link.
The fs-cifs manager doesn't expect this message and might
become confused.
When this occurs, user operations may permanently block on
fs-cifs, and data might be corrupted.
We've seen this server behavior only with Windows 2000 and Windows XP
at this point.
(Ref# 22226)
Workaround: Restart fs-cifs.
Known issues: Graphics drivers
The following drivers are shipped only with the appropriate BSPs:
- devg-pxa250.so
- devg-q2sd.so
- devg-rpxlite.so
- devg-sa1110.so
but their entries in the Utilities Reference don't say so. (Ref# 18023)
Known issues: IDE (Professional Edition only)
- For MIPS only, the dietitian can't shrink the socket library because the library exports symbols that should be resolved in the C library. This problem (Ref# 12394) was fixed on all platforms except MIPS. (Ref# 15986)
- If you check out an existing PhAB project from CVS, the IDE starts
PhAB before checking the project out.
PhAB creates some directories, and then the CVS checkout says that the
files already exist.
After telling the IDE to replace the files with the ones from
CVS, PhAB still thinks that it's the old set of widgets (empty project).
Workaround: To check out projects from CVS, use Check out Project, and then convert the projects; don't use Check out as..., which generates invalid configurations. (Ref# 18405)
- The IDE has problems when projects are located in a
remote (network drive) directory, and the network isn't reachable.
(Ref# 11719)
Workaround: Close any project that you created on a remote drive before disconnecting the drive.
- The IDE incorrectly lets you choose the Intel C Compiler
(icc) for non-x86 targets such as PowerPC or MIPS.
(Ref# 22636)
Workaround: Build only x86 variants with ICC.
- The System Profiler in the SP2 version of the IDE requires a minimum color depth of 16 bits. Otherwise, the timelines might appear to be blank. (Ref# 23763)
- If you choose gcc 3.3.5 to compile a project, and you later
uninstall SP2, the IDE indicates it's using gcc 3.3.1, but
you won't be able to compile your project.
(Ref# 24034)
Workaround: Manually change the compiler for the project to gcc 2.95.3, compile your project, and then change the compiler back to gcc 3.3.1.
- Opening a PhAB 6.2.1 project in the 6.3 IDE or PhAB converts it
to a 6.3 project, which then won't run correctly if compiled for a 6.2.1
target.
(Ref# 24298)
Workaround: If you're using the coexistence feature in the IDE to target Neutrino 6.2.1, you should set the IDE to open the 6.2.1 version of PhAB. To do this, change the Path to Photon Appbuilder setting on the Appbuilder preferences dialog (
). - If you use a workspace from 6.3.0 with the SP2 IDE,
and do a File Search, an Error Running Operations window pops up that
says File Search (Error: Problems encountered during text search.).
(Ref# 24165)
Workaround: You can ignore this error; it doesn't affect the search results. To get rid of this error when doing file searches, create a new workspace and import your previous projects into the new workspace.
- The Application Profiler can attribute CPU time to the wrong line
if you're profiling code that has profiling and debugging information,
and that you linked against a static library that doesn't have
profiling and debugging information.
(Ref# 21024)
Workaround: Build everything with debugging information, or use -gdwarf-2 instead of -gstabs with gcc 2.95.3.
- In the Debugger, the this pointer is listed twice
in the Debug Variables view.
This is a benign error.
(Ref# 20063)
Workaround: If you compile with gcc 3.3.1, the second entry doesn't appear.
- If you set the Save automatically before build option for a project, and you change one of the project's files, the file is saved if the project is selected in the tree, but not if the file is selected. This is a bug in Eclipse 3.0; see https://bugs.eclipse.org/bugs/show_bug.cgi?id=75063. (Ref# 25866)
- If you select a number of lines in the C/C++ editor, and then press Tab, the editor corrupts the whole file. (Ref# 25864)
- Assigning a hotkey to the Rebuild Project action has no effect (the hotkey doesn't work). This is a bug in Eclipse 3.0; see https://bugs.eclipse.org/bugs/show_bug.cgi?id=99193. (Ref# 25616)
- When using Memory Analysis for ARMLE, ARMBE, MIPSLE, MIPSBE, and SHLE targets, libmalloc sometimes has difficulty tracing back to the call site of a function. As a result, the source files for function calls aren't always shown in the Memory Analysis perspective. There is no workaround at this time. (Ref# 26035, 25938, 26100)
- The Application Profiler's sampling information shows “unknown” function names for MIPSLE and MIPSBE targets. There is no workaround at this time. (Ref# 24510, 25938)
- Code coverage doesn't work well for C++ code if you use gcc
2.95.3; the output includes unusual characters and function names.
(Ref# 26592)
Workaround: Use gcc 3.3.x instead of 2.95.3.
- The IDE doesn't correctly parse compiler errors from gcc 3.3.1.
(Ref# 19221)
Workaround: Add -fmessage-length=0 to the qcc or gcc command-line options.
- Working in the System Profiler's timeline editor can cause problems with focus and mouse-tracking in the rest of the IDE. (Ref# 20538)
- The IDE's System Information perspective doesn't properly update the progress view while it's refreshing data. (Ref# 21021)
- The C++ Class Browser is currently experimental. (Ref# 369)
- The IDE User's Guide doesn't explain how to import an SP2
project into an older version of the IDE.
(Ref# 26985)
Workaround: Here's how to do it:
- Back up your existing 6.3.0 SP2 workspace.
- Delete the .cdtproject and .project files from the project you wish to import.
- Import the project into your workspace in the older version of the IDE.
- The System Profiler can take a very long time to load and parse a .kev file that was generated by a target system that's running Neutrino 6.3.0 SP1. The parsing is much faster for .kev files from an SP2 system. (Ref# 27221)
In the System Builder, if you choose Combine images and then uncheck Final Processing, the IDE still does the final processing. (Ref# 27082)
In a System Builder project, if you select an image, type a large value such as 0x8c0c0000 in the Offset field in the section, and then press Enter, the IDE restores the previous value. (Ref# 27954)
If you check a project out from CVS by using the New Project wizard, and you choose only one CPU with both debug and release versions, then when the wizard is done, the debug variant is always unchecked for SH, PPC and x86. In addition, a message pops up while the project is being checked out, saying “The file has been changed on the file system, do you want to load the changes?” but it doesn't say which file has been changed. (Ref# 25422, Eclipse ref# 102659)
If you don't have a web browser in any of the directories listed in your PATH variable, you can't display the documentation in the IDE. (Ref# 29580)
Workaround: Specify a browser for the IDE to use, by choosing
, and then choosing Help from the list on the left side of the dialog. In the right part of the dialog, select Custom Browser and fill in the path to the browser below.
Linux-hosted IDE
SP2 doesn't include the Motif plugin. $QNX_HOST/usr/qde/eclipse/libXm.so and $QNX_HOST/usr/qde/eclipse/libXm.so.2 are broken symbolic links. (Ref# 40059)
- Under Linux with GTK, if you work extensively in the IDE (e.g.
switching in and out of debugging) for a
few hours (four hours on average), you get a JVM termination with
the following at the top of the resultant
hs_err_pidxxxx.log file:
An unexpected exception has been detected in native code outside the VM.
This is because of a memory leak in Eclipse; we've submitted a problem report to eclipse.org. (Ref# 22396)
Workaround: Upgrade your system to Red Hat Enterprise; the VM and GTK on it are more stable.
- If you start the IDE on Linux Fedora Core 4 (a version of Linux that
we don't officially support), you'll see this message:
Starting QNX Development Environment /opt/qnx630/host/linux/x86/usr/qde/eclipse/eclipse: error while loading shared libraries: /opt/qnx630/host/linux/x86/usr/qde/eclipse/libXm.so.2: cannot restore segment prot after reloc: Permission denied
This message is caused by selinux (secure Linux). (Ref# 26579)
Workaround: Install an upgrade of selinux:
yum install selinux-policy-targeted
- The IDE uses Mozilla, which isn't installed by default on Enterprise WS 4, to display the documentation. You need to change this to firefox; in the IDE, choose and change the Custom Browser Command from mozilla %1 to firefox %1. (Ref# 26891)
- On Linux hosts, the IDE's System Builder doesn't properly
determine the local host ID, so the tftp server doesn't work.
(Ref# 23668)
Workaround: Use the ifconfig utility to get the host's IP address.
If your serial device is something like /dev/ttyUSB0, the Terminal 1 view of the System Builder might display the message Device Not Specifed. The dialog gives you a way to specify the speed, parity, etc., but no way to specify the serial device to use.
Workaround: Start the IDE like this:
qde -vmargs -Dos.name=Linux-all-ports
Neutrino-hosted IDE
- The New Project wizard lets you use special characters in
the project name, but make won't build such a project.
(Ref# 24441, 24531)
Workaround: Don't use spaces or the following characters in a project name:
| ! $ ( " ) & ` : ; \ ' * ? [ ] # ~ = % < > { }
- The self-hosted IDE gives the following warning:
Warning: Could not get charToByteConverterClass!
This warning is generated because we are using a non-SUN VM. This is the explanation from Aonix:
The charToByteConverterClass is an internal sun.io class that the org.apache.xml.serializer.Encodings tries to access with a Class.forName(). Of course, this won't work on any non-Sun Java VM. The exception is caught and a default converter is used instead (after printing the warning message you see).
You can ignore the warning. (Ref# 25851)
Solaris-hosted IDE
- If you're using the IDE, make sure you have the appropriate patch installed to run the Java 2 SE 1.4.2 VM under Solaris. You can download the patch from java.sun.com:
- The IDE uses Mozilla, which isn't installed by default, to display the to display the documentation and generate reports for code coverage. You need to change this to hotjava; in the IDE, choose and change the Custom Browser Command from mozilla %1 to hotjava %1.
Windows-hosted IDE
- The IDE won't launch on Windows NT hosts, because NT doesn't
include usp10.dll, the DLL for the Uniscribe Unicode
script processor.
(Ref# 24713)
Workaround: Download the Windows 98 version of usp10.dll from support.microsoft.com/kb/q249973.
- On Windows XP, if you're logged in as a system administrator the first time
you start the IDE, this user owns the configuration files, so
other users won't be able to access them.
(Ref# 24881)
Workaround: Log in as the system administrator and delete the subdirectories in the $QNX_HOST/usr/qde/eclipse/configuration directory. Then log in as a nonadministrator and start the IDE.
- 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 may run ready, consuming 100% of CPU.
(Ref# 25174)
Workaround: There is no workaround (other than not following this sequence of events). If gdb does run ready, you must terminate it from the Windows Task Manager. This problem will be fixed in a future version of gdb; you can get an experimental version from the Download Center on our website; look under
.
Known issues: I/O devices
- io-usb
- In some cases when unmounting DLLs and running the usb utility at the same time, some memory allocated by io-usb isn't freed. This is a rare situation. (Ref# 21716)
- The io-usb server crashes if you repeatedly mount and umount and plug and unplug devices attached to the port. (Ref# 21556)
Known issues: Licensing
- If a disk is full (on any host) when you execute QNX Momentics-licensed components, you might not get a meaningful message to alert you of the problem. Instead, you may be requested to type in your license key (but doing so doesn't rectify the issue). Check your disk and free up some space if necessary. We'll provide a clearer message in a future release. (Ref# 21116)
Known issues: Multimedia
- soundfile.so, soundfile_noph.so
- Loading these legacy plugins causes a SIGBUS error.
(Ref# 21707)
Workaround: Use the -ae option to procnto to enable alignment fault emulation.
Known issues: Networking
- npm-qnet.so
- Redundant GNS servers have a window where service could be lost. If connectivity is lost to a gns process in server mode while it's acting as a redundant server, and while client gns processes running on other nodes are registering services, the server may become out of sync with the other redundant servers. (Ref# 20008)
- GNS (name_attach())
- Currently, GNS isn't compatible
with the resource manager framework. (Ref# 20062)
Workaround: Your resource manager must handle the raw QNX messages until this is corrected.
- npm-qnet-l4_lite.so
- This DLL has many options to alter how Qnet functions (e.g. timeouts, retries, and idle times). You shouldn't use these options unless you're trying to overcome an issue related to your environment. Qnet is optimized to function with its default settings. (Ref# 21298)
- gns
- A gns daemon can't act as both a client and server at the same time. If a local service is registered with a GNS client, the client can forward that information to redundant or backup servers; a server can't forward the information. (Ref# 21037)
- fs-nfs2
- If a path ends in a slash, it must be a directory. When accessing a link with a trailing slash, fs-nfs2 immediately returns EINVAL, instead of resolving the link and reporting errors such as EPERM (permission denied) or ENOTDIR (not a directory) before returning EINVAL (invalid argument). This behavior was seen as an optimization to reduce network traffic, because this kind of file access will ultimately fail. Strict POSIX behavior will be added in a future release. (Ref# 20877, 20878)
- fs-nfs3
- The fs-nfs3 filesystem has a race condition where
it may become unstable if you umount your mountpoint while
there are outstanding requests in progress (e.g. a write() or
copy of a file).
A symptom of this condition is that when you
try to remount the NFS server, you get the error:
mount: Can't mount [mount point] (type nfs) mount: Possible reason: Resource busy
If this condition doesn't go away, restart fs-nfs3. (Ref# 15078)
- The fs-nfs3 manager can't accept write() buffers larger than 8 KB. (Ref# 20810)
- The documentation for fs-nfs3 doesn't list the options
you can specify for a mount command.
(Ref# 25257)
The options that you can use with mount include the following:
- tcp
- Use TCP instead of UDP. If this fails, mount uses UDP.
- udp
- Use UDP (which is the default). If this fails, mount fails.
- nocachesymlink
- Don't cache symlinks.
- ver3
- Use fs-nfs3 instead of fs-nfs2.
- soft
- Use a soft mount (i.e. break the connection if unable to reach the server).
For example, if fs-nfs3 is already running, you can mount an NFS filesystem using TCP like this:
mount -t nfs -o tcp,ver3 server:/tmp /mnt
- The fs-nfs3 filesystem has a race condition where
it may become unstable if you umount your mountpoint while
there are outstanding requests in progress (e.g. a write() or
copy of a file).
A symptom of this condition is that when you
try to remount the NFS server, you get the error:
- slinger
- When slinger is executing a CGI script and setting the environment variables to be passed to the script, the environment variable SERVER_ROOT is set to / instead of to the directory specified by HTTPD_SCRIPTALIAS. The actual current working directory of slinger is correct; it's just the environment variable that's wrong. (Ref# 20795)
- tftp
- tftp can terminate with a floating-point exception when printing statistics from a get or put command when you're using verbose mode. (Ref# 20615)
- tftp can fault if you press Enter at the “To” prompt without supplying the host parameter. (Ref# 20064)
- rpcgen
- This utility looks for the C preprocessor in the wrong place on
QNX Neutrino hosts.
(Ref# 8461)
Workaround: Create a symbolic link:
ln -s /usr/qnx630/host/qnx6/x86/usr/bin/qcc /usr/bin/qcc
- TCP/IP stack (npm-tcpip-v4.so or npm-tcpip-v6.so)
- If a socket has been completely torn down at the protocol level and the stack receives a DCMD_IP_FDINFO devctl requesting protocol-level information on that socket (e.g. the sin utility), the stack can fault. (Ref# 21549)
- If you connect() on an unlinked or nonexistent AF_LOCAL socket, errno is incorrectly set to ECONNREFUSED instead of ENOENT. (Ref# 21664)
- If a program calls bind() for an AF_LOCAL socket, and the path namespace entry is created, the TCP/IP stack will leak a small amount of memory, even if the path is unlinked. (Ref# 21639)
- If a packet is smaller than the minimum Ethernet packet size, the packet may be padded with random data, rather than zeroes. (Ref# 21460)
- The TCP/IP stack obtains a timer, which starts at time 0,
from the process manager.
If the TCP/IP stack and a TCP/IP application that tries to connect to
a remote host start executing too soon, the TCP/IP stack may
apply a time of 0 seconds to ARP cache entry structures.
If this occurs, you may end up with a permanent ARP entry (i.e. one that never times out). You can also end up with permanent, incomplete ARP entries that never time out and that the TCP/IP stack doesn't attempt to resolve. If this happens, your host won't be able to communicate with one or (possibly) more remote hosts (i.e. the ones the TCP/IP application in the OS image is trying to reach).
You can check for permanent ARP entries by running the arp -an command and examining the output. The only permanent entries listed should be for the IP addresses assigned to your host's interfaces; there shouldn't be any permanent, incomplete entries. If you find a permanent entry that isn't for the IP address of an interface on your host, and you didn't explicitly create a permanent entry, then you could be encountering this problem. (Ref# 21395)
Workaround: In the buildfile for your OS image, delay the start of the TCP/IP stack or the first TCP/IP application by at least one second, by using the sleep command (e.g. sleep 1) or some other delay mechanism.
- When the fastforward path in the TCP/IP stack is used (see the fastforward option to npm-tcpip-v4.so or npm-tcpip-v6.so), the TCP/IP stack doesn't deal with the next hop gateway properly if it isn't responding to an ARP request. The TCP/IP stack should mark the route down, and send a ICMP-unreachable packet back to the source. The stack forwards invalid packets and doesn't return an ICMP-unreachable packet. (Ref# 23864)
- If a packet is to be forwarded, and there's no route specified on the gateway, the TCP/IP stack returns ICMP_UNREACH with an ICMP_UNREACH_HOST code. It should return an ICMP_UNREACH_NET code. (Ref# 23900)
- A user TCP application that's blocked on read() may unblock and return 0 when the sin utility is run. It will appear as if the remote TCP application has closed its end of the socket, when it hasn't. A user symptom could be TCP server applications that terminate, close a TCP session for no reason, or report that the client has ended the session when it hasn't. (Ref# 21962)
- The socket() function call may set errno incorrectly if the system is out of memory for AF_LOCAL sockets. (Ref# 22917)
- The TCP/IP stack used a monotonic clock internally. Interfaces that used an absolute timeout value to specify a timeout, or to query a timeout, were converted to use a relative timeout value. Utilities that used this interface were converted to use a relative timeout value. This introduces portability and maintenance issues because the timeout values were incorrectly applied if the application wasn't modified. (Ref# 22877)
The Maintenance Patch for the Full TCP/IP Stack (Patch ID 97), which you can get from our website, addresses many of the above issues.
- devn-smc9000
- Not all IPv6 multicast protocols function properly with this driver. (Ref# 21720)
- devn-i82544.so
- If you use more than 64 Tx descriptors, the PPC version of the driver
is inoperative.
(Ref #22848)
Workaround: We've temporarily changed the PPC version of this driver to use 64 Tx descriptors by default (on other targets, the default is 128). This may result in lost packets for high-throughput transmit operations.
- There appear to be endian issues with the devn-i82544.so
driver on PPC;
the following values are reported incorrectly
(Ref# 22854):
- hardware checksumming: netstat -p event counts
- nicinfo Tx/Rx packet counts.
- If you use more than 64 Tx descriptors, the PPC version of the driver
is inoperative.
(Ref #22848)
- pppd
- When pppd creates a proxy arp entry, it does this without the permanent flag, so the entry will time out after approx 20 minutes, instead of being permanently set. (Ref# 24103)
- pppd doesn't use the /etc/ppp/options.ttyname option file. (Ref# 23743)
- fs-cifs
- If you try to change the name of a file from lowercase to uppercase in the same directory, the file is deleted if the remote filesystem doesn't distinguish lowercase and uppercase. (Ref# 23706)
- rcp
- This utility sets its user ID to root. It was reported that you can overrun the source/target file argument buffers in the utility, giving yourself root access. Under QNX Neutrino, rcp spawns the cp utility for local file-copying operations; it's the cp utility that faults. When rcp spawns cp, it does so with the credentials of the user who launched rcp, rather than root's. (Ref# 22002)
- devn-ne2000
- The documentation for devn-ne2000 now includes the did, pci, and vid options, but the usage message hasn't been updated. (Ref# 20914)
Known issues: Photon
- PT_CB_ACTIVATE and PT_CB_ARM
- These callbacks don't work with PtText and
PtNumeric.
(Ref# 21608)
Workaround: For a PtText, add this code:
int raw_text_callback( PtWidget_t *widget, void *data, PtCallbackInfo_t *cbinfo ) { PtSuperClassRawEvent( PtBasic, widget, cbinfo->event ); return Pt_CONTINUE; }
When you create a PtText widget, add this code:
PtRawCallback_t text_cb = { Ph_EV_BUT_PRESS | Ph_EV_BUT_RELEASE, raw_text_callback }; … PtSetArg( …, Pt_CB_RAW, &text_cb, Pt_LINK_INSERT ); … = PtCreateWidget( PtText, … );
You can use similar code for a PtNumeric widget.
- PdGetOffscreenContextPtr()
- This function leaks memory on MIPS hardware. (Ref# 8065)
- ptermcs
- This utility core-dumps when saving. The problem is in PxTerminalBuildCharsets(): if the “internal” charset is NULL but the “font charset” is specified, it builds a bad data structure that causes PxTerminalSaveCharsets() to crash. (Ref# 19568)
- PhAB
- The template editor currently lets you delete or rename the widget template, but doesn't provide a way to restore the default value. (Ref# 21969)
- If you're using bash as your shell in Neutrino, PhAB doesn't populate the list of targets when you try to build an application. (Ref# 22850)
- Opening a PhAB 6.2.1 project in the 6.3 IDE or PhAB converts it
to a 6.3 project, which then won't run correctly if compiled for a 6.2.1
target.
(Ref# 24298)
Workaround: If you're using the coexistence feature in the IDE to target Neutrino 6.2.1, you should set the IDE to open the 6.2.1 version of PhAB. To do this, change the Path to Photon Appbuilder setting on the Appbuilder preferences dialog (
).
- PhAB for Windows
- If you create an application, and then build it, the Make Application window has an extra unreadable character at the end of each line. (Ref# 22190)
- If you start PhAB through the IDE on a Windows XP SP2 host,
several security-alert dialogs are displayed, because the
Windows XP SP2 firewall detects the background TCP/IP communication
between the PhAB application and the Photon server.
(Ref# 22282)
Workaround: Configure Windows to unblock. Once you've done this, Windows won't display the security warnings when you restart PhAB.
- In the Using PhAB under Microsoft Windows appendix of the
Photon Programmer's Guide, the command for linking a
shared object is incorrect.
(Ref# 20982)
Workaround: In both the “Custom widget development and PhAB” and the “Photon Hook DLLs” sections, change the fourth step by replacing:
-e __cygwin_dll_entry@12
with:
-e _dll_entry@12
- $HOME/.ph/phapps
- Note that this file, which contains a list of the applications that you want Photon to launch automatically when it starts, must be executable. (Ref# 22196)
- voyager
- If you use voyager with vserver on a Malta board
or any other platform that doesn't have a Floating Point Unit,
voyager continually fails with a SIGFPE error
when it tries to load a page.
(Ref# 22404)
Workaround: Rebuild the OS image so that it uses floating-point emulation, by specifying the -fe option to procnto in the buildfile.
- io-graphics
- If you don't specify a plugin, io-graphics fails.
(Ref# 22489)
Workaround: Always specify the -pphoton option (gri-photon.so is currently the only plugin available).
- If you specify the -d and -p options for io-graphics, you must put the -d option before the -p, or else io-graphics fails. (Ref# 22670)
- io-graphics locks up on some targets (e.g. Amanda-PCI). It also makes multiple calls into the same driver functions at initialization. We plan to issue a patch to address these issues. (Ref# 24084, 25861)
- If you don't specify a plugin, io-graphics fails.
(Ref# 22489)
- Alpha on PPC
- If you use alpha drawing functions on PPC targets, and you
draw an image to a memory context and blit it to the screen, the
colors are incorrect.
(Ref# 21458)
Workaround: Don't use a memory context, or draw to one memory context, blit to another memory context, and then blit to the screen.
- phditto
- If you run gdb over phditto,
gdb hangs, because
the Photon server spawned by phrelay inherits
phrelay's set of ignored signals including
SIGUSR1, which gdb relies on.
(Ref# 24817)
Workaround: Launch pterm windows using pwm's Desktop Menu (press Alt-Enter or right-click on the desktop background) instead of using the Terminal button on the shelf. Only pterm windows started by shelf inherit the ignored SIGUSR1.
Another option is to write a wrapper around gdb to reset SIGUSR1.
- Pt_ARG_SCROLLBAR_WIDTH
Setting this resource for a PtList or for a compound widget that includes a PtList has no effect. (PR 20431)
Workaround: Attach the following callback to the Pt_REALIZED resource of the list widget:
int list_realized_cb( PtWidget_t *widget, ApInfo_t *apinfo, PtCallbackInfo_t *cbinfo ) { PtGenListWidget_t *list = (PtGenListWidget_t*)widget; unsigned short *width; // NOTE: Use the width that the user set in PhAB. PtGetResource( widget, Pt_ARG_SCROLLBAR_WIDTH, &width, 0 ); // This code sets the actual sizes of scrollbar(s). if( list->scrollbar ) PtSetResource( list->scrollbar, Pt_ARG_WIDTH, *width, 0 ); if( list->hscrollbar ) PtSetResource( list->hscrollbar, Pt_ARG_HEIGHT, *width, 0 ); // This is a workaround to make the list widget // position (anchor) the scrollbars correctly (with the new size). PtSetResource( widget, Pt_ARG_SCROLLBAR_WIDTH, *width - 1, 0 ); PtSetResource( widget, Pt_ARG_SCROLLBAR_WIDTH, *width, 0 ); return Pt_CONTINUE; }
If you're using a compound widget such as a PtCombobox, use this code:
int combo_realized_cb( PtWidget_t *widget, ApInfo_t *apinfo, PtCallbackInfo_t *cbinfo ) { PtGenListWidget_t *list; PtWidget_t *wp = widget; unsigned short *width, list_width; // NOTE: Use the width that the user set in PhAB. PtGetResource( widget, Pt_ARG_CBOX_BUTTON_WIDTH, &width, 0 ); // Find the list widget in the combo while( (wp = PtWidgetFamily( widget, wp )) ) { if( PtWidgetIsClass( wp, PtList ) ) { list = (PtGenListWidget_t*)wp; break; } } if( !wp ) return Pt_CONTINUE; list_width = *width + 2; // This code sets the actual sizes of scrollbar(s). if( list->scrollbar ) PtSetResource( list->scrollbar, Pt_ARG_WIDTH, list_width, 0 ); if( list->hscrollbar ) PtSetResource( list->hscrollbar, Pt_ARG_HEIGHT, list_width, 0 ); // This is a workaround to make the list widget // position (anchor) the scrollbars correctly (with the new size). PtSetResource( wp, Pt_ARG_SCROLLBAR_WIDTH, list_width - 1, 0 ); PtSetResource( wp, Pt_ARG_SCROLLBAR_WIDTH, list_width, 0 ); return Pt_CONTINUE; }
- helpviewer
If you aren't using ksh or sh as your login shell, the environment variables that the helpviewer uses aren't initialized. (Ref# 27250)
Workaround: Set QNX_HELP_HOME_PAGE to /usr/qnx630/target/qnx6/usr/help/product/momentics/bookset.html, and QNX_HELP_PATH to /usr/qnx630/target/qnx6/usr/help/product (assuming you installed QNX Momentics in the default location).
If you run the helpviewer as one user, and you then log in as another user and search the documention, helpviewer's indexer fails with a message of “Cannot open /var/help/usr/qnx630/target/qnx6/usr/help/product.” (Ref# 25628)
Workaround: Log in as root and type:
rm -r /var/help/usr
and then generate the index.
Solaris-specific
- qconfig
If you're using the default Solaris shell, you might have problems switching between different installed versions of QNX Momentics. When you run a command like this:
`eval qconfig -e -n"QNX Momentics 6.3.0"`
you get this error:
QNX_HOST=/opt/qnx630/host/solaris/sparc: is not an identifier
and your PATH isn't updated. (Ref# 20653)
Workaround: Use ksh instead of the default Solaris shell.
Known issues: USB
- devu-ohci.so
- If you're using the OHCI controller, and you print to a USB printer,
the printer blocks.
(Ref# 23802)
Workaround: use the UHCI controller instead of the OHCI.
Known issues: Windows-specific
- echo.exe
- On Windows, the QNX-provided echo.exe interprets the Windows \ separator as an escape character. As a result, environment variable settings won't work if you use \ as a path separator; use / instead. (Ref# 19924)
- PATH and quotation marks
- Certain programs (e.g. Norton Ghost) add directories inside double
quotation marks (e.g. ...;"c:\Program Files\Norton Ghost\";...)
to your PATH environment variable.
This causes the Cygwin spawn() function to fail, which in
turn causes cp to fail when called by ln-w.
(Ref# 20046)
Workaround: Modify your PATH environment variable and remove any quotation marks.
- MAKEFLAGS
- Microsoft Visual Studio also uses the MAKEFLAGS
environment variable, but in a much different way than QNX Neutrino does.
The result is that Microsoft Visual Studio no longer works after you've
installed QNX Momentics.
Workaround: If you want to work with Microsoft Visual Studio (MSVS) after installing QNX Momentics on the same system, do the following:
- Open a command window and run cmd.
- Type set.
- Find the value for MAKEFLAGS and save it.
- Type set MAKEFLAGS.
- Do your MSVS work.
- To work with QNX Momentics again, type:
set MAKEFLAGS=saved_makeflags_value
- Permissions
- If you don't have permission to write files in the top-level directory of the C drive, you won't be able to run certain tools, such as bindres and usemsg, which are needed for building PhAB applications. (Ref# 21849)
Deprecation of legacy multimedia components
QNX Momentics 6.2.1 introduced a new multimedia library based on an “addon” architecture, and legacy multimedia components (pre-6.2.1) were deprecated. 6.3.0 is the last release that includes these legacy components. The deprecated items are:
- /etc/config/media/mpregistry
- /usr/photon/bin/phplay
- /usr/bin/plaympegaudio_noph
- /usr/bin/playsound_noph
- /usr/bin/playAudioCd
- /usr/lib/libmedia.so.2
- /usr/photon/plugins/mpegaudioplugin
- /usr/photon/plugins/mpegsystemplugin
- /usr/photon/plugins/mpegvideoplugin
- /usr/photon/plugins/soundplugin
- /usr/photon/dll/audiocd.so
- /usr/photon/dll/extproc.so
- /usr/photon/dll/mpegaudio.so
- /usr/photon/dll/mpegsystem.so
- /usr/photon/dll/mpegvideo.so
- /usr/photon/dll/soundfile.so
- /usr/photon/bin/mpegaudio
- /usr/photon/bin/mpegsystem
- /usr/photon/bin/mpegvideo
You should make sure that any multimedia applications that you plan to migrate to the next release of QNX Momentics use the current multimedia library. For more information, see the Multimedia Developer's Guide.
![]() |
QNX Momentics ships with the runtime components of the current multimedia library. You require the Multimedia TDK to develop new multimedia components. |
Getting started with the documentation
After you've installed your development suite, you'll find an extensive set of online documentation in HTML format. Go to the help menu item (e.g. in Windows XP:
) or look under the following directory:${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.).
You'll find the installation and release notes in the following directories:
- 6.3.0
- ${QNX_TARGET}/etc/readme/
- SP2
- ${QNX_TARGET}/etc/readme/patches/6.3.0sp2/
![]() |
|
You can install and work with multiple versions of QNX Neutrino. Whether you're using the command line or the IDE, you can choose which version of the OS to build programs for. For more information, see the IDE User's Guide or the QNX Neutrino Programmer's Guide.
![]() |
Coexistence of 6.3.0 and 6.2.1 is supported only on Windows and Solaris hosts. |
Technical support
If you have any questions, comments, or problems with a QNX product, please contact Technical Support. For more information, see the How to Get Help chapter of the online version of the Welcome to QNX Momentics guide, or visit our website, www.qnx.com.
![]() |
The telephone numbers and email addresses for Technical Support in the printed version of the Welcome to QNX Momentics guide are now obsolete. (Ref# 26700) |
List of fixes
Software fixes
The problems fixed in 6.3.0 SP2 include the following:
Change | Ref # | |
---|---|---|
If devb-aha2 faults (e.g. if you don't have the right kind of board), the parent process now correctly gets a SIGCHLD signal. | 10388 | |
qconn no longer crashes when you pass it long command lines. | 11712 | |
In the IDE, the Add Include menu option now works on the word under the cursor, not just on a selected word. | 11757 | |
When you attach the IDE's Application Profiler to a running process, the 'Thread Info' pane is now updated correctly when first drawn. | 11898 | |
In the IDE's System Builder perspective, giving a view focus now correctly brings the cursor along with it. | 12065 | |
In the IDE, the Thread Information view now displays the correct process and thread information. | 12120 | |
The IDE's System Blocking Graph now shows multiple channels if they exist. | 12290 | |
In the IDE's Application Profiler, if you run a profiled application for an ARM target, and then try to double-click on a function in the call graph, you now get the source file coming up with annotated bars, as you do on other platforms. | 12422 | |
The IDE's Run to Cursor command now has a button on the toolbar, an entry in the Debug menu, and a hotkey. | 12466 | |
The IDE's Memory Analysis perspective now makes it easier to find a memory leak in a shared object. | 12658 | |
In the Neutrino-hosted IDE, the C Perspective layout now persists between sessions. | 12731 | |
64-bit signed division on SH platforms now works correctly with LONGLONG_MAXC in programs compiled with gcc 2.95.3. | 12772 | |
Using the Memory Analysis perspective no longer causes the IDE to run ready. | 12794 | |
We now ship the rb, rx, rz, sb, sx, and sz utilities that qtalk needs in ZMODEM mode. | 13050 | |
qconn no longer crashes in a high-activity, multiple-user environment. | 13459 | |
The gdb 5.2.1 nto_procfs interface now reads floating-point registers correctly. | 13744 | |
In the IDE, the System Builder's New Project wizard has a clearer user interface. | 13840 | |
Repeatedly opening a large (greater than 20 MB) log file no longer causes problems in the IDE's System Profiler. | 13952 | |
The IDE's backtrace is no longer corrupted for non-x86 targets when attached with the debugger. | 14023 | |
A useless right-click menu in the IDE's Profiler view has been deleted. | 14108 | |
You can now build multiple projects in the IDE's C/C++ Projects view. | 14202 | |
In the IDE, the C-C++ editor's Code Assist now works. | 14255 | |
The uncompress command is now a symbolic link to gzip. | 14301 | |
You can now control and disable the rate at which the IDE's System Information perspective collects data and refreshes the display. | 14336 | |
If you've disabled the “Perform build automatically on resource modification” option and you've set the “Save all modified resources prior to manual build” option, the IDE no longer does a global rebuild when you start the debugger. | 14417 | |
In the IDE's System Information perspective, the System Blocking Graph now shows the Blocked Folks, even for clients that are Send- or Reply-blocked. The information for a process's threads is now updated correctly. | 14428 | |
In the IDE's System Information perspective, the Deliver Signal option by default sends a SIGTERM signal (which terminates the process). | 14439 | |
In the Neutrino-hosted IDE's System Profiler, removing processes no longer causes j9 to run ready. | 14612 | |
The IDE's Signal Information view no longer flickers excessively when you've selected more than one process. | 14635 | |
In the IDE, the checking for duplicate files that happens when you add files to System Builder projects has improved; it now warns you about files or directories with the same name only if they're in the same directory. | 14661 | |
In the IDE's System Builder, if you create an image with a blank in its name, the IDE no longer deletes the build script. | 14971 | |
For QNX C/C++ projects in the IDE, you can now specify an absolute path for the Installation directory (in the project Properties dialog on the | tab).15004 | |
Changes that you make to a file in the IDE's Application Profiler Editor are now correctly shown in the C/C++ Editor. | 15052 | |
In the IDE, if you create a post-mortem debug launch configuration, and then relaunch it, you're asked to select the core file again, but the IDE remembers the directory the file was in. If you cancel the selection, you're no longer switched to the Debug perspective. | 15300 | |
Displaying a large .kev file in the System Profiler is faster in the Neutrino-hosted IDE. | 15315 | |
Removing a process from the System Profiler no longer causes problems in the Neutrino-hosted IDE. | 15316 | |
In the IDE's System Information perspective, the System Resources view no longer uses a lot of CPU even when closed. | 15489 | |
In the IDE's Debug perspective, you can attach to a running process through a Debug launch configuration, not a Run launch configuration. | 15643 | |
procnto no longer terminates a child process without notifying its parent process. | 15756 | |
The IDE's System Resources view no longer has two columns that display the same information (i.e. heap sizes). | 16177 | |
The IDE's Debug perspective now retains the contents of the Expressions view (i.e. the expressions you want the IDE to evaluate and display) from one invocation of the debugger to the next. | 16241 | |
In the IDE's Debugger perspective, you can now add expressions in the Expressions view. | 16242 | |
The IDE now properly builds the Renesas Biscayne BSP after you retrieve it from CVS. | 16302 | |
In the Windows-hosted IDE, if you edit the search paths in the properties in the System Builder, and you click Add Workspace Path, the resulting a browser now starts at the root of your workspace, instead of at the root of your filesystem (e.g. C:). | 16590 | |
During debugging in the IDE, the values of class members are now updated correctly in the Variables view on SH platforms, but only if you're using gcc 3.3.5 and the default debug options. | 16630 | |
The IDE's Build action toolbar button now has a tool tip. | 16689 | |
The IDE no longer blocks when qconn takes a long time to respond. | 16701 | |
In the IDE's System Information perspective, a process's heap usage is now updated properly in the System Summary view. | 16792 | |
In the IDE's System Information perspective, the information about the system memory is now updated in the System Summary view. You can manually refresh the information, or you can schedule an update by using the Update Control view. | 16793 | |
The IDE's System Profiler now provides hover information for thread events when the process is unexpanded. | 16820 | |
In the IDE, when the Target Navigator is refreshed, it no longer jumps to the currently selected item. | 16937 | |
In the Signals view in the IDE's Debugger, changing filters no longer deselects the view and the IDE itself. | 16938 | |
The IDE's editor for common.mk no longer hides all text that follows #QNX internal start. It now uses folding to hide all text until the next #QNX internal end. | 17002 | |
In the IDE's System Information perspective, the filesystem plugin now restores connections when you restart the target. | 17050 (Ticket ID 63145) | |
In the IDE's System Profiler, you can now create a tracelog even with interrupts disabled. | 17170 | |
In the IDE, if you select an application that depends on a shared library from another project, then click | , the IDE now automatically uploads the needed shared libraries.17442 | |
asyncmsg_get() no longer fails on MIPS and SH targets. | 17800 | |
Maximizing the CPU Activity pane in the IDE's System Profiler no longer makes the IDE stop updating the editor pane or run ready. | 17853 | |
In the IDE's System Profiler, you can now create a bookmark in the CPU Activity and Timeline panes via the right-click menu. | 17906 | |
Linux bootp servers now let you specify a buildfile with a leading slash. The IDE's tftp server can now find /file.ifs, as well as file.ifs. | 18032 | |
The IDE now has a “use default” option that uses the current qconfig setting to determine which version of PhAB to launch. | 18041 | |
The “strip file” setting in the IDE's System Builder now works properly. | 18042 | |
The IDE's Debugger now correctly updates the target label when you're stepping through the code. | 18065 | |
The IDE's debugger now removes the old instruction pointer when you switch to disassembly and back. | 18066 | |
In the Linux-hosted IDE, you can now drag a file from the Navigator view to File System Navigator view. | 18105 | |
The IDE's System Profiler can now display two events at a time. | 18110 | |
In the IDE's System Profiler, pressing Ctrl and the left or right arrow in the Timeline view no longer freezes the IDE. | 18165 | |
Whenever you open a file in the IDE's editor, the cursor is now correctly displayed as an I-beam, and hover help now works. | 18185 | |
If switching to disassembly fails, the IDE's debugger now displays an error message. | 18189 | |
On SMP machines, waitpid() no longer waits indefinitely if a previous waitpid() has already picked up the status of a child process that's terminating. | 18207 | |
qcc no longer crashes on Solaris when you're building in parallel. | 18299 | |
If you cut or copy a file in the IDE's filesystem navigator, the paste operation now works. | 18434 | |
The IDE's filesystem navigator now correctly keeps track as you add and remove files. | 18435 | |
On self-hosted Neutrino systems, there's now a symbolic link from /usr/share/bison to /usr/qnx630/host/qnx6/x86/usr/share/bison | 18563 | |
The IDE now correctly converts addresses to line information on all hosts. | 18965, 21412 | |
In the IDE, content assist now works with functions that you declare globally. | 18983 | |
ANT scripts now work correctly in the IDE. | 19037 | |
In the IDE, make -d now works correctly. | 19080 | |
The IDE no longer raises a Core Exception if a project's control files are read-only. | 19181 | |
In the IDE's System Profiler, the user interface for choosing the event filtering when preparing to capture a log file is now clearer. | 19202 | |
If you run mkefs and specify the type=fifo attribute, the command now creates an loadable image. | 19214 | |
The IDE's System Profiler now displays priority information. | 19265 | |
You can now launch a telnet session from the IDE to a target running QNX Neutrino 6.3.0. | 19282 | |
In the IDE, you can now drag and drop into the C/C++ Projects view. | 19314 | |
In the IDE's System Profiler, statistics that are gathered over a selection no longer miss accumulating time. | 19348 | |
Scrolling vertically in a .kev file in the IDE's System Profiler no longer causes an error message. | 19382 | |
![]() |
19384 | |
Empty lines no longer appear in the IDE's Build Make Targets dialog after you choose and run a target. | 19401 | |
The IDE's System Profile no longer crashes when you're using split displays. | 19431 | |
Eclipse no longer crashes when you enter a large number into the CPU Usage pane's Line Thickness field. | 19445 | |
In the IDE's Debug perspective, the Memory view now uses a fixed-width font by default, so the columns of numbers all line up properly. | 19466 | |
The borders of a PtRectangle widget are now drawn correctly when its fill color is transparent and its inside color isn't transparent. | 19469 | |
The message that results when you free() or realloc() unallocated data has been corrected. | 19481 | |
In the IDE, to convert a a QNX Project to standard Make C, you can now choose | or .19504 | |
The -s option to mkdir does nothing and has been removed. | 19533 | |
In the IDE's System Profiler, if you search the results for a process name, markers are now displayed on the timeline. | 19535 | |
In the Tools pane of the IDE's Launch Configuration dialog, when you add a tool, you can now turn the “Switch to this tool's perspective on launch” toggle both on and off. | 19545 | |
In the IDE's C/C++ projects view, Build Make Target now works properly for Standard Make Projects. | 19580 | |
Information in the IDE's C/C++ Outline view no longer disappears for code between #ifdef and #endif when the define is outside the C file. | 19602 | |
The IDE's QNX C/C++ Project Property window now includes arrow buttons for switching from the Advanced view to the Regular view. | 19605 | |
The IDE's File System Navigator now lists the permissions for directories as “Search” and not “Exec.” | 19626 | |
The editor's marker icons are now clearer in the IDE's Code Coverage perspective. | 19641 | |
In the IDE, if you add a code-coverage data directory to the .gcc_coverage_data directory, the code-coverage tool now notices the new session correctly. | 19642 | |
Our implementation of gzip now handles large (64-bit) files and the most recent GNU gzip archives. | 19651 | |
In the IDE's System Profiler, filtered events are no longer displayed on a collapsed process timeline. | 19655 | |
In the IDE, if you set up a postmortem debugging session for a QNX C Application project, you no longer get a “[Debugger]: No debugger available” message when you select your application. | 19664 | |
The Find button in the IDE's System Profiler is no longer ghosted after the dialog loses and regains focus. | 19694 | |
The __builtin_return_address() function now works correctly for SH targets using gcc 2.95.3. | 19706 | |
When you're building a project in the IDE, the Progress Information dialog now displays the correct make command. | 19708 | |
In the IDE's System Information perspective, newly started processes are now displayed in the System Blocking view. | 19720 | |
In the IDE's Memory Analysis perspective, right-clicking in the Error Events Tree when the list is empty no longer causes a null-pointer exception. | 19742 | |
The IDE's Convert C/C++ Project dialog no longer gets too large when you're working with many projects. | 19743 | |
Corrected the title of the IDE's Build Make Target dialog. | 19752 | |
In the IDE's System Profiler, you no longer get an “Uploading Error: Open No such file or directory” message the first time you start a kernel event trace on a target | 19754 | |
In the IDE's Memory Analysis perspective, if you log memory events from processes with identical IDs on different systems, the IDE now displays the data from both processes correctly. | 19794 | |
In the IDE, you can now paste copied text in the Find pane after searching. | 19795 | |
In the IDE's Memory Analysis perspective, adding an artificial target no longer causes an exception. | 19798 | |
The IDE no longer runs ready because of #define directive in a C++ program. | 19808 | |
The IDE is now better at handling broken metadata. | 19809 | |
The default C++ options for gcc 2.95.3 now include -D_PTHREADS=1. | 19811 | |
In the IDE's System Profiler, filtering out event owners no longer causes the scrollbar to be set incorrectly. | 19913 | |
In the IDE's New Project Wizard, the dialog name and description now reflect the type of project you chose. | 19936 | |
In the Neutrino-hosted IDE, moving the Help window out of focus no longer corrupts the window contents. | 19944 | |
phs-to-pcl now creates better-quality lines and circles. | 19967 | |
If you change a container's name right after you create the project, the IDE no longer loses the build-configuration information. | 19982 | |
In the IDE's System Profiler, using the arrow keys to navigate through the events now works correctly. If you filter out some events, they're now filtered out even after you scroll or zoom. | 19989 | |
In the IDE's CVS perspective, if you choose | , the IDE now retains the list of variants to build.19992 | |
The IDE no longer gives a “string index out of range” error when you open a project's properties. | 19995 | |
In the IDE, the preference option for determining the telnet command now includes a Browse button for selecting the binary to launch on connections. | 19999 | |
If you edit the advanced properties for a QNX C/C++ project, select a category other than “General options,” and then click the project folder, the category name no longer changes back to “General options.” | 20004 | |
If you check out a project in the IDE's CVS view, the IDE no longer creates a new empty project and asks if you want to overwrite it. | 20042 | |
In the IDE, you can create an empty file in a library project and link it by using the Extra Object Files in the project properties Linker tab. The field where you can type the filename now has a more descriptive label. | 20049 | |
When you import a System Builder project by copying an existing .bld file from a previous installation, the project is now properly converted. | 20073 | |
A Resource Exception error log is no longer generated when you convert a CVS project into a QNX C++ Library project. | 20081 | |
In the IDE, if you build a container project, the error message that's displayed if the IDE can't an included project has been improved. | 20085 | |
The IDE now has “All” and “All enabled” options for variants in container projects. | 20121 | |
In the IDE, if you choose | , you can now choose a directory by typing in the Directory Field field.20123 | |
On Windows hosts, /tmp is now always mounted to C:\tmp. | 20130 | |
In the Project Properties dialog in the IDE, if you change a lib.a project into a lib.so project, the “library shared object name” on the Linker tab is now updated when you click the Apply button. | 20136 | |
The IDE's System Builder can now find the libraries needed to build the audio drivers for the Renesas Big Sur/Amanda BSP. | 20142 | |
In the IDE's System Profiler, if you set the Tracing Method to “Iterations,” using the default value of 32 iterations no longer creates an invalid .kev file. | 20147 | |
The IDE's System Profiler no longer incorrectly claims to have run out of memory when you're working with a large tracebuffer file. | 20264 | |
When you create new variants for BSP projects, the variant folder now gets the correct name. BSP projects also no longer ignore any advanced properties when building. | 20268 | |
The IDE System Profiler's Preferences dialog no longer lets you enter invalid text. | 20278 | |
In the IDE's System Information perspective, the Signal Information view now displays its data correctly. | 20282 | |
In the IDE, if you create a project, delete it from the workspace but not from the filesystem, and then reimport it into the workspace, the selected variants now remain checked. | 20359 | |
In the IDE, if you open a QNX project, add extra include paths, and then add another project folder, the parser can now interpret files from the new extra path. | 20365 | |
The non-x86 3.3.1 versions of the gcc driver and cc1plus, along with /lib/gcc/2.95.3/libstdc++.so and /lib/gcc/3.3.1/libstdc++.so now have use -i information. | 20380 | |
usemsg now reports an ldrel failure as a failure. | 20403 | |
The Mozilla web server now properly handles a change in graphics mode. | 20441 | |
In the IDE's System Profiler, if you right-click in the Timeline (or any other) pane, select | , click on a color selector, and then immediately click on the corresponding item in the visible column, you're now correctly given a choice between true and false instead of a color selector.20448 | |
In the IDE, if you create a QNX library project and a QNX application project, and want to link the application against the library, and you specify the library and the library path through the application's project settings by using the Project button under Extra Library Paths to do this, the IDE can now find the library and build the application. | 20496 | |
The IDE now correctly saves the container reference information in the .cdtproject file. | 20530 | |
The IDE's File System Navigator is now called the Neutrino File System Navigator. | 20534 | |
Scrolling has improved in the IDE's System Profiler. | 20614 | |
Scrolling in the IDE System Profiler's event window now works properly when you've zoomed in. | 20628 | |
The IDE's System Profiler now provides a more useful name for its marker in the Tasks view. | 20646 | |
If you delete a target in the Target Navigator, the IDE now prompts you to confirm the deletion. | 20667 | |
The IDE's code coverage report now includes the source code. | 20674 | |
The obsolete Library tab in the IDE's | dialog has been removed.20687 | |
The IDE's Code Coverage report no longer has problems with special character strings (e.g. &, ++) in class names. | 20691 | |
A menu entry for debugging purposes has been removed from the CPU Usage menu in the IDE's System Profiler. | 20711 | |
A priority of 255 is now displayed correctly in the IDE's Process Information view. | 20712, 23384 | |
In the Neutrino-hosted IDE, you can now set the QNX Build Environment for a standard C/C++ project. | 20717 | |
In the IDE's System Profiler, you no longer get a null-pointer exception when you open a log file. | 20734 | |
In the IDE, resetting a target while a File System Navigator is open no longer causes a socket error. | 20766 | |
In the IDE, if you convert a standard C or C++ project into a QNX C/C++ project, targets such as Build, Clean, and Rebuild are now retained. | 20771 | |
If a file such as common.mk is read-only, the IDE now tells you so and offers to change it when you try to save your project's properties. | 20773 | |
gcc no longer hangs when you compile a large module for little-endian SH. | 20859 | |
In the IDE, temporary binaries are now removed properly from the workspace when you uncheck Use unique name in the Download tab of the launch configuration. | 20889 | |
phs-to-ps now correctly lines up columns in monospaced fonts that include international characters. | 20898 | |
The IDE's launcher no longer gets a “Load lib...” error when you try to automatically find needed shared libraries in the launch configuration. | 20905 | |
In the IDE, post-builds now run correctly. | 20913 | |
In the IDE, if you look at the advanced properties for a QNX C/C++ project and choose a source file, the Linker tab is no longer displayed (since there aren't any link options on the file level). | 20930 | |
ntomips-gdb no longer crashes when you're debugging a core file and performing a -data-list-changed-registers mi command. | 20939 | |
In the IDE, when you import a container project, and any projects underneath can't be found, the error mark now displayed at both the project and container levels. | 20943 | |
The Content Assist command in the IDE's C/C++ editor no longer inserts a second occurrence of the selected function's name. | 20959 | |
In the IDE, the C/C++ Editor's Add Include command now puts the #include lines in the correct place. | 20960 | |
On Neutrino hosts, the IDE's Debugger no longer gives you an error message when you try to set a breakpoint's ignore count to a value from 1 to 9. | 20965 | |
The IDE Debugger's Variables view is now better at displaying and handling variables like char *argv[]. | 20967 | |
In the Neutrino-hosted IDE, text that you cut and paste in the Find dialog is no longer pasted in the editor. | 20978 | |
The IDE's Memory Analysis tool now correctly translates memory events (errors) generated by running with the memory trace tool back to source addresses. | 20979 | |
The coverage bars in the IDE's Code Coverage reports are now displayed correctly. | 20984 | |
In the IDE, setting properties for a renamed project doesn't occasionally fail or result in errors anymore. | 20986 | |
The messages that the malloc_h library gives have been improved. | 20987 | |
In the IDE's Application Profiler, the editor annotations are now displayed on the correct line of code. | 20998 | |
The IDE's Code Coverage Session view no longer collapses trees unexpectedly. | 21000 | |
In the IDE, if you combine code coverage sessions, you no longer lose some of the data. | 21001 | |
In the IDE, code coverage now works better for C++, but only if you use gcc 3.3.x, not 2.95.3. | 21002 | |
In the IDE, the colors are now used consistently in the code-coverage session and the editor. | 21003 | |
In the IDE's Code Coverage perspective, the Save entire report button now produces a useful report. | 21004 | |
qconn no longer occasionally crashes if multiple people are doing code coverage, application profiling, or memory analysis on a shared target. | 21006 | |
The names of the files in the IDE's System Profiler are now clearer. | 21008 | |
In the IDE's Trace Configuration dialog, the “State Height” column title has been changed to “Line Width” for better clarity. The dialog's title has been changed from “All Event Properties” to “Timeline State Properties” as well. | 21012 | |
Pressing Ctrl-Select in the wrong place in the IDE's System Profiler no longer makes the IDE run ready. | 21015 | |
It no longer takes as long to attach with the debugger to a memory event in the IDE's Memory Analysis perspective. | 21022 | |
In the IDE's Application Profiler, launching is now a nonblocking, background activity. | 21023 | |
The IDE now displays the code-coverage percentages correctly on Windows XP hosts. | 21030 | |
In the IDE's C/C++ editor, if you use Ctrl-V to paste some text, the column number in the status bar is now updated correctly. | 21036 | |
The 6.3 IDE now works with the 6.2.1 versions of mkefs and mkifs. | 21054 | |
In the Build Console preferences in the IDE's C/C++ Development perspective, the minimum number of lines for the Build console is 10; the dialog now displays the correct range. | 21074 | |
The IDE's System Information perspective now displays process IDs, not just process names. | 21132 | |
The devc-ser* drivers now generate Ctrl-C interrupts properly when you're using esh. | 21148 | |
The IDE's System Profiler now unbundles the idle thread's CPU usage from that for the rest of procnto. | 21175 | |
The Timebar in the IDE's System Profiler editor now provides hover help to indicate which display is active. | 21176 | |
The IDE's Code Coverage no longer tries to create directories on SHLE targets, and it no longer produces error messages when you compile with gcc 3.3.1. | 21208 | |
The IDE's System Profiler now tells you if any buffers were dropped. | 21227 | |
QWinCfg now uses an up-to-date graphic. | 21236 | |
The PPC assembler now supports the new BookE SPRG registers. | 21286 | |
phs-to-ps now handles transparent bitmaps correctly. | 21292 | |
In the IDE's System Information perspective, the Launch Telnet Session window doesn't always display an IP address of 127.0.0.1 anymore. | 21309 | |
<sys/resmgr.h> now includes the prototype for resmgr_unbind() | 21314 | |
A duplicate declaration of vsnprintf() has been removed from <stdio.h>. | 21326 | |
In the IDE, if you convert a standard C/C++ project into a QNX project, the project now inherits the build-variant setting from the preferences. | 21389 | |
The Filesystem pane in the IDE's System Builder now correctly shows user-created directories that are nested inside another user-created directory called /usr when usr is at the root of the IFS filesystem. | 21394 | |
The Filesystems area of the IDE's System Builder now sorts the entries in ascending alphabetical order. | 21396 | |
A problem with MAP_LAZY mappings where there's no L1 pagetable for that 4 MB range when entering message passing that could cause some boards to hang has been corrected. | 21411, 22261 | |
In the IDE's C/C++ perspective, if you choose Compile Selected and then Build Project, the IDE now builds the project if necessary. | 21450 | |
The IDE's System Profile is now able to read tracelogger files that were generated with the ring-buffer (-r) option. | 21453 | |
The ARM libgcc.a in 3.3.1 no longer attaches some debugging information when you're building release binaries without optimization. | 21470 | |
In the IDE's Debugger, you no longer get a “not responding” message in the Variable view when you switch from one thread to another while debugging. | 21478 | |
When you change the timeline colors in the IDE's System Profiler, they are now updated immediately, instead of waiting until you reload the .kev file. | 21490 | |
LIB_SPEC is now defined correctly for Neutrino in the gcc-3.3.1 specification file. | 21544 | |
On Windows hosts, usemsg -o no longer fails if you have a Cygwin root directory set. | 21561 | |
cc1.exe no longer dumps stack with Scansoft code and optimization of -O. | 21568 | |
The Event Filters right-click menu now works properly in the CPU Usage pane in the IDE's System Profiler. | 21571 | |
Profiling using stream mode no longer fails on Solaris hosts. | 21584 | |
Warning messages from icc are no longer parsed as errors in the IDE. | 21589 | |
In the IDE, it's now possible to resize the panes in the advanced properties for a QNX C/C++ project, making it possible to show the entire name of a build variant. | 21590 | |
Using I/O vectors (IOVs) with the asynchronous-messaging functions no longer causes the system to hang. | 21622 | |
The IDE's Target Navigator no longer has problems scrolling a long list of targets. | 21670 | |
phgrafx is no longer vulnerable to buffer-overflow attacks. | 21682 | |
The default binary parser for new Make projects is now the QNX binary parser instead of ELF. | 21699 | |
In the IDE's Debug perspective, enabling a conditional breakpoint after stopping at main() no longer causes the IDE to ignore the condition. | 21714 | |
qcc no longer has problems creating a temporary directory while compiling. | 21717 | |
When you profile a C++ application in the IDE, sampling information and the number of calls to each function are now correct. | 21738 | |
In the IDE, having an include reference to a closed project no longer makes the build fail. | 21750 | |
In the IDE, you no longer get a ClassNotFound exception while browsing for the upload directory on a target (i.e. by opening the Launch Configuration dialog, selecting Download page, and then selecting Browse). | 21762 | |
chkfsys now uses less memory when checking large disks. | 21795 | |
On starting, touchscreen drivers no longer complain about finding a graphics region with no capability data. | 21822 | |
Slinger no longer lets a remote user access files outside of its root directory (as identified by the HTTPD_ROOT_DIR environment variable). | 21825 | |
You can once again run tracelogger in daemon mode (-d) and specify the number of iterations to log (-n). | 21846 | |
In the IDE's System Profiler, if you log only a few events and flush them, the events are now written out. | 21848 | |
The gcc 2.95.3 compiler no longer issues erroneous warnings that variables defined in a function might be uninitialized. | 21863 | |
If your project's .cdtproject file is write-protected, and you try to add or delete a build target, the IDE now displays an error message and doesn't modify anything. | 21868 | |
In the Neutrino-hosted IDE, postmortem profiling on x86 no longer breaks with ccov enabled in the build. | 21887 | |
Voyager now correctly displays special characters (e.g. letters with accents) in its title bar. | 21893 | 6.3.0 SP2 |
qcc now passes all -m options to the compiler stage. | 21910 | |
The IDE's Code Coverage report generation no longer fails on Neutrino hosts. | 21913 | |
In the IDE, when you convert an imported project into a QNX project, the nto/cpu/variant variant directories are now used correctly. | 21940 | |
The IDE's Process Information view now correctly displays all environment variables. | 21964 | |
A large HTTP GET request-URI (greater than the value of PATH_MAX) no longer overflows Slinger's internal buffer and causes a fault. | 21965 | |
QWinCfg no longer crashes when QNX_HOST or QNX_TARGET doesn't exist in the environment registry. | 21967 | |
We corrected a typo in the IDE's Launch Configuration dialog. | 21986 | |
The IDE no longer flags “Remarks” from the Intel C/C++ compiler (icc) as errors. The compiler uses remarks to report common, but sometimes unconventional, use of C or C++. | 22012 | |
pax -rw now works properly on Windows hosts. | 22016 | |
Corrected a typo in the Progress Information dialog in the IDE's Application Profiler. | 22020 | |
In the IDE's System Profiler, scrolling horizontally on the timeline no longer causes zooming in. | 22021 | |
In the IDE's Application Profiler, double-clicking main now correctly opens the corresponding source file of a C++ project built with icc 8.0. | 22034 | |
In the IDE, the common.mk editor now uses folding instead of a toggle button to hide and reveal the hidden internal code. | 22044 | |
In the IDE's System Profiler, when you zoom in on an SMP log file, the second and subsequent CPUs no longer change color to green (the default CPU1 color) when no events are present. | 22065 | |
The snapshot of the Build and Debug Options tab of the Project Properties has been updated in the Working with Applications chapter of the Photon Programmer's Guide. | 22073 | |
The embedded shells (esh, uesh, and fesh) have two new built-in commands: emount and ewaitfor. | 22074 | |
Corrected the instructions for preventing users from moving or resizing an application, in the Working with Applications chapter of the Photon Programmer's Guide. | 22078 | |
The IDE's Debugger now launches the binary on the target and gdb in parallel. | 22080 | |
nftw() now recognizes readdir() failures and reports errors back to the caller. | 22084 | |
ApOpenDBase() now properly handles “Alloc” widget resources. | 22091 (Ticket ID 67098) | |
The IDE's debugger now handles conditional breakpoints in a DLL correctly. | 22097 | |
If you create a regular C make project in the IDE, invoke the Set QNX build environment function from the C/C++ Projects view, go to the next page, and then select the system default compiler, the x86 element is no longer repeated in the architecture list. | 22101 | |
The IDE's System Builder now recognizes backslashes as line-continuation characters. | 22123 | |
The IDE System Builder's “strip file” option (raw) now correctly removes the usage messaeg from a program in an image filesystem. | 22152 | |
In the IDE's Memory Events view, if you resize the columns in the Allocation Trace, Unmatched Allocations, and Unmatched Deallocations, the IDE remembers the new settings when you switch to another perspective and back again. | 22162 | |
The IDE no longer crashes on startup after you've used su to switch users. | 22163 | |
When you're adding new variants, the IDE now prompts you if it needs any extra information (e.g. source and header files in a variant or CPU directory). | 22166 | |
In the IDE's C/C++ Development perspective, you can now use the Outline view to examine header files that are included in another header file. | 22180 | |
The configuration files for the MIPS assembler now include the -G0 option, so options are now consistent for the assembler and compiler. | 22195 | |
The malloc_g library can now detect memory leaks on MIPS targets. | 22198 | |
In the IDE, System Builder project properties are now saved and restored properly. | 22276 | |
Missing parentheses have been added to the definition of __PASS_AS_FLOAT() in <sh/platform.h>. | 22289 | |
use no longer crashes with a SIGSEGV if the usage message doesn't contain a newline character. | 22299 | |
If you mix “wide” kernel-call events into an otherwise “fast” log, the IDE now displays all the events correctly. | 22324 | |
In the IDE's Signal Information view, if a signal is ignored at the process level, the information as to whether it is masked or unmasked for each thread is no longer lost. | 22345 | |
We removed some undefined weak symbols from libgcc.a for gcc 3.3.1 that were being set to 0, causing a SIGSEGV when they were called. | 22355 (Ticket ID 67274) | |
64-bit division no longer has problems on SH-4, using gcc 3.3.1. | 22363 | |
The IDE's Signal Information view now properly displays pending signals. | 22365 | |
In the IDE's System Profiler, you can now scroll the Trace Timeline when you've zoomed in. | 22379 | |
The coverage annotation at the end of a program is now accurate in the IDE's Code Coverage perspective. | 22391 | |
procnto-smp no longer shuts down or runs out of interrupt events during a compiler system test. | 22400, 22455, 22469 | |
In the IDE's System Profiler, the CPU Usage and CPU Activity plugin values now add up correctly. | 22410 | |
The _amblksiz variable once again works properly. | 22478 (Ticket ID 67168) | |
ntoppc-gcc-3.3.1 no longer defines __svr4__. | 22504 | |
devc-serpsc no longer runs out of interrupts on the Freescale Lite5200EVB. | 22630 | |
qconn no longer hangs when several people use the IDE's Target Navigator to connect to the same target. | 22635 | |
In the IDE's System Profiler, logging with the minimum number of iterations no longer logs forever. | 22640 | |
When you link an extra library in the IDE, the EXTRA_LIBPATH is now set correctly. | 22644 | |
ldbootstrap.exe no longer randomly crashes when building startup-bios. | 22647 | |
In the IDE, local code completion now works correctly on QNX C++ project with the icc 8.1 or gcc 3.3.5 compiler. | 22669 | |
PhAB no longer causes j9 to hold 92-98% of the CPU when working with the IDE. | 22679 (Ticket ID 66319) | |
When you build a Container project in the IDE, the top-level container no longer reports a Pass when some projects fail. | 22720 | |
pci-mgt5200 now supports the Silicon Motion Lynx chipset | 22732 | |
When you're building a QNX C/C++ project in the IDE, release binaries are no longer displayed as being debug versions if you change the build variants in the properties from Debug to All. | 22739 | |
In the IDE's System Profiler, selection in the timeline is now based on the nearest event instead of the nearest, next event. | 22872 | |
ntosh-gdb.exe no longer hangs when you try to step over a bad pointer assignment. | 22874 | |
If a container project is read-only, and you try to save it, the IDE now asks if you want to make your project read-write. | 22888 | |
In the IDE's Container Import Wizard, the Location button is now enabled all the time. | 22890 | |
We addressed a rare corner case where many equally sized, noncontiguous, RAM sections in the syspage (8×4 MB) could have resulted in a kernel error assertion during bootstrapping on ARM or x86 targets. | 22907 | |
The IDE's System Optimizer dialog no longer always displays “No libraries can be removed.” | 22923 | |
hogs no longer crashes in a system with more than 200 processes. | 22950 | |
If you edit the properties of an OS image in the IDE's System Builder perspective, the combobox of procnto variants is now correctly filled in. | 22957 | |
A typo has been fixed in the error message that appears in the IDE's QNX C/C++ Properties dialog when you select more than one variant for code coverage. | 22961 | |
Code-coverage comments now appear correctly in generated reports in the IDE. | 22965 | |
We fixed a typo in an IDE error message that appears when you choose Import QNX Sources but don't select any packages. | 22968 | |
If you use gcc 3.3.1 to create an SH4 debug variant, the IDE's Code Coverage perspective now updates the coverage information when you launch using the debugger. | 22973 | |
A typographical error has been corrected in the Launch Configuration's Tool tab in the IDE. | 22974 | |
In the IDE, removing projects from a container project's configuration no longer corrupts the container project. | 22995 | |
The IDE no longer locks up when you delete a large number of open files from the workspace. | 22997 | |
Including <iostream> in an application no longer results in warnings when you've set the maximum warning level in qcc or the IDE. | 22999 | |
The SMP kernel no longer locks up while in clock_slock. | 23001 | |
The IDE System Builder's Console View is now forced-front when you're building an image. | 23012 | |
You can now step-over after doing a step-into in the IDE's debugger. | 23015 | |
In the IDE, Check Dependencies now works properly when Share all project properties is off. | 23023 | |
If you import an existing project, the IDE now preserves the Check Dependencies On status in the right-click menu. | 23025 | |
The Photon libraries and PxLoadImage() now support all BMP formats. | 23057 | |
You can now use Ctrl-Space in the IDE's C/C++ editor to complete the names of members of a structure. | 23059 | |
Signal handlers that process interrupts no longer corrupt the Freescale MPC8540 CPU's count (CTR) register. | 23089 | |
In the IDE, you no longer get a Cannot add new project: String index out of range 1 message when you create container projects. | 23104 | |
If you use the -N option to qcc to specify the stack size, the size is now specified correctly in applications for PPC BE targets. | 23120 | |
The Launch configuration dialog now properly restores saved target download directories. | 23124 | |
If you change any settings in | and then save your changes, they're now saved correctly.23128 | |
The built-in buffer management on the receiver side of the asynchronous-messaging functions has been fixed. | 23154 | |
If you call asyncmsg_put() on a connection ID (coid) for which the chid has gone away, the function no longer ignores the error, so it no longer ends up COND-blocked. | 23160 | |
Dependency checking is no longer done for container projects. | 23168 | |
Opening and closing the IDE's System Profiler editor repeatedly no longer causes the IDE to run out of memory. Memory leaks in the PaneInfo, ActionsManager, and LogView have been fixed. | 23206, 23207, 23208 | |
A search in the helpviewer now finds all the items it should. | 23220 | |
Generate Index in the helpviewer now picks up new items. | 23221 | |
The IDE's Select Source Projects dialog now scrolls properly after you've imported a BSP. | 23265 | |
The IDE no longer has problems copying shared libraries when you're running a debugging session on a target. | 23267 | |
The IDE's System Builder now correctly imports BSPs that have both LE and BE images. | 23268 | |
In the IDE, for QNX Projects, the default debugger is the QNX Debugger; for Standard Make projects, it's the GDB debugger. | 23277 | |
Binaries that you build in the IDE now indicate the architecture they were built for. | 23287 | |
As of 6.3.0, Neutrino supports 256 priorities. If you're logged in as root, nice now lets you set the priority to any value in the new range. | 23294 | |
Drag-and-drop from the IDE's Target File System Navigator now works properly. | 23309 | |
In the IDE's Debugger, adding global variables to the display no longer removes existing ones. | 23314 | |
The Optimize button in the IDE's System Builder now works correctly. | 23319 | |
In the IDE, after you disable a breakpoint (by right-clicking on it or via the Breakpoints view), it no longer flickers between being enabled and disabled. | 23321 | |
The IDE's System Builder editor with 2 or more images now displays the contents of an embedded filesystem correctly. | 23324 | |
The Windows-hosted IDE no longer gives a “too long command line” error when processing the common.mk file. | 22351 | |
The IDE's System Builder now supports the prefix attribute in buildfiles. | 23394 | |
When deleting something using the C/C++ Projects view, the IDE no longer prompts you twice for the object or claims to be deleting it twice. The object is no longer displayed afterward. | 23401 | |
Attaching to a running process in the IDE now correctly launches the debugger. | 23402 | |
The IDE now properly displays the mouse pointer in the Select Process pane of Attach to Running Process, even after you click Refresh. | 23404 | |
asyncmsg_put() and asyncmsg_get() now work properly when you put multiple messages and get them later. | 23406 | |
If you open a gmon.out file in the IDE's QNX Application Profiler, the IDE once again switches to the Application Profiler perspective. | 23408 | |
You can now combine code-coverage sessions in the IDE. | 23409 | |
The IDE's System Builder now lets you select the compression method to use for an OS image. | 23416 | |
phs-to-ps no longer drops elements such as text at the end of a file. | 23418 | |
If you use the DPI setting to increase the print quality, polygons are no longer printed with some extra stray lines. | 23420 | |
The IDE's System Builder can now build projects whose names include spaces. | 23424 | |
The IDE's Target Filesystem Navigator now reestablishes a socket if a previously connected target reboots. | 23429 | |
Processes no longer appear without a name in the System Summary tab of the IDE's System Information perspective. | 23464 | |
The IDE System Profiler's Trace Condition wizard now has a title. | 23483 | |
In the IDE, Run As and Debug As now work for remote targets. | 23491 | |
usemsg now properly embeds inline usage messages when building source. | 23495 | |
The IDE's Application Profiler no longer crashes on the Renesas Biscayne. | 23560 | |
The sendnto progress bar in the IDE now shows the correct progress when you're downloading an image to a target. | 23564 | |
qconfig.mk now defines CP_HOST as qnx_cp -vfpc (i.e. without -u). | 23592 | |
The instrumented kernel now properly flushed interrupt events properly, so the owner of subsequent events is now correct. | 23606 | |
The IDE no longer occasionally hangs when you start it, and then go to the System Builder perspective. | 23616 | |
In the IDE, “Save all modified resources automatically prior to manual build” now works correctly with container projects when the build is done from the container project's build configuration. | 23617 | |
For io-blk.so, if you don't specify a full path for the device in the automount option, io-blk.so uses the value of its devdir option as a prefix. | 23626 | |
All MirrorBit flash drivers now implement a 4-us delay after sending a suspend/resume command to the board. | 23629 | |
tracelogger now works correctly when you add it to an image for PPCBE targets. | 23657 | |
The AC97 mixer now works properly on playback on the Freescale Total5200. | 23698 | |
waitpid() no longer forgets about execed children on SMP platforms. | 23703 | |
Interrupts are now handled properly in the startup and kernel on SH4A targets, so the handlers are no longer invoked twice. | 23721 | |
You can now change the kernel in the Properties view in the IDE's System Builder. | 23734 | |
procnto no longer crashes on an SH4A processor. | 23766 | |
In the IDE's Debug perspective, when you disconnect from a process, you no longer get an error message: The target is not suspended. | 23786 | |
You no longer get a SIGSEGV if you call asyncmsg_put() after calling asyncmsg_connect_detach(). | 23798 | |
The usemsg utility no longer leaves temporary files behind. | 23803 | |
The IDE's Application Profiler no longer reports that some functions have been called when they haven't been. | 23815 | |
gcc 2.95.3 no longer has a problem with template declarations that are nested within structs. | 23823 | |
The inline Assembly functions in the MIPS, PPC, and SH versions of <sys/cache.h> no longer cause problems with the C++ preprocessor. | 23843 (Ticket ID 68460) | |
The IDE's Application Profiler no longer hangs occasionally. | 23859 | |
MsgReadv(), MsgWritev(), and devctl() comands with very little transport data (512bytes) now take less time on SH4A targets. | 23866 | |
gcc now launches the correct version of the assembler. | 23886 | |
A timestamp whose most significant byte is greater than 0x7FFFFFFF no longer prevents the IDE's System Profiler from loading a log file. | 23949 | |
In the IDE's System Profiler, if you save the state format properties, you no longer lose the wide-mode format specifiers. | 23950 | |
C++ header conflicts between icc and Neutrino have been resolved. | 23991 | |
If you start devc-sersci with two interfaces, /dev/ser2 now works correctly. | 23993 | |
The devg-smi5xx.so graphics driver no longer just displays a blank screen. | 23996 | |
The debug malloc library no longer prevents ksh from forking. | 24000 | |
The malloc debug library is now less verbose by default. | 24035 | |
The public header files no longer contain //-style C++ comments. | 24049, 24474 | |
mkxfs now correctly parses for the ETFS buildfile attributes. | 24147 | |
The IDE's System Builder no longer creates the wrong directory structure when you switch build variants for a BSP. | 24175 | |
The malloc debug library now correctly prints strrchr instead of strchr. | 24184 | |
The ETFS filesystem no longer faults in io_fdinfo(). | 24213 | |
In the IDE, you can now successfully synchronize a project with its CVS repository. | 24225 | |
A problem with dependency-checking has been fixed in the IDE. | 24365 | |
The kernel no longer crashes because of nonatomic updates to thread and timer vectors. | 24407 | |
C++ programs that include std::cout *lt;< std::setw() no longer crash on PPC targets. | 24414 (Ticket ID 68945) | |
In the IDE, if you delete a project, the container project it belonged to is now automatically updated so that it no longer refers to the project in its build configurations. | 24421 | |
Large executables (larger than ~11 MB) no longer fail with an EBADFD error when loaded from either a DOS or QNX 4 filesystem on SH7770. | 24434 | |
A conflict between kernel calls and the timer tick's interrupt that caused sporadic scheduling not to work properly has been corrected. | 24456 | |
In the IDE, adding a usage message to a binary in a C/C++ project no longer fails when the message is located in the C file. | 24468 | |
In the IDE, standard make projects now use the QNX Binary Parser by default. | 24564 | |
The Windows-hosted version of the addvariant script no longer relies on xargs (which isn't included on Windows hosts). | 24569 (Ticket ID 69055) | |
The kernel no longer crashes on Freescale 8540 boards when you're debugging applications in the IDE. | 24574 | |
The PCI server on SH4A now supports legacy I/O devices. | 24611 | |
The IDE's Debugger no longer displays Not Responding instead of the value of some local variables. | 24644 | |
On PQ3 boards, the watchdog timer no longer causes the board to lock up. | 24690 | |
The sporadic scheduler now correctly respects the replenishment limit when sending messages. | 24700 | |
qcc -V now correctly reports which targets are available. | 24753 | |
The IDE's Variables view now correctly displays arguments that were passed by reference. | 24871 | |
The system uptime is now computed correctly in the IDE's System Profiler, so it's no longer reported as being greater than 100%. | 24878 | |
qcc no longer produces empty binaries if you specify a library path but no input files. | 24997 | |
/boot/fs now contains the SP2 version of the boot images | 25030 | |
The C Development Tools update site is now disabled because the IDE uses a specific version of the CDT plugin. | 25049 | |
The SMP kernel now boots properly on Intel Pentium 4 hyperthreaded machines. | 25086 | |
The /etc/profile.d/j9.sh file is removed as part of installing SP2. It's no longer required because it's intended for j9, which we no longer ship. | 25108, 26411 | |
fs-nfs3 now works correctly when you're using asynchronous writes and the server is using root-squashing. | 25113 | |
The IDE now correctly generates target names when you switch the debug and release variants on and off. | 25157 | |
The Dinkum <new.h>, <iomanip.h>, <iostream.h>, and <fstream.h> are now correctly in usr/include/cpp/embedded. | 25167 | |
The IDE now builds a project properly after you've used Compile Selected on one of its files. | 25238 | |
The Welcome button on the shelf now opens the documentation roadmap. | 25296 | |
Enhanced dependency checking now works properlu for Standard Make C Projects in the IDE. | 25453 | |
The IDE's Memory Analysis now correctly displays allocation data for SH targets. | 25470 | |
Getting messages after putting many messages on an asynchronous channel now works correctly. | 25576 | |
We now ship SH, PPC, and x86 variants of devn-bcm43xx.so. | 25594 | |
In the IDE, if you add subfolders to a project and create them as links to existing folders, and then edit the project properties and add extra source paths and extra include paths that point to folders inside the previously added (linked ) folders, and then click Apply, you no longer get an exception. EXTRA_INCVPATH and EXTRA_SRCVPATH items no longer show up inside the project. | 25606 | |
If you install QNX Momentics on 9.2 SuSE Linux, the IDE's Debug and Run pulldown menus now work as pulldowns, not switches. | 25755 | |
If you import the Renesas Biscayne BSP into the IDE and specify a location other than the default, the build no longer fails because of missing headers and such. | 25756 (Ticket ID 69747) | |
mketfs now correctly embeds IFS image files on Windows hosts. | 25770 | |
The line .set PPC_UTIL_AH_INCLUDED,1 has been corrected in /usr/include/ppc/util.ah. | 25835 | |
sendnto once again supports RAW images. | 25850 | |
In the IDE, libraries are no longer included in the building dependencies by default. | 25868 | |
The kernel no longer crashes when asynchronous-messaging clients disappear. | 26055 | |
In the IDE, if you choose Check out as.... and then QNX C Project, the .cdtproject file is now created properly. | 26147 (Ticket ID 69975) | |
When you import a file into a project in the IDE, the list items are now aligned properly. | 26208 | |
The default versions of gcov are now set correctly. | 26213 | |
gunzip, uncompress, and zcat are all links to gzip on Neutrino, Linux, and Solaris hosts, and copies of gzip on Windows hosts. | 26222 | |
In the IDE, including from other projects work again when gcc 3.3.5 is selected. | 26442 | |
In the IDE, if you create a QNX application or library project for one platform, create a folder named .abc in the variant directory, open the properties for this project, and then press OK, the IDE no longer creates a new variant, abc. | 26474 | |
The IDE's System Profiler is no longer missing some event definitions for interrupted kernel calls. | 26524 | |
The procmgr_event_notify() function has a new flag, PROCMGR_EVENT_PATHSPACE, that you can use to ask for notification when a resource manager adds or removes an entry (i.e. mountpoint) to or from the pathname space. | 27379 |
Documentation fixes
The documentation in SP2 includes the following fixes:
Change | Ref # |
---|---|
The documentation for sin now includes more details about the output of the command. | 7358 |
devc-ser8250 is a priority-float server, so it matches the priority of its highest send-blocked client. | 12170 |
We updated the classifications in the Neutrino Library Reference to reflect the POSIX 1003.1 standard, 2004 edition. | 12184 |
The munlockall() function is implemented, but currently does nothing. | 13048 |
The times() function returns the elapsed real time, in clock ticks, of kernel uptime. | 14240 |
ApGetImageRes() returns a pointer into the widget database; don't close the database while still using the image. If you must close the widget database, create a copy of the image (see the Photon Library Reference). | 14927 |
The startup-* entries in the Utilities Reference now include the -j and -r options. | 15019 |
An appendix in the HTML version of the Neutrino Library Reference now lists the classification and safety information for all functions. | 15113 |
The entries for kernel calls in the Neutrino Library Reference now refer to the covering POSIX function. | 15282 |
The examples in the entry for pthread_sleepon_timedwait() in the Neutrino Library Reference have been corrected. | 16031 |
If you're copying to removable media, such as a floppy or removable disk, and the media becomes full, cp tells you that it ran out of space, and then exits. The documentation has been corrected. | 16358 (Ticket ID 62581) |
The documentation for phrelay in the Utilities Reference now includes information about limits on the draw buffer. | 18670 |
The description of the SELECT_FLAG_SRVEXCEPT flag has been corrected in the entry for select_attach() in the Neutrino Library Reference. | 18867 |
There's now an entry for bindres in the Utilities Reference. | 19237 |
If you're using widgets in a Photon application, you don't need to call PgSetFillColor() or PgSetStrokeColor(). | 19444 |
The Utilities Reference now includes an entry for devi-tahoe. | 19513 |
The changes (except for the language selection) that you make with phlocale go into effect when you click on the Apply or OK button. Any language change takes effect the next time you log into the system. | 19550 |
The entry for ClockCycles() in the Neutrino Library Reference now includes a warning about wrapping the cycle counter. | 19573 |
Serial debugging via pdebug doesn't work in some versions of Linux, including Red Hat 8 and 9. Red Hat and Suse (and probably most of the distros) run mgetty on the available serial ports by default, probably to facilitate modems and serial terminals. The IDE User's Guide now says to stop mgetty to make serial debugging work. | 19718 |
The example for pthread_cond_timedwait() has been corrected in the Neutrino Library Reference. | 20532 |
The maximum size for one-part message-pass via MsgSend(), MsgSendnc(), MsgReply(), or MsgReceive() is 232 - 1 (SSIZE_MAX). | 20553 |
The entry for qnxgl_buffers_create() in the Photon Library Reference includes more details about qnxgl_attrib_set_force_hw() and qnxgl_attrib_set_hint_fullscreen(). | 20585 |
flock() isn't a standard Unix function; its entry in the Neutrino Library Reference has been updated. | 20648 |
qnxinstall doesn't exist on Windows hosts; the documentation has been corrected. | 20681 |
The entry for name_attach() in the Neutrino Library Reference now says that the gns must be running before you can call name_attach(). | 20890 |
The documentation for devn-ne2000 now includes the did, pci, and vid options. | 20914 |
The setting of the PHINDOWSOPTS environment variable has been updated in the Using PhAB under Microsoft Windows appendix of the Photon Programmer's Guide to reflect some packaging changes made in 6.3.0. | 20918 |
The descriptions of the arguments to rename() have been improved. | 20929 |
The instructions in “Custom widget development and PhAB” and “Photon Hook DLLs” in the Using PhAB Under Microsoft Windows appendix of the Photon Programmer's Guide have been corrected. | 20948 |
The instructions in “Search Paths” in the Building OS and Flash Images chapter of the IDE User's Guide have been corrected. | 21070 |
The description and examples of inputtrap have been corrected in the Utilities Reference. | 21072 |
The entry for PtAppAddInput() in the Photon Library Reference now describes the size argument to an input procedure. | 21100 |
The return values for pthread_mutex_lock() have been corrected in the Neutrino Library Reference. | 21146 |
The error codes for resmgr_unbind() have been corrected in the Neutrino Library Reference. | 21314 |
The Conventions for Makefiles and Directories appendix of the Neutrino Programmer's Guide now describes the LIBPREF_*, LIBPOST_*, OBJPREF_*, and OBJPOST_* macros. | 21337 |
The System Design Considerations appendix of Building Embedded Systems now has more information about Non-Maskable Interrupts (NMIs). | 21610 |
The example has been corrected in the entry for tzset() in the Neutrino Library Reference. | 21629 |
You'll find the Print Manager in the Launch menu's Utilities menu, not in its Configure menu. The Printing chapter of the Neutrino User's Guide has been corrected. | 21640 |
The entries for PpLoadDefaultPrinter() and PpLoadPrinter() in the Photon Library Reference now state the correct location ($HOME/.ph/printers/default) of the default printer settings. | 21658 |
The _cmdname() function returns a pointer to the pathname used to load the process, or NULL if an error occurred. | 21809 |
We added documentation for mq, the server for message queues that use asynchronous messages. We made related updates to the following: the documentation for procnto (it now manages named semaphores, which mqueue used to do) in the Utilities Reference; the mq_* functions, sem_close(), sem_open(), and sem_unlink() in the Neutrino Library Reference; QNX Neutrino Microkernel chapter of the System Architecture guide; Transparent Distributed Processing Using Qnet and Writing a Resource Manager chapters of the Neutrino Programmer's Guide; Working with Files, Controlling How Neutrino Starts, and Understanding System Limits chapters of the Neutrino User's Guide. | 21823 |
The entry for phlogin in the Utilities Reference now describes a race condition that can occur if you use the -U option. | 21874 (Ticket ID 66831) |
The IDE Concepts chapter of the IDE User's Guide has a new section, “Starting the IDE after an update.” | 21934, 22970 |
The link in the preface to Building Custom Widgets to the Creating a Tree Widget chapter is no longer broken. | 22015 |
The snapshots of cpim have been updated. | 22032 |
The Building OS and Flash Images chapter of the IDE User's Guide has been updated. | 22040 |
The Working With Files chapter of the Neutrino User's Guide now describes the socket file type. | 22041 |
The instructions for defining a template have been updated in the Photon Programmer's Guide. | 22049, 22071 |
The titles of the PhAB resource editor plugin functions have been changed so that the IDE's hover help won't display their prototypes instead of those for other functions with the same names. | 22055 |
The Test button for a PhAB module is no longer at the right end of the module's title bar; the Photon Programmer's Guide has been updated. | 22061 |
The snapshot of the File menu has been updated in the tutorials in the Photon Programmer's Guide. | 22066 |
The entries for ar, gcc, gcov, gdb, gprof, ld, nm, objcopy, objdump, size, strings, and strip in the Utilities Reference now include all target-specific variants (e.g. ntoarm-ar, ntox86-ar). | 22135 |
The documentation for mkfontdir now explains how to use it on Linux and Solaris hosts. | 22155 |
The entry for ph in the Utilities References emphasizes that your ~/.ph/phapps must be executable. | 22196 |
The titles in the online documentation for cpim have been corrected. | 22204 |
There are no BSPs on the 6.3 CDs; you can download them from our website. The preface of Building Embedded Systems has been corrected. | 22207 |
There's no longer an entry for swapctl in the Utilities References because we no longer ship this utility. | 22227 |
The entries for npm-qnet-l4_lite.so, npm-tcpip-v4.so, and npm-tcpip-v6.so in the Utilities Reference now state that you can't unmount these io-net modules. | 22231 |
The description of daemon() in the Neutrino Library Reference has been improved. | 22244 |
The entries for the MsgSend* functions now have links to the corresponding MsgReply* functions in the Neutrino Library Reference. | 22260 |
The description of the ioflag member of the _io_connect structure has been corrected in the Neutrino Library Reference. | 22298 |
We corrected the ranges of priorities and restricted priorities in the System Architecture guide. | 22317 |
devu-kbd-amanda and devu-mouse-amanda have been removed from the documentation. | 22326 |
We corrected the name of the Epson IJS printer in the Neutrino User's Guide. | 22347 |
The resource types for PtScrollArea have been corrected. | 22420 |
The “Downloading via a serial link” section in the Building OS and Flash Images chapter of the IDE User's Guide now lists the control sequences that you can use in the Terminal view. | 22430, 22929 |
The DDK documentation now includes a link to the general “Managing source code” section of the IDE User's Guide. | 22443 |
The DDK documentation now says that you need to run bash on Windows before running . ./setenv when you're building the drivers. | 22444 |
The entries for the devg-* drivers in the Utilities Reference now describe the mode_opts option. | 22499 |
The Utilities Reference now has entries for devu-kbd and devu-mouse. | 22528 |
The Utilities References now has an entry for mkxfs that redirects you to the entries for mkefs, mketfs, and mkifs. | 22561 |
We removed some undefined weak symbols from libgcc.a for gcc 2.95.3 that were being set to 0, causing a SIGSEGV when they were called. | 22666 (Ticket ID 67274) |
The description for the -o option to ipfstat has been corrected in the Utilities Reference. | 22675 |
The Application Profiling chapter of the IDE User's Guide now says that you need to run as root to collect full profiling information. | 22692 |
The documentation for pci_find_class() now refers you to <hw/pci.h> for a list of the class codes. | 22742 |
The PCI_* macros are defined in <hw/pci.h>; the documentation for pci_attach_device() has been corrected. | 22743 |
The entries for spawn() and spawnp() in the Neutrino Library Reference now explain how to use a node descriptor to spawn a process on a remote node. | 22751 |
The example of “backup server” mode in the entry for gns in the Utilities Reference has been corrected. | 22756 |
The entry for pci_attach_device() in the Neutrino Library Reference now identifies the Busnumber and Devfunc members of the pci_dev_info structure as being input/output. | 22771 |
We removed some x86-specific details from the documentation for pci_map_irq() in the Neutrino Library Reference. | 22789 |
The pci_irq_routing_options() function is for x86 only. | 22790 |
The documentation for tftpd in the Utilities Reference now includes the -p option. | 22798 |
Added a missing “from” to the caveats for pppd in the Utilities Reference. | 22811 |
The entry for fdisk in the Utilities Reference now describes fdisk's interactive mode. | 22829 |
The Neutrino Library Reference now includes entries for cache_fini(), cache_init(), CACHE_FLUSH(), and CACHE_INVAL(). | 22845 |
The documentation for sendnto now describes the -b option for setting the baud rate. | 22900 |
The entry for PtText in the Widget Reference now describes the Pt_TEXT_BLINKING_CURSOR flag. | 22919 |
The IDE User's Guide now warns you that, on Solaris hosts, the serial terminal view's device menu may contain duplicate entries. | 22926 |
One of the sample build scripts in Building Embedded Systems incorrectly included waitfor /mipsle/bin. This line has been changed to waitfor /usr/bin. | 22945 |
The Developing C/C++ Programs chapter of the IDE User's Guide now explains how to use common.mk to set up an application's usage message. | 23000 |
The documentation for ifconfig in the Utilities Reference now states that this utility doesn't work with the tiny TCP/IP stack, npm-ttcip.so. | 23011 |
npm-ttcpip.so is once again listed with the “N” entries in the Utilities Reference. | 23013 |
The caveats in the documentation for npm-qnet-l4_lite.so concerning the bind option have been corrected. | 23018 |
The documentation for the asyncmsg_* functions now includes a link to the technote on asynchronous messaging. | 23073 |
The documentation for qcc now includes more details about the -w option. | 23126 |
The asyncmsg_* functions are in libasynchmsg, not libc. | 23138 |
The description of the _NTO_COF_NONBLOCK flag has been corrected in the entry for asyncmsg_connect_attach() in the Neutrino Library Reference. | 23145 |
The “Returns” section in the entry for asyncmsg_channel_create() in the Neutrino Library Reference has been corrected. | 23153 |
asyncmsg_flush() now sets errno to EBADF if the connection ID is invalid. | 23158 |
The examples in the technote on asynchronous messaging have been improved. | 23164 |
The entry for PtFSAllItems() in the Widget Reference now says who needs to free the buffer. | 23209 |
The documentation for devh-usb.so in the Utilities Reference now says that you need to run io-usb. | 23231 |
We corrected the name of the LOG_FTP facility in the entry for openlog() in the Neutrino Library Reference. | 23301 |
The System Architecture guide now explains why Qnet works better on physically separate networks. | 23334 |
The Neutrino Programmer's Guide now explains why you can run out of interrupt events. | 23335 |
The documentation now includes index.html files that are copies of bookset.html, about.html, etc., to make it easier to use a browser to read the documentation. | 23349 |
The description of the thread_pool_attr_t structure's block_func member has been corrected in the entry for thread_pool_create() in the Neutrino Library Reference. | 23463 |
There's now an entry for devn-rlan2.so in the Utilities Reference. | 23558 |
In the IDE's System Profiler, when you're setting up the logging configuration for kernel event tracing for a target running 6.2.1, you must change the setting of the Trace Statistics File combobox. The default, Generate only on the target, causes an error because it isn't supported in 6.2.1. The IDE User's Guide now tells you to change the setting to Do not generate. | 23589 |
pthread_join() and pthread_timedjoin() don't return EINTR; their entries in the Neutrino Library Reference have been corrected. | 23594 |
The embedded shells (esh, uesh, and fesh) have two new built-in commands: emount and ewaitfor. | 23627 |
The Customizing Image Startup Programs chapter of the Building Embedded Systems guide now includes more information about callouts. | 23792 |
The documentation for malloc() in the Neutrino Library Reference has more information about calling malloc() with a size of 0. | 23827 |
The example in the documentation for procmgr_event_notify() no longer leaks memory. | 23861 |
The examples in the Writing a Resource Manager chapter of the Neutrino Programmer's Guide now properly call ThreadCtl(). Several other errors have also been corrected. | 23892 |
The Heap Analysis: Making Memory Errors a Thing of the Past chapter of the Neutrino Programmer's Guide now warns you that the debug malloc library uses more stack space than the regular libc allocator. | 23999 |
The documentation for ham in the High Availability Toolkit Developer's Guide now describes the -d and -t options. | 24023 |
You don't need to have the IPFILTER_LOG option turned on in your kernel in order for ipmon to properly work. The entry for ipmon in the Utilities Reference has been corrected. | 24032 |
The entry for mprobe() in the Neutrino Library Reference now warns you that calling mprobe() on a pointer already deallocated by a call to free() or realloc() could corrupt the memory allocator's data structures and result in undefined behavior. | 24044 |
The entry for mcheck() in the Neutrino Library Reference now states that a program can call mcheck() only once. | 24045 |
The description of the otime argument to timer_timeout() has been corrected in the Neutrino User's Guide. | 24060 |
The Neutrino User's Guide now correctly refers to UHCI instead of UCHI in the section on connecting USB hardware. | 24078 |
![]() |
24199 |
Each inet6_option_* and inet6_rthdr_* function now has its own entry in the Neutrino Library Reference. | 24236 |
The entries for nanospin*() in the Neutrino Library Reference now discourage you from using these functions for delays longer than a few milliseconds. | 24258 |
“Version coexistence” in the IDE Concepts chapter of the IDE User's Guide now includes a section on PhAB and coexistence. | 24298 |
The example of endian-ness in the Freedom from Hardware and Platform Dependencies appendix of the Neutrino Programmer's Guide has been corrected. | 24355 |
The Migration appendix of the IDE User's Guide describes the Could not restore workbench layout warning that appears when you open the SP2 IDE the first time after running the SP1 version. | 24604 |
The entry for netmgr_ndtostr() in the Neutrino Library Reference now includes the values that the function can set errno to. | 24627 |
The entries for the dispatch_* functions in the Neutrino Library Reference now refer you to the Writing a Resource Manager chapter of the Neutrino Programmer's Guide. | 24708 |
The documentation now correctly states that the primary QNX partition type is 79. | 24806 |
The Debugging chapter of the IDE User's Guide now includes information about the Disassembly view. | 24847 |
The Utilities Reference now includes an entry for addr2line. | 25018 |
The -vmargs option to qde is for Linux, Solaris, and Windows hosts only. | 25082 |
The Migration appendix of the IDE User's Guide now suggests you enable the Clean option in your projects' properties after importing old projects into the SP2 version of the IDE. | 25119 |
The usage of the %1> and %2> patterns have been corrected in the entry for usemsg in the Utilities Reference. | 25178 (Ticket ID 68784) |
The IDE User's Guide now suggests that you reset the C/C++ perspective so that the context menu displays the new launch options. | 25252 |
The entry for su in the Utilities Reference now describes the - option. | 25385 |
The IDE User's Guide now includes updated screenshots in the Launch Configurations chapter, because Serial Launch is no longer present in SP2. There's also a new Attach to running process launch configuration if you launch with Debug (not Run), and the Debug tab of the launch configuration has also changed since SP1. | 25449 |
The IDE Concepts chapter of the IDE User's Guide now advises you not to start the Neutrino-hosted IDE from the command line if you've used the su command to switch to a different user. | 25615 |
An obsolete section has been removed from the Finding Memory Errors chapter of the IDE User's Guide. | 25623 |
The examples given for vprintf() and vfprintf() in the Neutrino Library Reference have been corrected so that they no longer generate warnings when compiled. | 25632 (Ticket ID 69628) |
“What's new in the IDE?” in the IDE Concepts chapter of the IDE User's Guide now includes a list of the changes in QNX Momentics 6.3.0 SP1, as well as those in SP2. | 25651 |
The IDE Concepts chapter of the IDE User's Guide now explains how to specify the browser to use for the Help system on Red Hat Enterprise Linux 4. | 25654 |
The IDE Concepts chapter of the IDE User's Guide now explains how to start the IDE on Solaris hosts. | 25658 |
“Starting the IDE for the first time” in the IDE Concepts chapter of the IDE User's Guide has been updated. | 25659 |
The Conventions for Makefiles and Directories appendix of the Neutrino Programmer's Guide now describes the dll variant. | 25705 |
The asyncmsg_get() function receives no more than five asynchronous messages from the channel. | 25787 |
The IDE Concepts chapter of the IDE User's Guide no longer refers to a C:/QNXsdk directory that no longer exists. | 25896 |
The entries for ClockTime() and clock_settime() in the Neutrino Library Reference now state that you can't set the monotonic clock. | 25923 |
The IDE User's Guide and the entry for qconn in the Utilities Reference now explain how to adjust qconn's priority if it gets starved of CPU. | 25991 |
The variants for addr2line are now listed correctly in the Utilities Reference. | 26207 |
The entry for procmgr_event_notify() in the Neutrino Library Reference now describes the new PROCMGR_EVENT_PATHSPACE flag. | 26236 |
The "File owenership and permissions" section in the Working with Files chapter of the Neutrino User's Guide says that if you set the sticky bit (t or T) on a binary, the OS keeps the binary in memory for “a while.” It now also explains that the exact length of time depends on what else is happening in the system. | 26245 |
In the IDE's System Builder, the autobuild feature no longer disables (grays out) the context menu options to build your project. | 26481 |
The entry for sloginfo in the Utilities Reference now includes the -t option, which you can use to print times with millisecond resolution. | 26482 |
The Building OS and Flash Images chapter of the IDE User's Guide now describes the Filesystem Type item in the system properties for .efs images. | 26495 |
The utilities and drivers associated with the Embedded Transaction Filesystem (etfsctl, fs-etfs-ram, and mketfs) are now documented in the Utilities Reference. | 26626 |
The entry for devg-coral in the Utilities Reference now includes information about dual-head support. | 26683 |