6.4. macOS Platforms

The following table shows the currently supported macOS platforms.

Table 6.10 Supported macOS Platforms

OS

Version

CPU

Network Stack

Toolchain

Architecture PIL

Architecture PSL

macOS

14

x64

OS Default

clang 15.0

x86_64leMachOclang15.0

x86_64leMachOclang15.0CERT

x86_64leMachOclang15.0-Darwin23

x86_64leMachOclang15.0CERT-Darwin23

macOS

14

arm64

OS Default

clang 15.0

armv8leMachOclang15.0

armv8leMachOclang15.0CERT

armv8leMachOclang15.0-Darwin23

armv8leMachOclang15.0CERT-Darwin23

6.4.1. How the PIL was built for macOS platforms

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

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

Table 6.11 PIL Compiler Flags for macOS Platforms

Architecture PIL

Library Format

Compiler Flags Used by RTI

x86_64leMachOclang15.0

Static Release

C Flags:

-std=c99 -fsigned-char -O2 -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -DNDEBUG -DRTI_PIL=1

C++ Flags:

-Winit-self -fsigned-char -O2 -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -DNDEBUG -DRTI_PIL=1

Static Debug

C Flags:

-std=c99 -nostdinc -fsigned-char -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -g -DRTI_PIL=1

C++ Flags:

-Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -g -DRTI_PIL=1

x86_64leMachOclang15.0CERT

Static Release

C Flags:

-std=c99 -fsigned-char -O2 -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -DNDEBUG -DRTI_PIL=1 -DRTI_CERT

Static Debug

C Flags:

-std=c99 -fsigned-char -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -g -DRTI_PIL=1 -DRTI_CERT

armv8leMachOclang15.0

Static Release

C Flags:

-std=c99 -fsigned-char -O2 -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -DNDEBUG -DRTI_PIL=1

C++ Flags:

-Winit-self -fsigned-char -O2 -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -DNDEBUG -DRTI_PIL=1

Static Debug

C Flags:

-std=c99 -fsigned-char -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -g -DRTI_PIL=1

C++ Flags:

-Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -g -DRTI_PIL=1

armv8leMachOclang15.0CERT

Static Release

C Flags:

-std=c99 -O2 -fsigned-char -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -DNDEBUG -DRTI_PIL=1 -DRTI_CERT

Static Debug

C Flags:

-std=c99 -fsigned-char -nostdinc -Winit-self -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -Wno-long-long -g -DRTI_PIL=1 -DRTI_CERT

Warning

The RTI Connext Micro platform independent libraries are built without the standard C header-files. However, in RTI Connext Micro 4.1.0, there is one direct call to the C library API qsort. In addition, CLANG 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 CLANG version that is compatible with the CLANG 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.

6.4.2. Building the PSL from source for macOS platforms

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

6.4.3. Building macOS applications with Connext Micro

This section describes how RTI built the Platform Support Library (PSL) for macOS platforms. You must build applications with compatible flags to the PIL and PSL in order to operate with Connext Micro. The PSL must also be binary compatible with the PIL. Applications must not specify the RTI_PSL or RTI_PIL preprocessor definitions.

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

Table 6.12 PSL Compiler Flags for macOS Platforms

Architecture PSL

Library Format

Compiler Flags Used by RTI

x86_64leMachOclang15.0-Darwin23

Static Release

C Flags:

-std=c99 -Winit-self -fsigned-char -O2 -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -DNDEBUG -DRTI_PSL=1

C++ Flags:

-Winit-self -fstrict-aliasing -fsigned-char -O2 -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wdouble-promotion -Wno-strict-prototypes -Wno-c++11-long-long -Wno-long-long -Wno-sign-conversion -DNDEBUG -DRTI_PSL=1

Static Debug

C Flags:

-std=c99 -Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -g -DRTI_PSL=1

C++ Flags:

-Winit-self -fstrict-aliasing -fsigned-char -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wdouble-promotion -Wno-strict-prototypes -Wno-c++11-long-long -Wno-long-long -Wno-sign-conversion -g -DRTI_PSL=1

x86_64leMachOclang15.0CERT-Darwin23

Static Release

C Flags:

-std=c99 -Winit-self -fsigned-char -O2 -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -DNDEBUG -DRTI_PSL=1 -DRTI_CERT

Static Debug

C Flags:

-std=c99 -Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -g -DRTI_PSL=1 -DRTI_CERT

armv8leMachOclang15.0-Darwin23

Static Release

C Flags:

-std=c99 -Winit-self -fsigned-char -O2 -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -DNDEBUG -DRTI_PSL=1

C++ Flags:

-Winit-self -fstrict-aliasing -fsigned-char -O2 -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wdouble-promotion -Wno-strict-prototypes -Wno-c++11-long-long -Wno-long-long -Wno-sign-conversion -DNDEBUG -DRTI_PSL=1

Static Debug

C Flags:

-std=c99 -Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -g -DRTI_PSL=1

C++ Flags:

-Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wnon-virtual-dtor -Wcast-align -Wunused -Woverloaded-virtual -Wconversion -Wdouble-promotion -Wno-strict-prototypes -Wno-c++11-long-long -Wno-long-long -Wno-sign-conversion -g -DRTI_PSL=1

armv8leMachOclang15.0CERT-Darwin23

Static Release

C Flags:

-std=c99 -Winit-self -fsigned-char -O2 -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -DNDEBUG -DRTI_PSL=1 -DRTI_CERT

Static Debug

C Flags:

-std=c99 -Winit-self -fsigned-char -fstrict-aliasing -Wmissing-declarations -Wall -Wextra -Wpedantic -Wshadow -Wcast-align -Wunused -Wconversion -Wsign-conversion -Wdouble-promotion -Wno-strict-prototypes -g -DRTI_PSL=1 -DRTI_CERT