QNX SDP 8.0.4 Release Notes

QNX SDP is a cross-compiling and debugging environment, including an IDE and command-line tools, for building binary images and programs for target boards running the QNX OS 8.0.4. These release notes describe the key features of this new release and the notable improvements since the previous release, and provide installation instructions.


Date of this edition: April 8, 2026

Target hardware

This product can run on x86_64 hardware platforms and AArch64 platforms that support the ARM 64-bit (A64) Instruction Set.

Development Host Operating Systems (OSs)

You must install QNX SDP 8.0.4 onto a development host with one of the following 64-bit operating systems:

  • Microsoft Windows 11, or Windows 10
  • Ubuntu Desktop 24.04 LTS, Ubuntu Desktop 22.04 LTS, or Red Hat Enterprise Linux 9
Note:
QNX SDP isn't supported on host systems that use ARM processors or macOS.

Contents

What's new in QNX SDP?

This minor update to QNX SDP 8.0 focuses primarily on addressing a set of issues identified within several QNX OS components, to improve overall stability and reliability.

Installing QNX SDP

To use QNX SDP 8.0.4, you need to have QNX Software Center 2.0.4 or later. For information about installing and using this other product, refer to the Install and launch the QNX Software Center chapter in the QNX Software Center User's Guide.

To install the QNX SDP 8.0.4 packages as a new baseline product, open the QNX Software Center and click Add Installation on the left to launch the New Installation Wizard. In the first dialog, expand QNX Software Development Platform 8.0 and select QNX Software Development Platform 8.0.4. Follow the prompts (i.e., the Next and Install buttons) to perform the installation. Select any of the options from the Update Policy dropdown. For more information, refer to the Install the QNX Software Development Platform chapter in the QNX Software Center User's Guide.

To update your existing QNX SDP 8.0.3 installation to version 8.0.4, use the provided patch set. To install the patch set, open the QNX Software Center, select the installation you want to update in the Active Installation dropdown on the Welcome page and click Install New Packages. The QNX SDP 8.0.4 patch set is found under Available -> QNX Software Development Platform - Minor Release -> Patchset.

Select QNX Software Development Platform 8.0.4 and then follow the prompts to perform the installation.
Warning:
When applying the patch set to an existing installation, QNX Software Center displays a set of warnings indicating that several packages have already been installed. This behavior is expected. You can ignore the warnings and click Next to continue with the installation.

After the installation, you can access information about its results under Installed -> QNX Software Development Platform -> Software Development Platform.

To access the contents of this release, go to the All tab and search for GA8.0.4. For each listed package, right-click, choose Properties, and then click Package Contents. Some of the packages may contain references to contained packages (or subpackages) instead of files, in which case the contents page displays a note that says so. To access the list of subpackages, right-click the package, choose Properties, then click Package Dependencies. Because the baseline OS product has many inter-package dependencies, sometimes you have to go through multiple levels of subpackages to access the included files.

Note:
For more information related to QNX SDP 8.0.4 updates, before you install them, refer to the QNX SDP 8.0.4 Product Updates Release Notes .
Note:
Some packages in this release include experimental files. The maturity level of individual files is displayed in the Status column in the package contents table. The individual files in a package can have different maturity levels.

You can also obtain the maturity statuses of files by generating a manifest report. For more information, refer to the Manifest Reports & File Lookup chapter of the QNX Software Center User's Guide.

Each package has its maturity level. You can learn this by right-clicking the package, choosing Properties, then clicking General Information. In the Legal and Regulatory Information panel, there's a Status field. For details about the possible values of this field, refer to Package status in the Deploy licenses to users section in the QNX Software Center User's Guide.

Debug information for shipped binaries

The QNX SDP target binaries are generated with debug information (-g), with the debug form of the binary stored in a separate binaryName.sym file. The non-sym form is stripped of the debug and .ident information (use -s works only on files containing the .ident section).

Most target packages include debug information (.sym files). The binaries and their .sym files are linked, so gdb understands where to find the symbol data. There's no need to store .sym files for the binaries on a target.

If the debug symbols are especially large, there might be a separate debug package in the QNX Software Center. To install debug symbols in this case, select your installation from the toolbar, then go to the Advanced tab. Click Edit Installation Properties. In the property dialog that opens, ensure that the Install debug symbols checkbox is selected (this box is selected by default). Click OK.

If you decide to not install the debug information but later want it, you can right-click a package and choose Install debug symbols.

Experimental items

CAUTION:
Experimental software is primarily provided for customers and the community to try out, and to get an idea of what might be coming in the future. For information about the use of experimental software, refer to the Commercial Software License Agreement (CSLA) or Partner Software License Agreement (PSLA) in the Licensing area of our website: https://www.qnx.com/legal/licensing/.

Some experimental items are implemented in the packages of the baseline product. This means these items are installed when you install QNX SDP and, hence, there's nothing else you must do to be able to use them. Other experimental items are contained in their own packages that aren't installed when you install QNX SDP. To locate and install these packages so you can use the items they contain, go to the Available tab in QNX Software Center and search for part or all of the package name. Then, click the package in the search results and then the Install button in the bottom right corner.

The table that follows lists the experimental items by functional area and indicates whether each one is contained in an additional package that must be installed separately.

Functional area Item description Additional package
BSP & Drivers Added Dynamic Interrupt Manager (DIM) None
Networking Texas Instruments Jacinto 7 network drivers (devs-cpsw-j721e.so, devs-cpsw-j784s4.so, devs-cpsw-j721s2.so) None
Networking Texas Instruments Sitara network driver (devs-cpsw-am62x.so) None
Networking Marvell Network PHY driver (devs-marvell_phy.so) None
Networking RT9010 network PHY driver (devs-rt9010phy.so) None
Networking DWC gmac network driver (devs-dwc.so) N/A
Networking RNDIS USB network driver (devs-urndis.so) N/A
Screen Support for the core Wayland communication library and the Weston compositor for Screen QNX SDP 8.0 Wayland/Weston
Screen Tools for using Wayland on Linux 64-bit hosts QNX SDP 8.0 Wayland host tools (Linux 64-bit)
Screen Tools for using Wayland on Windows 64-bit hosts QNX SDP 8.0 Wayland host tools (Windows 64-bit)

Fixed issues

The following issues are fixed in this update. To find a specific issue, search for a reference number on this page or use the search tool:
Description Applicable Architecture(s) Application-Level Impact System-Level Impact Reference Number
Fixed an issue related to file-backed memory objects that could cause a double free error. Generic None. Rebuild with the updated packages. 3017517
Eliminated a race condition between a pending interprocessor interrupt (IPI) and a CPU going offline. Generic 3015760
Fixed an issue that could create a priority inversion when releasing a mutex. Generic 3013895
Fixed an issue that could cause an application that registered for PROCMGR_EVENT_PROCESS_* notifications, such as PROCMGR_EVENT_PROCESS_DEATH, to not receive a notification. Generic 3010636
Fixed an issue that prevented the termination of the kernel tracing purger thread. Generic 3008677
Fixed an issue that could cause delays or cause the system to hang when a message or a pulse was sent or received on a channel and various conditions were met. AArch64 3007752
Fixed an issue where Thread Local Storage (TLS) variables may not be properly aligned. x86_64 3004969
Fixed a race condition that would cause one thread to handle priority inheritance on behalf of another thread. Generic 3003703
Fixed an issue where an out-of-memory condition could cause the server-monitor to fail to take action when a server specified by name failed to unblock a client. Generic 2998343
Fixed an issue that could result in a shutdown delay after a critical process dies because of a core dump or from waiting for other threads in the process to die (e.g., a lower priority thread, or one stuck as REPLY-blocked). Generic 2998100
Fixed an issue where TLS variable usage may cause unintentional changes to floating pointer registers. Generic 2989846
For AArch64 targets, fixed an issue with address translation that could result in a stale value being read from the PAR_EL1 register. AArch64 2983397
Fixed a race condition that could result in a kernel exception when offlining a CPU. Generic 3013969
MsgQueueClose() now sets errno to EBADF if the rcvid parameter is not -1 and does not identify an existing connection. Generic 3012703
The kernel now raises an exception if the scheduler sends an IPI (inter-processor interrupt) to an offlined CPU. Generic 3008402
MsgQueueSend() and MsgQueueReceive() now validate the addresses provided by the user. Generic 3005781
Fixed an issue with the way memory pages are invalidated that created performance issues when using functions such as mprotect(). AArch64 3005621
Fixed an issue in systems where the hardware for an interrupt source can fail to perform a mask or unmask operation, which caused some interrupts to not be processed or received after calls to InterruptMask() and InterruptUnmask() failed. Generic 3001948
Fixed a race condition between two threads handling transitive priority inheritance. Generic 2993102
Fixed an issue related to cached memory that could make a call to mmap_handle() take a long time to return. AArch64 2990144
The sysconf() _SC_NPROCESSORS_ONLN value now reports the correct CPU count when CPUs have been made offline. Generic 2984746
Fixed an issue with an include guard in interrupts.h. Generic 2976746

Licensing information

The QNX SDP licensing, packaging, and fulfillment model from the previous release has been carried forward to this release. That is, QNX SDP will be available in the QNX Download Center and QNX Software Center as a new product baseline. Additionally, the license agreements will include a few enhancements for clarifications but otherwise will remain unchanged.

Getting started with the documentation

The QNX SDP 8.0 documentation is found on our public website at https://www.qnx.com/developers/docs/8.0/com.qnx.doc.qnxsdp.nav/topic/bookset.html.

This roadmap page contains links to the various booksets that accompany the QNX OS. For a short tutorial that will help you set up a QNX OS target and run a simple program, refer to the Quickstart Guide. Then you can access the other key documents (QNX OS System Architecture, Programmer's Guide, C Library Reference, and more) to learn about how the QNX OS is designed and how to write programs that run on it.

Technical support

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

For product experience and roadmap information, please contact QNX Product Management.

Page updated: