4.3. Linux Platforms

The following table shows the currently supported Linux platforms.

Table 4.8 Supported Linux Platforms

OS

Version

CPU

Network Stack

Toolchain

Architecture PIL

Architecture PSL

Ubuntu

22.04 LTS

x64

OS Default

GCC 12.3.0

x86_64leElfgcc12.3.0

x86_64leElfgcc12.3.0CERT

x86_64leElfgcc12.3.0-Linux5

x86_64leElfgcc12.3.0CERT-Linux5

Ubuntu

18.04 LTS

ARMv8 (64-bit)

OS Default

GCC 7.3.0

armv8leElfgcc7.3.0

armv8leElfgcc7.3.0CERT

armv8leElfgcc7.3.0-Linux4

armv8leElfgcc7.3.0CERT-Linux4

Yocto

5.15.96

ARMv8-A (64-bit)

OS Default

GCC 11.3.1

armv8aleElfgcc11.3.1

armv8aleElfgcc11.3.1CERT

armv8aleElfgcc11.3.1-Linux5

armv8aleElfgcc11.3.1CERT-Linux5

4.3.1. How the PIL was built for Linux platforms

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

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

Table 4.9 PIL Compiler Flags for Linux Platforms

Architecture

Library Format

Compiler Flags Used by RTI

x86_64leElfgcc12.3.0

Static Release

C Flags: -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG
C++ Flags: -std=c++11 -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG

Shared Release

C Flags: -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG
C++ Flags: -std=c++11 -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG

Static Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC
C++ Flags: -std=c++11 -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC

Shared Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC
C++ Flags: -std=c++11 -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC

x86_64leElfgcc12.3.0CERT

Static Release

C Flags: -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG

Static Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC

armv8leElfgcc7.3.0

Static Release

C Flags: -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG
C++ Flags: -std=c++11 -fsigned-char -nostdinc -O2 -fstrict-aliasing -fPIC -DNDEBUG

Shared Release

C Flags: -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG
C++ Flags: -std=c++11 -fsigned-char -nostdinc -O2 -fstrict-aliasing -fPIC -DNDEBUG

Static Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC
C++ Flags: -std=c++11 -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC

Shared Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC
C++ Flags: -std=c++11 -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC

armv8leElfgcc7.3.0CERT

Static Release

C Flags: -fsigned-char -O2 -nostdinc -fstrict-aliasing -fPIC -DNDEBUG

Static Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -g -fPIC

armv8aleElfgcc11.3.1

Static Release

C Flags: -nostdinc -fstrict-aliasing -O -DNDEBUG -fPIC-DNDEBUG
C++ Flags: -O -DNDEBUG -fPIC -DNDEBUG

Shared Release

C Flags: -nostdinc -fstrict-aliasing -O -DNDEBUG -fPIC -DNDEBUG
C++ Flags: -O -DNDEBUG -fPIC -DNDEBUG

Static Debug

C Flags: -nostdinc -fstrict-aliasing -fsigned-char -O0 -g -fPIC
C++ Flags: -O0 -g -fPIC

Shared Debug

C Flags: -nostdinc -fstrict-aliasing -fsigned-char -O0 -g -fPIC
C++ Flags: -O0 -g -fPIC

armv8aleElfgcc11.3.1CERT

Static Release

C Flags: -nostdinc -fstrict-aliasing -fsigned-char -O -DNDEBUG

Static Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -O0 -g

armv8aleElfgcc11.3.1

Static Release

C Flags: -nostdinc -fstrict-aliasing -fsigned-char -O -DNDEBUG -fPIC -DNDEBUG
C++ Flags: -O -DNDEBUG -fPIC

Shared Release

C Flags: -nostdinc -fstrict-aliasing -fsigned-char -O -DNDEBUG -fPIC -DNDEBUG
C++ Flags: -O -DNDEBUG -fPIC

Static Debug

C Flags: -std=c99 -nostdinc -fstrict-aliasing -fsigned-char -O0 -g -fPIC
C++ Flags: -O0 -g -fPIC

Shared Debug

C Flags: -std=c99 -nostdinc -fstrict-aliasing -fsigned-char -O0 -g -fPIC
C++ Flags: -O0 -g -fPIC

armv8aleElfgcc11.3.1CERT

Static Release

C Flags: -nostdinc -fstrict-aliasing -fsigned-char -O -DNDEBUG

Static Debug

C Flags: -fsigned-char -nostdinc -fstrict-aliasing -O0 -g

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, GCC 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 GCC version that is compatible with the GCC 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.3.2. Building the PSL from source for Linux platforms

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

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

Table 4.10 PSL Compiler Flags for Linux Platforms

Architecture PSL

Library Format

Compiler Flags Used by RTI

x86_64leElfgcc12.3.0-Linux5

Static Release

C Flags: -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG
C++ Flags: -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG

Shared Release

C Flags: -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG
C++ Flags: -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG

Static Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -g -fPIC
C++ Flags: -fstrict-aliasing -fsigned-char -g -fPIC

Shared Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -g -fPIC
C++ Flags: -fstrict-aliasing -fsigned-char -g -fPIC

x86_64leElfgcc12.3.0CERT-Linux5

Static Release

C Flags: -std=c99 -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG

Static Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -g -fPIC

armv8leElfgcc7.3.0-Linux4

Static Release

C Flags: -std=c99 -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG
C++ Flags: -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG

Shared Release

C Flags: -std=c99 -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG
C++ Flags: -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG

Static Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -g -fPIC
C++ Flags: -fstrict-aliasing -fsigned-char -g -fPIC

Shared Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -g -fPIC
C++ Flags: -fstrict-aliasing -fsigned-char -g -fPIC

armv8leElfgcc7.3.0CERT-Linux4

Static Release

C Flags: -std=c99 -O2 -fstrict-aliasing -fsigned-char -fPIC -DNDEBUG

Static Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -g -fPIC

armv8aleElfgcc11.3.1-Linux5

Static Release

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -O -DNDEBUG
C++ Flags: -O -fPIC -DNDEBUG

Shared Release

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -O -DNDEBUG
C++ Flags: -O -fPIC -DNDEBUG

Static Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -O0 -g -fPIC
C++ Flags: -O0 -g

Shared Debug

C Flags:-std=c99 -fstrict-aliasing -fsigned-char -O0 -g -fPIC
C++ Flags: -O0 -g

armv8aleElfgcc11.3.1CERT-Linux5

Static Release

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -O -DNDEBUG

Static Debug

C Flags: -std=c99 -fstrict-aliasing -fsigned-char -O0 -g