QNX Technical Articles
QNX® SDP 7.0 Host Tools: Release Notes
Date of this edition: July 31, 2018
Target OS: This product is compatible with targets that are running QNX® Neutrino® 7.0.
Host OS: In order to install this product, you must have installed the QNX Software Development Platform 7.0 on one of the following development hosts:
- Microsoft Windows 10 Professional 64-bit, Windows 8.1 Professional 64-bit, or Windows 7 Professional 64-bit
- macOS version 10.10, 10.11, 10.12
- Linux Red Hat Enterprise Linux 7 64-bit, or Ubuntu Desktop 16.04 LTS 64-bit, on x86_64 processors

QNX SDP 7 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, please quote the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.
Fixed issues and new features
The tools on the development hosts include the following updates:
- g++
-
- We now add an alignment attribute to the base types only when needed. This reduces the number of warnings about ignored alignment. (Ref# J1603482)
- C++ exceptions now work with x86 static executables. (Ref# J1672324)
- gcc
-
- Profiling no longer crashes with a segment violation on x86 targets. (Ref# J1692751)
- Adding the __may_alias__ attribute no longer triggers a compilation error. (Ref# J1683309)
- The friend declaration no longer leaks into global scope at template instantiation. (Ref# J1656697)
- grep
- On Windows hosts, standard output is now in binary mode, so you can successfully pass the output to other utilities. (Ref# J1581485)
- ld
-
- The linker now supports the workarounds for ARM hardware errata 843419 and 835769 for A53 processors. In order to include these workarounds, you must specify the -mfix-cortex-a53-843419 and -mfix-cortex-a53-835769 options when you compile, and the --fix-cortex-a53-843419 and --fix-cortex-a53-835769 options when you link. For more information about these errata, see http://infocenter.arm.com/help/topic/com.arm.doc.epm048406/Cortex_A53_MPCore_Software_Developers_Errata_Notice.pdf. (Ref# J2496171)
- Large and/or high-address programs now link and execute correctly on AArch64. Previously, incorrect code in the linker could result in incorrect branch stubs being generated. (Ref# J1686988)
- If you specify the -z nodelete option, the object is now correctly kept loaded at runtime. (Ref# J2193346)
- mkefs, mketfs, mkfatfsimg, mkifs, mkqnx6fsimg
-
- These utilities now convert all target paths in the buildfile into canonical paths. This prevents the utilities from creating infinite recursive directories. (Ref# J437005, J429168)
- Symbolic links now get permissions of 0777 (rwxrwxrwx) in the target system instead of inheriting permissions from the global settings. (Ref# J2247183)
- These utilities now correctly handle symbolic links under Windows when you use the +followlink or -followlink attribute. (Ref# J1469008, J1475067)
- These utilities now convert Windows-style end-of-line sequences to Unix-style by removing all CR characters from buildfiles. (Ref# J1557417, J1691961)
- Note that the symbolic modes for the dperms,
mountperms, and perms
attributes are similar (but not identical) to the symbolic modes for chmod.
(Ref# J2474997)
Workaround: The syntax for the symbolic modes is as follows (with spaces added for clarity):
[who] operator permissions[, ...]
The components are as follows:
- who
- A combination of zero or more of the following:
Character Meaning u User g Group o Others a All (the default if you don't specify who) - operator
- One of the following:
Character Meaning - Delete the specified permissions = Explicitly set the permissions + Add the specified permissions - permissions
- A combination of one or more of the following:
Character Meaning r Read permission w Write permission x Execute permission, or search permission for directories s When executed, set the user ID g When executed, set the group ID t Sticky bit
You can include multiple symbolic mode strings, separating them with commas (,).
- If you specify dperms=* for an inline directory, the permissions are 0755 (rwxr-xr-x). (Ref# J2474997)
- These utilities have new cksum and sha256 attributes:
- cksum=number
- Specify the expected checksum (as calculated by the cksum utility) of the file that the attribute applies to. If you specify this attribute, these utilities calculate the checksum of the host file imported into the image and compare it to the expected value; if a mismatch is detected, the program terminates with an error.
- sha256=hex_string
- Specify the expected SHA256 hash of the file that the attribute applies to. If you specify this attribute, these utilities calculate the SHA256 hash of the host file imported into the image and compare it to the expected value; if a mismatch is detected, the program terminates with an error. You must specify the expected hash as a string of 64 hexadecimal digits, without a prefix or any delimiters.
(Ref# J2219164, J2368719)
- The file permissions are now set correctly when you use multiple symbolic perms attributes. (Ref# J2212051)
- mkifs
-
- This utility now correctly sets the size of section headers for ELF files that have no sections. (Ref# J2219661)
- mkmerklefs
-
- If you use the -z option for custom signing, mkmerklefs now creates the files in the folder pointed by the TMP environment variable so that it works on all platforms. (Ref# J2186737)
- When getting the file size, mkmerklefs now gives an error if the file isn't indeed a file. (Ref# J2186891)
- This utility now works correctly on Windows hosts. (Ref# J2167184)
- qcc
- Code profiling now works with PIE. If you build with the -p option, the compile no longer fails. (Ref# J1606141)
Known issues
- g++
- We identified a number of issues in our g++ toolchain during ISO/IEC 14882:2014 compliance testing. These issues have been sent upstream and are monitored internally as "fixed upstream in an upcoming release" (Ref# J2509996) and "tracked upstream with no fix yet available" (Ref# J2512827).
- mkifs
-
- If you use the symbolic form to set file or directory permissions
(the perms or dperms attribute), if the permissions specification
contains a setuid, setgid, or sticky-bit element, then all previous terms in the specification are overwritten.
For example, the follow specifications should result in permissions of 03707:
- [perms=u=rwx,o=rwx,g=g] results in 03000
- [perms=u=rwx,g=g,o=rwx] results in 03007
- [perms=g=g,u=rwx,o=rwx] results in 03707
The same applies for u=s and o=t. (Ref# J2479118)
Workaround: Use the numeric form for all permissions requiring the setuid, setgid, or sticky bit to be set:
- setuid: 04000
- setgid: 02000
- sticky: 01000
- The mkifs utility doesn't warn you if you provide invalid parameter values, such as a non-numeric value or an empty string for the gid attribute. Note that even if you provide a syntactically correct value, mkifs can't necessarily tell if the value is valid; for example, it can't determine if the group with a given ID exists. (Ref# 2369526)
- If you use the symbolic form to set file or directory permissions
(the perms or dperms attribute), if the permissions specification
contains a setuid, setgid, or sticky-bit element, then all previous terms in the specification are overwritten.
For example, the follow specifications should result in permissions of 03707:
- qcc, q++
- If you use both the -p and -r options with
qcc or q++, the -p option isn't passed
to the compiler.
(Ref# J2239400)
Workaround: Use the options in two distinct steps in the build.
Technical support
To obtain technical support for any QNX product, visit the Support area on our website (www.qnx.com). You'll find a wide range of support options, including community forums.
For questions about installing and using QNX SDP, see the Getting Started forum on our Foundry27 site, http://community.qnx.com. There are other forums for specific topics, including the QNX Neutrino RTOS, development tools, networking, Board Support Packages, and so on.