Home
Developer Resources
Technical Articles

QNX Technical Articles

QNX SDP 7.1 Documentation Update: Release Notes

Date of this edition: March 30, 2026

QNX SDP is a cross-compiling and debugging environment, including an Integrated Development Environment (IDE) and command-line tools, for building binary images and programs for ARM v7/v8 and x86_64 targets running the QNX Neutrino RTOS. To install this update, you must have already installed the QNX Software Development Platform 7.1 on one of the following development hosts:

  • Microsoft Windows 10 Pro 64-bit, or Windows 8.1 Pro 64-bit
  • macOS version 10.14, or 10.15
  • Linux Red Hat Enterprise Linux 7 64-bit, Ubuntu Desktop 18.04 LTS 64-bit, or Ubuntu 20.04 LTS 64-bit on x86_64 processors (QNX SDP 7.1 isn't supported on Linux on ARM processors).

Contents

Throughout this document, you may see Reference Numbers associated with particular issues, changes, etc. When corresponding with our Technical Support staff about a given issue, quote the relevant reference number. You can use the reference numbers to track issues as they are fixed.

What's in this update?

This update provides revised Eclipse and PDF documentation, available in separate packages:

Name Package ID Package internal version Build ID
QNX® SDP 7.1 Documentation com.qnx.qnx710.target.docs.plugins 0.0.10.02359T202603122200L 2359
QNX® SDP 7.1 PDF Documentation com.qnx.qnx710.target.docs.pdf 0.0.10.02209T202603121653L 2209

In the QNX Software Center (QSC):

  • the Plugins package is under Updates -> QNX Software Development Platform -> Documentation
  • the PDF package is under Available -> QNX Software Development Platform -> Documentation

To install either of these packages, click its entry, then click the Install button just below the package display window on the right, and then follow the prompts in QNX Software Center. After you install the PDF package, the files for the QSC SDP documentation are found in the ~/qnx710/doc folder (Linux/macOS) or the C:Usersuseridqnx710doc directory (Windows).

To list the contents of a package:

  1. Right-click the package in the QNX Software Center (QSC).
  2. Choose Properties, and then click Package Contents in the Properties window.

Updates and fixed issues

This update includes changes to the following QNX SDP documents:

General updates

Description Reference Number
The explanation of priority inheritance has been updated to clarify that the inherited priority isn't reverted when a message reply is issued. There are notes explaining this design in the MsgReply() and MsgReplyv() function entries, and in the Priority inheritance and messages section in the System Architecture guide and So what's the trick? section in the Getting Started with the QNX OS guide. 2995514
The inaccurate term "thread affinity" has been replaced with the term "processor affinity" to describe the association of a thread with a cluster of processors. 2962615
The "Thread affinity" topic has been renamed to "Processor affinity, clusters, runmasks, and inherit masks". We've rewritten it to explain how runmasks can be set for existing or newly created threads. 2958833
The new safety tables for multimedia APIs have been added in the Utilities and Libraries and Multimedia guides. 2918276

Software Development Platform

OS Components & Operations

Building Embedded Systems

Description Reference Number
The Environment variables section has been improved to explain the semantics of setting environment variables at various points in the OS image buildfile. Specifically, it now describes when the settings apply to the bootstrap executables, and how processes (single or multiple) start. 2968210

Core Networking Stack User's Guide

Description Reference Number
In the Core Networking Stack User's Guide, in the Writing Network Drivers for io-pkt chapter, new content now explains that the delay example uses an io-pkt service (based on NetBSD kernel services) to provide a pseudo-thread-safe sleep. 2898787

Platform-independent Publish/Subscribe Developer's Guide

Description Reference Number
In the PiPS Configuration section, the expected locations for PiPS provider configuration files have been listed. 2988869

System Architecture

Description Reference Number
In the System Architecture guide, the The vmstat files section now cautions that /proc/vm/stats doesn't have a defined size and doesn't support incremental or repeated reads. 2999317

Technotes

Description Reference Number
The description for the PF flag in the Reading a Shutdown Message page has been updated. 2996673

User's Guide

Description Reference Number
The /etc/shadow reference has been revised to refer to the mkshadow utility, and number of seconds has been stated instead of number of days since the start of the Unix Epoch. 2978007

Audio & Graphics API

Screen Graphics Subsystem Developer's Guide

Description Reference Number
The pipelines parameter in the Configure winmgr section has been updated for the Configuring Screen page. 2968788
The Tutorial: Using screen_notify() and screen_unregister_event() pages have been updated. 2987090

Multimedia

Multimedia Renderer

Description Reference Number
The code sample on the Managing video windows page of the Playing and Recording Media Content guide has been updated. 2930901
The Data section of the Multimedia Renderer API guide has been updated.

OpenMAX AL Additions

Description Reference Number
The descriptions for the iov_t load and off64_t offset data types on the XAQNXBufferInfo page have been updated. 2912207
A new XAQ_CONFIGEXT_KEY_SCALING key has been added to the Screen-writer parameters section. 2901588

Programming

Programmer's Guide

Description Reference Number
The definition of CPU_ROOT in the The qrules.mk include file section has been updated. 2986439

Sensor Framework

Sensor Framework Libraries

Description Reference Number
The difference between RGB and BGR formats has been clarified. 2978591

System Security Guide

Security Features for Developers

Description Reference Number

The Compiler defenses section now notes that to use the Undefined Behavior Sanitizer (UBSAN), you need to include libstdc++.so in your IFS.

3007372

Security Features for System Integrators

Description Reference Number
The Process manager abilities section now has a sub-section that discusses how each process has two separate sets of process manager abilities: root and non-root. 2992016

Utilities & Libraries

Addon Interfaces Library Reference

The following functions and structures have been updated:

Description Reference Number
The documentation for the AoLoadConfig() function has been updated. 2933603

C Library Reference

The following functions and structures have been updated:

Description Reference Number
The return information for the fchecktrust() entry has been updated to say the following: "EOK if the file is trusted (if the operation is CHECK_TRUST_FILE) or can be executed (if the operation is CHECK_TRUST_EXEC), or an errno value if an error occurred." 2975861
The _NTO_CHF_INHERIT_RUNMASK description has been expanded to explain how the runmask stays in effect until it is explicitly changed by a call to ThreadCtl() or the thread does another MsgReceive() for the ChannelCreate(), ChannelCreate_r(), ChannelCreatePulsePool() and pidin functions. 2991723
The description for the SIGCHLD signal has been updated in the SignalAction(), SignalAction_r() entry. 2990200
The arguments in the call to MsgRegisterEvent() have been corrected for the procmgr_value_notify_add() code sample. 2988088
The resmgr_msgreply() and resmgr_msgreplyv() functions have been added, and the Returns section has been updated in the resmgr_msgreply() entry. 2977700
Descriptions for the following functions have been updated:
  • dup()
  • dup2()
  • fcntl()
2976875
The ChannelCreate() function has been updated to say that the _NTO_CHF_INHERIT_RUNMASK flag causes a runmask replacement to happen, instead of the receiver (server) thread being further restricted in terms of which processors it can run on. 2958833
The mmap(), mem_offset(), and posix_mem_offset() arguments have been updated to explain how the input address and offset don't have to be aligned to page boundaries but to each other. We've also updated:
  • The mmap() entry - added an important warning to MAP_PHYS to advise readers that direct mapping of physical memory is extremely dangerous, and a note to MAP_LAZY to inform readers that lazy mapping is disabled in this release.
  • The posix_mem_offset() function - added a reference to mention how the QNX OS implementation doesn't follow POSIX behavior.
  • The mem_offset() and posix_mem_offset() functions - added descriptions to explain how they report the length of physical contiguous memory.
2953820
The name_attach() reference has been fixed to say that if the path being registered is protected by a security policy, then the process needs the PROCMGR_AID_PATHSPACE ability. 2988715
The documentation for the timer_settime() and TimerSettime() functions has been updated to explain that adjustments to CLOCK_REALTIME don't affect expiry times for timers based on this clock, and that setting the TIMER_TOLERANCE flag means that the TIMER_ABSTIME flag is ignored.3012175
The description for the RLIMIT_FREEMEM flag has been updated for the prlimit() function to describe QNX-specific implementation. 2997471,
2987395
In the dlopen() function, the description has been updated to mention that the library search path specified by the ld utility for the -rpath option is used to search for immediate dependencies only. 3005425
The description for the RLIMIT_NPROC flag in the plimit() reference has been updated to mention that the limit applies to the current number of child processes, rather than the number of potential processes. 3014185
The thread safety status has been corrected to 'No' for the resmgr_ocb(), resmgr_iofuncs(), and resmgr_ocb_iofuncs() functions. 3014120
The error listings for the pthread_spin_init(), pthread_spin_lock(), and pthread_spin_trylock() functions have been corrected. 2997314
In the size argument of the shmctl() function, a note has been added that the function may be called again to extend existing objects. 3008746
In the ThreadCtl() function, an incorrect statement referring to CPU clusters has been removed. The description of runmask settings has been restored. 3007347
In the sigevent function, the order of sigevent field descriptions for SIGEV_SIGNAL_CODE cases has been fixed and the signatures and descriptions of the SIGEV_SIGNAL_CODE_INIT(), SIGEV_SIGNAL_CODE_INT_INIT(), and SIGEV_SIGNAL_CODE_PTR_INIT() macro functions are updated. 2995085
The inaccurate and misleading caveats statement has been removed from the pthread_setspecific() function, and the description has been updated to mention that calling the function from a destructor with a non-NULL value can cause lost storage. 3001307
The Returns and Errors sections in the wait(), wait3(), and wait4() entries have been updated. 2993953
The prlimit(), getrlimit(), and setrlimit() function entries have been updated to describe required abilities accurately and in accordance with QNX OS 8.0. 2989866

PAM Reference

The following functions and structures have been updated:

Description Reference Number
In the pam_secpol section, a statement that the module has a default configuration file has been removed. 3014935

Utilities Reference

The following utilities have been updated:

Description Reference Number
The user documentation which incorrectly claimed that the qcc-pg entry behaves identically to the qcc -p entry has been updated. 2933037
The dumper utility reference has been updated to say there are no default maximum sizes for the -H size and -s size options. 2972170,
2958155
The pidin entry entry has been updated to say that the _NTO_CHF_INHERIT_RUNMASK flag causes a runmask replacement, instead of the receiver (server) thread being further restricted in terms of which processors it can run on. 2958833
The description for the ring mode has been updated for the tracelogger entry. 3016642
In the Commonly Used Environment Variables page, a description has been included for the MM_CLEANUP_PRIO flag. 2988440
The descriptions for the new mm_cleanup_prio and mmflags fields have been added to the procnto* entry. 2970866

QNX Advanced Virtualization Frameworks User's Guide

QNX Advanced Virtualization Frameworks Architecture

Description Reference Number
Some of the inaccurate statements and code examples have been fixed. 2966524

USB Sharing

The following functions and structures have been updated:

Description Reference Number
The "Required components" page has been updated to remove the reference to sharedusbmgr source code. 2971013

Virtual Socket

Description Reference Number
Some of the inaccurate statements and code examples have been fixed. 2998892,
2999712,
2999248

Known issues

None at this time.

Getting started with the documentation

After you've installed QNX SDP, you'll find an extensive set of HTML documentation in the Integrated Development Environment (IDE) help system.

You must install the IDE as a new installation from the QNX Software Center. After launching the IDE for the first time, perform the following quick steps:

  1. Open the IDE.
  2. Close and then reopen it.

To start the IDE:

  • On Windows, choose QNX Software Systems>QNX Momentics IDE from the Start menu, or double-click the desktop icon.
  • On Linux, run the IDE_base_directory/qde file, the IDE_base_directory is where you installed the IDE package.
  • On macOS, click the icon labeled QNX Momentics IDE from the launchpad.

To see the HTML documentation, choose Help -> Help Contents. This opens a new window that has a navigation pane on the left and a contents pane in the rest of the window. In the navigation pane, click the QNX Software Development Platform entry to access the QNX SDP documentation.

The roadmap page that is displayed contains links to the various HTML booksets that accompany the OS. For a short tutorial that will help you get started, see the Quickstart Guide, then refer to the other documents (System Architecture, QNX Neutrino Programmer's Guide, C Library Reference, Utilities Reference, and so on).

Technical support

To obtain technical support for any QNX product, visit the support area on our website: https://blackberry.qnx.com/en/support/qnx-support-overview. You'll find a wide range of support options.