Main Content

Linux Version Compatibilities

When generating a shared object (.so) file on Linux® platform, MATLAB® uses the GLIBC and GLIBCXX (GLIBC++) library versions provided by the operating system (OS). This means that when running these models on an equivalent OS from another vendor, you may encounter compatibility issues which prevent the model from running.

Supported Library Versions for Different OS

Linux OSGLIBC Library VersionGLIBCXX Library VersionGCC Library Version
Debian® 92.24-113.4.226.3
Debian 102.28-103.4.258.3
Red Hat® 6.62.123.4.134.4.7
Red Hat 7.72.173.4.194.8.5
SUSE® 11.42.11.34.3.4
SUSE 12.32.194.8
SUSE 12.42.224.8

When generating a .so file, the compiler only uses the latest GLIBC/GLIBCXX version for each individual library function. So while the latest Debian 10 GLIBC version is 2.28, SerDes Toolbox™ only uses a sub-set of the GLIBC libraries. Depending on the blocks being used, it’s possible that only v2.12 is required.

For example, a generated .so file for a random Rx AMI model on Debian 10 requires these libraries:

  • 0x08922974 0x00 05 GLIBCXX_3.4

  • 0x06969194 0x00 04 GLIBC_2.14

  • 0x09691a75 0x00 03 GLIBC_2.2.5

  • 0x09691a75 0x00 02 GLIBC_2.2.5

This shared object can run on any system with GLIBC v2.14 or later and GLIBCXX v3.4 or later. This means this shared object can run on Red Hat 7.7, but not on Red Hat 6.6.

Note

This only applies to Linux shared objects. Windows® only requires the Universal C Runtime libraries to be compatible with ALL GLIBC/GLIBCXX versions.

A simple workaround to generate shared objects on an earlier Linux version than what is officially supported in MATLAB is to export the .so file on a fully supported platform, then manually run the build on an earlier version. To do this:

  • Go to the transmitter or receiver build directory, denoted by Tx_ert_rtw and Rx_ert_rtw, respectively.

  • From the command line, type the following command:

    • make –f Tx.mk

    • make –f Rx.mk

    The generated shared objects reside one directory above the build directory (../Tx.so for transmitter and ../Rx.so for receiver.)

  • Copy the .so file to the full name used by SerDes Toolbox.

Note

Manual build of the shared object requires a Simulink® Coder™ or Embedded Coder® license.

For a list of supported Linux versions, see Previous Releases: System Requirements and Supported Compilers.

External Websites