2.3. Overview of the Target Bundle¶
This section provides an overview of the target package contents, the types of libraries included in the bundle, and the library names and descriptions.
When installed, the target bundle (rti_connext_dds_micro-<version>-target-<architecture>.rtipkg
)
adds the following to the Connext Micro directory:
--rti_connext_dds-<version>/
|
+--rti_connext_dds_micro-<version>/
|
+--lib/
+--<arch>
| +---<arch libraries>
+--<arch>CERT
| +---<arch libraries>
+--<arch>-<PSL>
| +-- <arch PSL libraries>
+--<arch>CERT-<PSL>
+-- <arch PSL libraries>
The
lib/
directory contains the libraries needed to build Connext Micro.<arch>
contains pre-built Static and Dynamic (where supported) Release and Debug libraries. These may be integrated libraries or Platform Independent Libraries; see Library types below.<arch>CERT
contains pre-built CERT profile Release and Debug libraries, if they exist for the specific architecture. These may be integrated libraries or Platform Independent Libraries; see Library types below.<arch>-<PSL>
contains pre-built Platform Support Libraries for the specific architecture.<arch>CERT-<PSL>
contains CERT profile Platform Support Libraries, if they exist for the specific architecture.
2.3.1. Library types¶
Connext Micro provides precompiled binaries for supported architectures. This section explains the different library types and gives a general description of the binaries shipped by RTI.
In this section, the following terms are used:
toolchain refers to the compiler, linker, and archiver for a specific CPU architecture, excluding dependencies in standard header files and libraries.
platform refers to the hardware, BSPs, OS kernel, and C/C++ libraries that are not included in the toolchain (such as
libc
,libc++
, and the network stack).
RTI builds two types of binaries for Connext Micro: integrated libraries and split libraries. RTI may include either or both types of binaries for a given target architecture.
2.3.1.1. Integrated libraries¶
All Connext Micro target packages include a core library called rti_me
. The rti_me
library includes all the required basic functionality for Connext Micro.
The term “integrated library” refers to an rti_me
library where all the OS
integration and network stack integration is compiled directly into rti_me
.
This means that it is not possible to change how the OS and network integration
has been written without recompiling the entire library. This is illustrated below:
Note
All binaries provided for Connext Micro version 4.0.1 and below are integrated libraries.
2.3.1.2. Split libraries¶
In contrast to an integrated library, split libraries consist of a Platform Independent Library (PIL) and a Platform Support Library (PSL).
The PIL is an rti_me
library that includes all functionality for
Connext Micro except for platform integration code.
The PSL consists of two libraries that support OS integration and network stack integration:
The OS Platform Support Library (
ospsl
): Contains the required OS support, such as mutex and semaphore support. This library is very limited in functionality.The Network Support Library (
netiopsl
): Includes support for transports, such as UDPv4.
The ospsl
and netiopsl
libraries are collectively referred to as the
PSL (even though it is more than one library).
This is illustrated below:
The main benefit of split libraries is that different PSLs can be written for the same PIL without having to recompile the platform-independent code.
Note
The PIL is compiled without standard C header files and is only dependent on the toolchain. This is different from the integrated libraries, which are compiled with standard C header files.
The PSL is always compiled against the standard C header files, as well as other platform-dependent header files.
2.3.2. Library descriptions¶
The following libraries are included in the target bundle. Note that the names listed below do not include platform-specific prefixes or suffixes.
Depending on the target architecture, the library name is prefixed with lib and the library suffix also varies between target architectures, such as .so and .dylib.
The following naming conventions are also used:
Static libraries have a z suffix.
Shared libraries do not have an additional suffix.
Debug libraries have a d suffix.
Release libraries do not have an additional suffix.
For example:
rti_mezd
indicates a static debug library.rti_me
indicates a dynamically linked release library.
Library Name |
Description |
---|---|
|
The core library, including the DDS C API. |
|
The Dynamic Participant Static Endpoint (DPSE) plugin. |
|
The Dynamic Participant Dynamic Endpoint (DPDE) plugin. |
|
The Reader History plugin. |
|
The Writer History plugin. |
|
The Zero Copy v1 over shared memory transport library plugin. |
|
The Shared Memory Transport plugin. |
|
The Application Generation plugin. |
|
The C++ API. |
|
The OS PSL. |
|
The C NETIO PSL. |
|
The C++ NETIO PSL library. |
|
The Zero Copy v2 transport library plugin (not supported on all platforms) |