3. Linux Platforms

This release supports the Linux platforms in Table 3.1 Supported Linux Platforms in Connext 7.0.0.

Table 3.1 Supported Linux Platforms in Connext 7.0.0

Operating System

CPU

GLIBC

GLIBCXX

Compiler

RTI Architecture Abbreviation

CentOS 7.0

x64

2.17

6.0.19

gcc 4.8.2

x64Linux3gcc4.8.2

Java Platform, Standard Edition JDK 11

x64Linux3gcc4.8.2

Red Hat Enterprise Linux 7.0, 7.3, 7.5, 7.6

x64

2.17

6.0.19

gcc 4.8.2

x64Linux3gcc4.8.2

Java Platform, Standard Edition JDK 11

x64Linux3gcc4.8.2

Red Hat Enterprise Linux 8.0

x64

2.28

6.0.25

gcc 7.3.0

x64Linux4gcc7.3.0

Java Platform, Standard Edition JDK 11

x64Linux4gcc7.3.0

Ubuntu 18.04, 20.04, 22.04 LTS

x64

2.27

6.0.25

gcc 7.3.0

x64Linux4gcc7.3.0

Java Platform, Standard Edition JDK 11

x64Linux4gcc7.3.0

Ubuntu 18.04 LTS, 22.04 LTS

Arm v8

2.27

6.0.25

gcc 7.3.0

armv8Linux4gcc7.3.0

Java Platform, Standard Edition JDK 11

3.1 Building Applications for Linux Platforms

First, see the basic instructions in 2. Building Applications—Notes for All Platforms.

Then make sure that:

  • Connext 7.x.y is installed (where 7.x.y stands for the version number of the current release). For installation instructions, refer to the RTI Connext Installation Guide.
  • A “make” tool is installed. RTI recommends GNU Make. If you do not have it, you may be able to download it from your operating system vendor. Learn more at www.gnu.org/software/make/ or download from ftpmirror.gnu.org/make as source code.
  • The NDDSHOME environment variable is set to the root directory of the Connext installation (such as /home/user/rti_connext_dds-7.x.y).
    • To confirm, type this at a command prompt:
    • echo $NDDSHOME
      env | grep NDDSHOME
    • If it is not set or is set incorrectly, type:
    • export NDDSHOME=<correct directory>

3.1.1 Required Libraries and Compiler Flags

To compile a Connext application of any complexity, either modify the auto-generated makefile created by running RTI Code Generator or write your own makefile. See 3.1 Building Applications for Linux Platforms for required compiler flags.

Table 3.2 Building Instructions for Linux Architectures lists the compiler flags and libraries you will need to link into your application.

Depending on which Connext features you want to use, you may need additional libraries; see 3.1.2 Additional Libraries for Other Features

Make sure you are consistent in your use of static, dynamic, debug and release versions of the libraries. Do not link both static and dynamic libraries. Similarly, do not mix release and debug libraries.

Table 3.2 Building Instructions for Linux Architectures

API

Library Format

Required RTI Libraries
or Jar Files12

Required System Libraries

Required Compiler Flags

C++
(Traditional and Modern APIs)

Static Release

libnddscorez.a
libnddscz.a

libnddscppz.a
or
libnddscpp2z.a

librticonnextmsgcppz.a
or
librticonnextmsgcpp2z.a

-ldl -lm
-lpthread -lrt

For 64-bit architectures: -DRTI_LINUX  -DRTI_UNIX -m64

 

For any Linux platform with GCC 6 or higher linker flag (see Note below table), also add: -no-pie

 

For all architectures, if you want backtrace information, also add:

Compiler flag: -fno-omit-frame-pointer

Linker flag: -rdynamic

Arm architectures: -funwind-tables

(see 3.12 Backtrace Support)

Static Debug

libnddscorezd.a
libnddsczd.a

libnddscppzd.a
or
libnddscpp2zd.a

librticonnextmsgcppzd.a
or
librticonnextmsgcpp2zd.a

Dynamic Release

libnddscore.so
libnddsc.so

libnddscpp.so
or
libnddscpp2.so

librticonnextmsgcpp.so
or
librticonnextmsgcpp2.so

Dynamic Debug

libnddscored.so
libnddscd.so

libnddscppd.so
or
libnddscpp2d.so

librticonnextmsgcppd.so
or
librticonnextmsgcpp2d.so

C

Static Release

libnddscorez.a
libnddscz.a
librticonnextmsgcz.a

-ldl -lm
-lpthread -lrt

For 64-bit architectures:
-DRTI_LINUX  -DRTI_UNIX -m64

For any Linux platform with GCC 6 or higher linker flag (see Note below table), also add: -no-pie

For all architectures, if you want backtrace information, also add:

Compiler flag: -fno-omit-frame-pointer

Linker flag: -rdynamic

Arm architectures: -funwind-tables

(see 3.12 Backtrace Support)

Static Debug

libnddscorezd.a
libnddsczd.a
librticonnextmsgczd.a

Dynamic Release

libnddscore.so
libnddsc.so
librticonnextmsgc.so

Dynamic Debug

libnddscored.so
libnddscd.so
librticonnextmsgcd.so

Java

Release

nddsjava.jar
rticonnextmsg.jar

N/A

None required

Debug

nddsjavad.jar
rticonnextmsgd.jar

Note: For Linux platforms with GCC 6 or higher, it's possible to configure the compiler driver to link, by default, executables with PIE (position independent executable) support on the amd64 and ppc64el architectures. Depending on the distributor of the GCC package, the automatic PIE generation may or may not be enabled. PIE executables cannot be used with RTI's libraries, due to Address Space Layout Randomization (ASLR). For this reason, RTI has linked Linux executables using the -no-pie flag when the GCC version is 6 or higher. If you are using GCC 6 or higher, you must link the executable with -no-pie to prevent PIE generation.

3.1.2 Additional Libraries for Other Features

3.1.2.1 Libraries Required for Distributed Logger

RTI Distributed Logger is supported on all the platforms in Table 3.1 Supported Linux Platforms in Connext 7.0.0.

To use the Distributed Logger APIs, link against the additional libraries in Table 3.3 Additional Libraries for using RTI Distributed Logger .

Table 3.3 Additional Libraries for using RTI Distributed Logger

Language

Static

Dynamic

Release

Debug

Release

Debug

C

librtidlcz.a

librtidlczd.a

librtidlc.so

librtidcd.so

C++
(Traditional API)

librtidlcz.a

librtidlcppz.a

librtidlczd.a

librtidlcppzd.a

librtidlc.so

librtidlcpp.so

librtidlcd.so

librtidlcppd.so

Java

N/A

N/A

distlog.jar

distlogdatamodel.jar

distlogd.jar

distlogdatamodeld.jar

3.1.2.2 Libraries Required for Monitoring

RTI Distributed Logger is supported on all the platforms in Table 3.1 Supported Linux Platforms in Connext 7.0.0 . Make sure you are consistent in your use of static, dynamic, debug and release versions of the libraries. For example, if your Connext application is linked with the static release version of the Connext libraries, you will need to also use the static release version of the monitoring library. Do not link both static and dynamic libraries. Similarly, do not mix release and debug libraries.

If you are statically linking your application with DDS libraries and you want to add monitoring to your application, you will also need to statically link the monitoring library. The library cannot be loaded dynamically strictly through the QoS profile because it also depends on DDS to publish its data. Therefore, it depends on DDS; the DDS functionality would cause duplicate symbols to be found resulting, in the termination of the process.

Note: If you plan to use static libraries, the RTI library in Table 3.4 Additional Libraries for Using Monitoring must appear first in the list of libraries to be linked.

Table 3.4 Additional Libraries for Using Monitoring

Library Format

Monitoring Libraries3

Dynamic Release

librtimonitoring.so

Dynamic Debug

librtimonitoringd.so

Static Release

librtimonitoringz.a

Static Debug

librtimonitoringzd.a

3.1.2.3 Libraries Required for Real-Time WAN Transport

If you choose to use Real-Time WAN Transport, you must download and install a separate package that contains the transport libraries. See the RTI Real-Time WAN Transport Installation Guide for details.

Using Real-Time WAN Transport requires one of the libraries in Table 3.5 Additional Libraries for Using Real-Time WAN Transport APIs. Select the file appropriate for your chosen library format.

For more information, see the Enabling Real-Time WAN Transport section of the RTI Connext Core Libraries User's Manual.

Table 3.5 Additional Libraries for Using Real-Time WAN Transport APIs

Library Format

Real-Time WAN Transport Libraries4

Dynamic Release

libnddsrwt.so

Dynamic Debug

libnddsrwtd.so

Static Release

libnddsrwtz.a

Static Debug

libnddsrwtzd.a

RTI Distributed Logger is supported on all the platforms in Table 3.1 Supported Linux Platforms in Connext 7.0.0.

3.1.2.4 Libraries Required for TCP Transport and TLS Support

To use the TCP Transport APIs, link against the additional libraries in Table 3.6 Additional Libraries for using RTI TCP Transport APIs.

Table 3.6 Additional Libraries for using RTI TCP Transport APIs

Library Format

RTI TCP Transport Libraries5

Dynamic Release

libnddstransporttcp.so

Dynamic Debug

libnddstransporttcpd.so

Static Release

libnddstransporttcpz.a

Static Debug

libnddstransporttcpzd.a

If you are using RTI TLS Support, see Table 3.7 Additional Libraries for using RTI TCP Transport APIs with TLS Enabled. Select the files appropriate for your chosen library format.

RTI TLS Support is an optional product for use with the TCP transport that is included with RTI Connext®. If you choose to use TLS Support, it must be installed on top of a Connext installation with the same version number; it can only be used on architectures that support TCP transport (see the RTI TLS Support Release Notes).

Table 3.7 Additional Libraries for using RTI TCP Transport APIs with TLS Enabled

Library Format

RTI TLS Libraries6

OpenSSL Libraries7

Dynamic Release

libnddstls.so

libssl.so

libcrypto.so

Dynamic Debug

libnddstlsd.so

Static Release

libnddstlsz.a

Static Debug

libnddstlszd.a

3.1.2.5 Libraries Required for Zero Copy Transfer Over Shared Memory

To use the Zero Copy Transfer Over Shared Memory feature, link against the additional library in Table 3.8 Additional Libraries for Zero Copy Transfer Over Shared Memory.

Table 3.8 Additional Libraries for Zero Copy Transfer Over Shared Memory

Library Format

Zero Copy Transfer Over Shared Memory Libraries8

Dynamic Release

libnddsmetp.so

Dynamic Debug

libnddsmetpd.so

Static Release

libnddsmetpz.a

Static Debug

libnddsmetpzd.a

3.1.3 Linux Compatibility and Determining Factors

RTI has concluded that there are four factors that can be used to determine the compatibility of RTI's Linux core libraries on a specific Linux distribution or system. You can use this information to identify which Connext Linux libraries are suitable for your system. If a system matches the compatibility factors, RTI has a high level of confidence that the core libraries will work with no issues.

RTI has identified four Linux compatibility factors:

  • CPU architecture (such as x64, Arm v8, ppc)
  • Minimum GLIBC version
  • GLIBCXX version
  • Floating-Point scheme

3.1.3.1 Compatibility factors explained

The CPU architecture is the CPU family of the target system. Note that this important value is not for the physical CPU used to run, but the configuration of the system where it will be executed. For example, you may have an x64 CPU but your system kernel may run as if it were an x86 CPU. In this case, a 32-bit version of the Connext library should be selected.

The minimum GLIBC is the minimum required value of the GLIBC library used in the target system. If the target system's GLIBC version is less than the minimum version required by Connext, run-time errors can occur, such as undefined symbol errors.

The GLIBCXX range is the range of the Standard C++ Library that the target system must support. In some cases this value is a range and in others it’s a minimum value just like the minimum GLIBC support.

The floating-point scheme defines how the assembly code is generated relative to the floating-point registers and instructions; this should only be a concern on Arm v7 architectures. The options available are soft floating-point and hard floating-point. All newer architectures use hard floating-point.

Table 3.9 Compatibility Ranges

Library Name CPU Minimum GLIBC GLIBCXX Range

x64Linux3gcc4.8.2

x64

2.17

6.0.15 <= X < 6.0.21

x64Linux4gcc7.3.0

x64

2.25

6.0.21 <= X

armv8Linux4gcc7.3.0

Arm v8

2.25

6.0.21 <= X

3.1.3.2 How to determine the GLIBC version on your target system

There are two ways to determine the GLIBC version in a target system. In most systems, you can run ldd --version. If the command ldd is not available, you must find where the libc.so library is located, then execute it. This will provide you the version of the library in the terminal. Note that you must perform this process in the target system in the case of cross-compiled architectures.

As an example, you can see the following output from an Ubuntu 20.04 system:

$ ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.2) 2.31
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
$ ./lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.2) stable release version 2.31.
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled by GNU CC version 9.3.0.
libc ABIs: UNIQUE IFUNC ABSOLUTE
For bug reporting instructions, please see:
<https://bugs.launchpad.net/ubuntu/+source/glibc/+bugs>.

Given the output of both commands, we can say that the GLIBC version of this system is 2.31.

3.1.3.3 How to determine the GLIBCXX version on your target system

To determine the GLIBCXX version of the target system, you must find the libstdc++.so.6.0.XX library on your system. On some systems, you may have a libstdc++.so file, which is a symbolic link to the actual library.

The name of the libstdc++ library provides the version number, such as "6.0.XX" at the end of its name. Note that you must perform this process in the target system in the case of cross-compiled architectures. As an example, you can see the following output from an Ubuntu 20.04 system:

$ ls -l lib/x86_64-linux-gnu/libstdc++.so.6
lrwxrwxrwx 1 root root 19 May 29  2021 lib/x86_64-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.28

Given this output, we can determine that the GLIBCXX version for this system is 6.0.28.

3.1.4 How the Connext Libraries were Built

Table 3.10 Library-Creation Details for Linux Architectures provides details on how RTI built the Linux libraries. This table is provided strictly for informational purposes. You do not need to use these parameters to compile your application. You may find this information useful if you are involved in any in-depth debugging.

Table 3.10 Library-Creation Details for Linux Architectures

RTI Architecture

Library Format

Compiler Flags Used by RTI

armv8Linux4gcc7.3.0

Static Release

-O -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -funwind-tables -O -DNDEBUG
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"armv8Linux4gcc7.3.0\"

Static Debug

-O0 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -funwind-tables -O0 -g
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"armv8Linux4gcc7.3.0\"

Dynamic Release

-O -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -funwind-tables -O -DNDEBUG
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"armv8Linux4gcc7.3.0\"

Dynamic Debug

-O0 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -funwind-tables -O0 -g
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"armv8Linux4gcc7.3.0\"

x64Linux3gcc4.8.2

Static Release

-O -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O -DNDEBUG
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux3gcc4.8.2\"

Static Debug

-O0 -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O0 -g
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux3gcc4.8.2\"

Dynamic Release

-O -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O -DNDEBUG
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux3gcc4.8.2\"

Dynamic Debug

-O0 -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O0 -g
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux3gcc4.8.2\"

x64Linux4gcc7.3.0

Static Release

-O -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O -DNDEBUG
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux4gcc7.3.0\"

Static Debug

-O0 -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O0 -g
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux4gcc7.3.0\"

Dynamic Release

-O -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O -DNDEBUG
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux4gcc7.3.0\"

Dynamic Debug

-O0 -m64 -Wall -Wno-unknown-pragmas -fno-omit-frame-pointer -O0 -g
-fPIC -DLINUX -DPtrIntType=long -DTARGET=\"x64Linux4gcc7.3.0\"

All supported Linux architectures for Java

Dynamic Release

-target 1.8 -source 1.8

Dynamic Debug

-target 1.8 -source 1.8 -g

3.2 Running Your Applications

For the environment variables that must be set at run time, see Table 3.11 Running Instructions for Linux Architectures.

Table 3.11 Running Instructions for Linux Architectures

RTI Architecture

Library Format

Environment Variables

All supported Linux architectures when using Java

N/A

LD_LIBRARY_PATH= ${NDDSHOME}/lib/<architecture>: ${LD_LIBRARY_PATH}

Note: For all 64-bit Java architectures (...64Linux...), use -d64 in the command line.

All supported Linux architectures when not using Java

Static (Release & Debug)

None required

Dynamic (Release & Debug)

LD_LIBRARY_PATH= ${NDDSHOME}/lib/<architecture>: ${LD_LIBRARY_PATH}

3.3 Support for Modern C++ API

Connext provides two C++ APIs, which we refer to as the "Traditional C++" and "Modern C++" APIs.

  • The Modern C++ API requires C++11 compilers or newer.
  • The Traditional C++ API supports C++98 compilers or newer.

For more information on Modern C++, see "Traditional Vs. Modern C++" in the RTI Connext Core Libraries User's Manual.

3.4 Support for .NET

The C# API is supported on all Linux platforms. For more information on .NET, see the C# API Reference.

3.5 Multicast Support

Multicast is supported on all Linux platforms and is configured out of the box. That is, the default value for the initial peers list (NDDS_DISCOVERY_PEERS) includes a multicast address. See the API Reference HTML documentation for more information.

3.6 Transports

  • Shared memory: Supported and enabled by default. To clean up shared memory resources, reboot the kernel.
  • UDPv4: Supported and enabled by default.
  • UDPv6: Supported for all platforms.
  • The UDPv6 transport is not enabled by default, and the peers list must be modified to support IPv6.

    Traffic Class support is only provided on architectures with gcc 4.1.0 or later that support the UDPv6 transport.

  • TCP/IPv4: Supported for all Linux platforms. This is not a built-in transport.

3.6.1 Shared Memory Support

To see a list of shared memory resources in use, please use the 'ipcs' command. To clean up shared memory and shared semaphore resources, please use the 'ipcrm' command.

The shared memory keys used by Connext are in the range of 0x400000. For example:

ipcs -m | grep 0x004

The shared semaphore keys used by Connext are in the range of 0x800000; the shared mutex keys are in the range of 0xb00000. For example:

ipcs -s | grep 0x008
ipcs -s | grep 0x00b

Please refer to the shared-memory transport online documentation for details on the shared memory and semaphore keys used by Connext.

3.7 Unsupported Features

  • Remote Procedure Calls are not supported on x64Linux3gcc4.8.2 platforms.
  • Durable Writer History and Durable Reader State are not supported.

3.8 Monotonic Clock Support

The monotonic clock (described in "Configuring the Clock per DomainParticipant" in the RTI Connext Core Libraries User's Manual) is supported.

3.9 Thread Configuration

Table 3.12 Thread Settings for Linux Platforms lists the thread settings for Linux platforms.

See also: Table 3.13 Thread-Priority Definitions for Linux Platforms and Table 3.14 Thread Kinds for Linux Platforms.

3.9.1 Support for Controlling CPU Core Affinity for RTI Threads

Support for controlling CPU core affinity (described in "Controlling CPU Core Affinity" in the User's Manual) is available on all supported Linux platforms.

Table 3.12 Thread Settings for Linux Platforms

Applicable Thread

DDS_ThreadSettings_t

Platform-Specific Setting

Asynchronous Publisher,
Asynchronous flushing thread

mask

OS default thread type

priority

OS default thread priority

stack_size

OS default thread stack size

cpu_list

Empty CPU list (Supported on Linux platforms)

cpu_rotation

DDS_THREAD_SETTINGS_CPU_NO_ROTATION

Database thread

mask

DDS_THREAD_SETTINGS_STDIO

priority

OS default thread priority

stack_size

OS default thread stack size

cpu_list

Empty CPU list

cpu_rotation

DDS_THREAD_SETTINGS_CPU_NO_ROTATION

Event thread

mask

DDS_THREAD_SETTINGS_STDIO | DDS_THREAD_SETTINGS_FLOATING_POINT

priority

OS default thread priority

stack_size

OS default thread stack size

cpu_list

Empty CPU list

cpu_rotation

DDS_THREAD_SETTINGS_CPU_NO_ROTATION

ReceiverPool threads

mask

DDS_THREAD_SETTINGS_STDIO | DDS_THREAD_SETTINGS_FLOATING_POINT

priority

OS default thread priority

stack_size

OS default thread stack size

cpu_list

Empty CPU list

cpu_rotation

DDS_THREAD_SETTINGS_CPU_NO_ROTATION

Table 3.13 Thread-Priority Definitions for Linux Platforms

Thread-Priority Definition

Operating-System Priority

THREAD_PRIORITY_DEFAULT

If any of these constants are used to set the priority of the thread in the QoS, the OS's default thread priority will be used.

THREAD_PRIORITY_HIGH

THREAD_PRIORITY_ABOVE_NORMAL

THREAD_PRIORITY_NORMAL

THREAD_PRIORITY_BELOW_NORMAL

THREAD_PRIORITY_LOW

Table 3.14 Thread Kinds for Linux Platforms

Thread Kinds

Operating-System Configuration9

DDS_THREAD_SETTINGS_FLOATING_POINT 

N/A

DDS_THREAD_SETTINGS_STDIO

N/A

DDS_THREAD_SETTINGS_REALTIME_PRIORITY

Set schedule policy to SCHED_FIFO

DDS_THREAD_SETTINGS_PRIORITY_ENFORCE

N/A

3.9.2 Using REALTIME_PRIORITY

If the mask field includes DDS_THREAD_SETTINGS_REALTIME_PRIORITY, a value must also be explicitly specified for the "priority" field in the QoS. (This is because using DDS_THREAD_SETTINGS_REALTIME_PRIORITY changes the scheduler used by Linux for the thread to SCHED_FIFO. If the priority field is not explicitly set, it will default to a value of 0, but this is an invalid value for a priority when using SCHED_FIFO.) Note that running with REALTIME_PRIORITY requires the appropriate privileges: the process will need to be run with root privileges on Linux in order to set the scheduler.

3.10 Durable Writer History and Durable Reader State Features

The Durable Writer History and Durable Reader State features are temporarily disabled in this release. A future feature release will resume support for them. For further clarification, see RTI Connext Core Libraries What's New in 7.0.0 or contact RTI Support at support@rti.com.

3.11 Support for 'Find Package' CMake Script

The 'Find Package' CMake script is supported on Linux platforms on Intel CPUs (see Table 3.1 Supported Linux Platforms in Connext 7.0.0).

For information on using this script, see 2.5 Building with CMake.

3.12 Backtrace Support

  • If you are using GCC 6 or newer, you must link the executable with -no-pie to prevent PIE generation. See the Note below Table 3.2 Building Instructions for Linux Architectures.
  • You will also need to compile with -fno-omit-frame-pointer.
  • For Linux architectures on Arm CPUs, also use the -funwind-tables compiler option. This creates a table that allows the program to walk back through the function call stack from a given execution point.
  • Symbol names may be unavailable without the use of special linker options. RTI has compiled Linux architectures using the linker option -rdynamic to display backtrace information. To display backtrace information on your Linux architecture, you must also compile with
    -rdynamic.

See Logging a Backtrace for Failures, in the RTI Connext Core Libraries User's Manual.

3.13 Support for Remote Procedure Calls (RPC)

RPC is an experimental feature. It is only available for the C++11 API. It is supported all Linux architectures except x64Linux3gcc4.8.2.

See Remote Procedure Calls (RPC) in the RTI Connext Core Libraries User's Manual.