4.5. QNX Platforms

The following table shows the currently supported QNX platforms.

Table 4.14 Supported QNX Platforms

OS

Version

CPU

Network Stack

Toolchain

Architecture PIL

Architecture PSL

QNX

7.1

ARMv8 (64-bit)

OS Default: io-pkt

qcc_gpp8.3.0

armv8leElfqnx_qcc8.3.0

armv8leElfqnx_qcc8.3.0CERT

armv8leElfqnx_qcc8.3.0-QNX7.1

armv8leElfqnx_qcc8.3.0CERT-QNX7.1

QOS (QNX OS for Safety)

2.2.1

ARMv8 (64-bit)

OS Default: io-pkt

qcc_gpp8.3.0

armv8leElfqcc8.3.0

armv8leElfqcc8.3.0CERT

armv8leElfqcc8.3.0-QOS2.2.1

armv8leElfqcc8.3.0CERT-QOS2.2.1

4.5.1. How the PIL was built for QNX platforms

This section describes how RTI built the Platform Independent Library (PIL) for QNX platforms.

The following table shows the compiler flags RTI used to create the PIL for QNX platforms:

Table 4.15 PIL Compiler Flags for QNX Platforms

Architecture PIL

Library Format

Compiler Flags Used by RTI

armv8leElfqnx_qcc8.3.0

Static Release

C Flags:-nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -O2 -fPIC -DNDEBUG
C++ Flags:-nostdinc -fsigned-char -O2 -Vgcc/${version},gcc_ntoaarch64le -fPIC -lang-c++ -DNDEBUG

Shared Release

C Flags: -nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -O2 -fPIC -DNDEBUG
C++ Flags: -nostdinc -fsigned-char -O2 -Vgcc/${version},gcc_ntoaarch64le -fPIC -lang-c++ -DNDEBUG

Static Debug

C Flags: -nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -g -fPIC
C++ Flags: -nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -g -fPIC -lang-c++

Shared Debug

C Flags: -nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -g -fPIC
C++ Flags: -nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -g -fPIC -lang-c++

armv8leElfqnx_qcc8.3.0CERT

Static Release

C Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -O2 -fPIC -DNDEBUG

Static Debug

C Flags:-nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -g -fPIC

armv8leElfqcc8.3.0

Static Release

C Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -O2 -fPIC -DNDEBUG
C++ Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -O2 -fPIC -lang-c++ -DNDEBUG

Shared Release

C Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -O2 -fPIC -DNDEBUG
C++ Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -O2 -fPIC -lang-c++ -DNDEBUG

Static Debug

C Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -g -fPIC
C++ Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -g -fPIC -lang-c++

Shared Debug

C Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -g -fPIC
C++ Flags: -nostdinc -fsigned-char -Vgcc/8.3.0,gcc_ntoaarch64le -g -fPIC -lang-c++

armv8leElfqcc8.3.0CERT

Static Release

C Flags: -nostdinc -fsigned-char -O2 -Vgcc/${version},gcc_ntoaarch64le -O2 -fPIC -DNDEBUG

Static Debug

C Flags: -nostdinc -fsigned-char -Vgcc/${version},gcc_ntoaarch64le -g -fPIC

Warning

The RTI Connext Micro platform independent libraries are built without the standard C header-files. However, Connext Micro makes one direct call to the C library API qsort. In addition, QCC may insert direct calls to GLIBC functions and other required functions, such as default C++ constructors and destructors. For this reason, it is necessary to use a QCC version that is compatible with the QCC version used to build the platform independent libraries, or provide a C library with an implementation of the required functions. Future versions of RTI Connext Micro will remove these dependencies.

4.5.2. Building the PSL from source for QNX platforms

Refer to Building the PSL for instructions on how to build your own Platform Support Library (PSL) for QNX platforms.

The following table shows the compiler flags and required options that RTI used to build the PSL for QNX platforms. When you build the PSL with rtime-make, the --target argument automatically adds all the necessary flags for the specified architecture.

Table 4.16 PSL Compiler Flags for QNX Platforms

Architecture PSL

Library Format

Compiler Flags Used by RTI

armv8leElfqnx_qcc8.3.0-QNX7.1

Static Release

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -O2 -Y_gpp -DNDEBUG

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -O2 -lang-c++ -DNDEBUG

Static Debug

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -O2 -Y_gpp -DNDEBUG

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -O2 -lang-c++ -DNDEBUG

Shared Release

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -O2 -Y_gpp -DNDEBUG

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -O2 -lang-c++ -DNDEBUG

Shared Debug

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -O2 -Y_gpp -DNDEBUG

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -O2 -lang-c++ -DNDEBUG

armv8leElfqnx_qcc8.3.0CERT-QNX7.1

Static Release

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -O2 -DNDEBUG

Static Debug

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -g

armv8leElfqcc8.3.0-QOS2.2.1

Static Release

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -O2 -DNDEBUG

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -O2 -lang-c++ -DNDEBUG

Static Debug

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -g

C++ Flags:-Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -g -lang-c++

Shared Release

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -O2 -DNDEBUG

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -O2 -lang-c++ -DNDEBUG

Shared Debug

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -g

C++ Flags: -Vgcc/${version},gcc_ntoaarch64le -Y_gpp -fsigned-char -g -lang-c++

armv8leElfqcc8.3.0CERT-QOS2.2.1

Static Release

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -O2 -Y_gpp -DNDEBUG

Static Debug

C Flags: -Vgcc/${version},gcc_ntoaarch64le -fsigned-char -Y_gpp -g