QNX SDP 8.0.2 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.2. 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: February 18, 2025
Target hardware
This product can run on x86_64 hardware platforms and AArch64 platforms that support the ARMv8.0
or v8.2 instruction sets. For the list of specific boards that this release supports, refer to
Which platforms does the QNX OS support?
below.
Development host OSs
You must install QNX SDP 8.0.2 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
- QNX SDP isn't supported on host systems that use ARM processors.
- QNX SDP isn't supported on macOS anymore.
Contents
What's new in QNX SDP?
Component | Feature | Details |
---|---|---|
General | N/A | The AArch64 binaries have been tested on ARMv9.0 hardware; however the ARMv9.0 extensions are not yet supported. |
General | N/A | Ubuntu 24.04 has been added as a supported development host OS. |
Kernel | Multiple features |
|
Filesystems | Performance improvement | Improved multithreaded filesystem performance. |
Image-building tools | mkxfs utilities | The mkxfs utility has been updated to allow the build
file to do the following:
|
PCI | Multiplexer | Added PCI Multiplexer. |
Networking | High-performance networking stack | The FreeBSD version that QNX OS networking is based on has been updated from 13.3 to 13.4. |
Networking | High-performance networking stack | The networking stack and drivers have been updated to support the Raspberry Pi 5 and NXP S32G3 boards. |
Networking | High-performance networking stack | The devs-vtnet_mmio.so and devs-vtnet_pci.so drivers, which support VirtIO MMIO and PCI Ethernet devices, have changed from experimental to stable. |
Networking | High-performance networking stack | The networking stack has been tested for TC8 (Automotive Ethernet ECU Test Specification) conformance (excluding the SOME/IP communication protocol). |
Networking | High-performance networking stack | A driver for RealTek 8125/8126 PCI/PCIe Ethernet adapters (devs-rt.so) has been added. |
Networking | High-performance networking stack | The networking stack now supports the standard FreeBSD devctl commands suspend and resume. |
Networking | High-performance networking stack | The new sysctl variable
qnx.net.inet.tcp.rfc1323_timestamps allows you to disable or
enable TCP timestamps, for both inbound and outbound traffic. |
Security | Multiple features | To enhance the security measures that the pathtrust feature provides, the
behavior of the PROCMGR_AID_PROT_EXEC and
PROCMGR_AID_PROT_WRITE_AND_EXEC abilities has changed. For more
information, go to the Abilitiessection of the System Security Guide. |
Security | Multiple features | The chroot (change root) behavior now allows processes to be granted access
to selected resource managers or files that are located outside of the new root
path. For more information, go to the change root (chroot)section of the System Security Guide. |
Security | Multiple features | The new security policy event library (libsecpolev) allows you to monitor system trace events that relate to the successful or failed use of privileges covered by security policies. |
Host Tools | mkqnximage |
|
Host Tools | C++ libraries and language standards | LLVM libc++ version has been updated to version 18. This upgrade enables partial support for parallel algorithms. In this release, these libraries support the C++17 and C++20 standards. For more information, refer to the libc++ C++20 Status page from the LLVM Project website and the C++20 Support in GCC page from the GNU website. It is recommended that you recompile any existing binaries that use libc++ against this updated version. |
Host Tools | binutils | binutils has been updated to v2.43. |
Host Tools | GDB | GDB has been updated to v14. |
Host Tools | Ubuntu | Support for Ubuntu 24.04 as a host development platform has been added. |
Host Tools | no-builtin-libm | A new compiler option (-fno-builtin-libm) has been added to provide a shorthand to disable all libm builtins in the compiler. |
Host Tools | Critical Process Launch |
|
Host Tools | ps | The QNX version of ps has been restored. |
Target Tools | Toybox | The toybox version that QNX OS uses is updated from 0.8.10 to 0.8.11. |
Installing QNX SDP
To use QNX SDP 8.0.2, you need to have QNX Software Center 2.0.3. For information about
installing and opening this other product, refer to Install and launch the QNX Software Center
in the QNX Software
Center User's Guide.
You can install QNX SDP 8.0.2 as a new, separate installation of the baseline product, or as an update to an existing QNX SDP 8.0 installation.
To install the QNX SDP 8.0.2 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, select QNX Software
Development Platform 8.0. Follow the prompts (e.g., the
Next and Installbuttons) to perform the installation. Be sure to select a
Conservative installation policy to ensure you install all of the SDP 8.0.2 packages. For
more information, refer to Install the QNX Software Development Platform
in the QNX Software
Center User's Guide.
To access the contents of a package, right-click it in the QNX Software Center, choose Properties, then click Package Contents. Some of the packages may contain no files but instead references to contained packages (or subpackages), in which case the contents page will display a note saying 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.
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 own 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 the Package status
section in the Deploy licenses to users
topic 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 checked (this box is checked 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.
Discontinued and deprecated items
For documentation on all items that are no longer shipped in this release or will be removed in a future release, refer to the QNX Software Development Platform 8.0: Discontinuation and Deprecation Notice.
Experimental items
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 |
---|---|---|
Kernel | Dynamic Processor State Management:
|
N/A (included in baseline product) |
BSP & Drivers | Added Dynamic Interrupt Manager (DIM) | N/A |
Networking | Texas Instruments Jacinto 7 network drivers (devs-cpsw-j721e.so, devs-cpsw-j784s4.so, devs-cpsw-j721s2.so) | N/A |
Networking | Texas Instruments Sitara network driver (devs-cpsw-am62x.so) | N/A |
Networking | DWC gmac network driver (devs-dwc.so) | N/A |
Networking | RNDIS USB network driver (devs-urndis.so) | N/A |
Networking | Marvell Network PHY driver (devs-marvell_phy.so) | N/A |
Networking | RT9010 network PHY driver (devs-rt9010phy.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
Description | Applicable Architecture(s) | Application-Level Impact | System-Level Impact | Reference Number |
---|---|---|---|---|
Using libc++ remove_all() to delete a directory and its contents might fail, if the directory contains a file entry which is a symbolic link. |
AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated version of libc++. | 2943012 |
This release of libc++ doesn't support the <format> header. | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated version of libc++. | 2945645 |
Fixed a problem that caused packets to not be received by the guest OS when hardware offload of VLAN IPv6 packets was enabled for a QNX hypervisor host. | AArch64, x86_64 | None | Rebuild with updated io-sock. | 2966803 |
Nexus devices can now be unmounted using the unmount utility. | AArch64, x86_64 | None | Rebuild with updated io-sock. | 2964144 |
The
sysctl utility now returns an
error if you try to set the variable
qnx.sec.droproot more than
once. |
AArch64, x86_64 | None | Rebuild with updated io-sock. | 2963478 |
Disabling transmit checksum offload (-txcsum) on a bridge interface now takes effect as expected. | AArch64, x86_64 | None | Rebuild with updated io-sock. | 2966864 |
An issue that caused mkqfs to fail when the buildfile was missing some attributes has been fixed. | AArch64, x86_64 | None | Use the updated mkqfs to build your QCFS image. | 2965744 |
The runtime linker, ldqnx-64.so, can now handle a dynamic section that includes more than 256 valid entries. This means that an ELF object with more than 256 dynamic entries can be loaded. | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated ldqnx-64.so. | 2977055 |
The TLSDESC resolvers incorrectly assume that the thread pointer is read after they complete. | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated ldqnx-64.so. | 2949788 |
The DF_STATIC_TLS flag is not supported. Use of this flag in a dynamically loaded library may lead to application crashes and other unexpected behavior. |
AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated ldqnx-64.so. | 2947151 |
The QNX procnto process may run out of fds due to failing to close those that were associated with file back shared memory that had been served by processes that are no longer running. | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated kernel. | 2913593 |
The grow-heap option doesn't work on the smmuman service. | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated smmuman utility. | 2950191 |
When using the driver for the Cadence GEM (cgem) controller (devscgem.so), a cgem interface may stop receiving packets when there is heavy network traffic. | AArch64, x86_64 | None | Rebuild with updated io-sock. | 2972167 |
The statvfs() function fails and returns the EBADMSG error if the path is hosted by a devf filesystem. | AArch64, x86_64 | None | Rebuild your BSP's devf driver against the updated libfs-flash3.a and then rebuild the IFS using the new devf driver. | 2954965 |
The inotify_rm_watch() function is not implemented in QNX SDP8. |
AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) so that it contains the updated fsevmgr and libfsnotify.so.1. | 2935914 |
Errors are generated when you set the waitfor component parameter that specifies a time in milliseconds for system launch and monitor (SLM) to pause before starting the dependent components (wait="delay"). | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated SLM service. | 2965394, 2909161 |
The name of pid 1 is sometimes not a form of procnto in the output of pidin. | AArch64, x86_64 | None | Rebuild the Image Filesystem (IFS) with an updated mkxfs utility kernel. | 2943132 |
For ThreadCtl() and ThreadCtl_r(), you cannot use the _NTO_TCTL_RUNMASK_GET_AND_SET command to control the calling thread's processor affinity for CPUs CPUs 33 to 64. This is because the data parameter points to a 32-bit field. However, the _NTO_TCTL_RUNMASK command can set the thread affinity for CPUs 33 to 64. | AArch64, x86_64 | None | None | 2949426 |
Known issues
The known issues for this release are described in the QNX Software Development Platform 8.0: Known Issues document that's stored in the QNX Download Center at: https://www.qnx.com/download/group.html?programid=74127
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.