Linux Kernel and GNU C Library version of common Linux distributions
Linux Kernel and GNU C Library version of common Linux distributions
statically linking
statically linking the specified libraries:
-Wl,-Bstatic -lluajit-5.1 -lssl -lcrypto -lsctp -Wl,-Bdynamic
but if your static linking program use libdl and the GNU C Library version in the build system is newer than the version in the target system, you may get the following error:
# Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
dl-call-libc-early-init.c:37: _dl_call_libc_early_init: Assertion `sym != NULL' failed.
glibc versions
If we link with the lowest version of the C Library, then we can achieve maximum compatibility.
| Linux distribution | Release date | GNU C Library | GCC support library | Linux Kernel |
|---|---|---|---|---|
| Ubuntu 10.04 | 2010-04 | 2.11.1 | 4.4.3 | 2.6.32 |
| Debian 6 | 2011-02 | 2.11.3 | 4.4.5 | 2.6.32 |
| RHEL 6 | 2010-11 | 2.12 | 4.4.7 | 2.6.32 |
| Debian 7 | 2013-05 | 2.13 | 4.7.2 | 3.2 |
| Ubuntu 12.04 | 2012-04 | 2.15 | 4.6.3 | 3.2 |
| RHEL 7 | 2014-06 | 2.17 | 4.8.5 | 3.10 |
| AnolisOS 7 | 2022-02 | 2.17 | 4.8.5 | 4.19 |
| Ubuntu 14.04 | 2014-04 | 2.19 | 4.9.3 | 3.13 |
| Debian 8 | 2015-04 | 2.19 | 4.9.2 | 3.16 |
| SLES 12 SP5 | 2019-12 | 2.22 | 13.3 | 4.12 |
| Ubuntu 16.04 | 2016-04 | 2.23 | 5.4.0 | 4.4 |
| Debian 9 | 2017-06 | 2.24 | 6.3 | 4.9 |
| Amazon Linux 2 LTS | 2018-06 | 2.26 | 7.3 | 4.14 |
| Ubuntu 18.04 | 2018-04 | 2.27 | 8.4 | 4.15 |
| RHEL 8 | 2019-05 | 2.28 | 8.5 | 4.18 |
| Debian 10 | 2019-07 | 2.28 | 8.3 | 4.19 |
| openEuler 20.03 | 2020-03 | 2.28 | 7.3 | 4.19 |
| OpenCloudOS 8.10 | 2024-10 | 2.28 | 8.5 | 5.4 |
| AnolisOS 8.10 | 2025-04 | 2.28 | 8.5 | 5.10 |
| Ubuntu 20.04 | 2020-04 | 2.31 | 10.5 | 5.4 |
| Debian 11 | 2021-08 | 2.31 | 10.2 | 5.10 |
| openEuler 22.03 | 2022-03 | 2.34 | 10.3 | 5.10 |
| RHEL 9 | 2022-05 | 2.34 | 11.5 | 5.14 |
| Amazon Linux 2023 | 2023-03 | 2.34 | 11.4 | 6.1 |
| CBL-Mariner 2.0 | 2022-05 | 2.35 | 11.2 | 5.15 |
| Ubuntu 22.04 | 2022-04 | 2.35 | 12.3 | 5.15 |
| Debian 12 | 2023-06 | 2.36 | 12.2 | 6.1 |
| OpenCloudOS 9.4 | 2025-05 | 2.38 | 12.3 | 6.6 |
| AnolisOS 23.3 | 2025-06 | 2.38 | 12.3 | 6.6 |
| openEuler 24.03 | 2024-06 | 2.38 | 12.3 | 6.6 |
| SLES 15 SP7 | 2025-06 | 2.38 | 14.3 | 6.4 |
| Ubuntu 24.04 | 2024-04 | 2.39 | 14.0 | 6.8 |
| RHEL 10 | 2025-05 | 2.39 | 14.2 | 6.12 |
| CentOS Stream 10 | Rolling | 2.39 | 14.3? | 6.12 |
| SLES 16 | 2025-10? | 2.40? | 15.1? | 6.12? |
| Debian 13 | 2025-08 | 2.41 | 14.2 | 6.12 |
| Fedora 42 | 2025-04 | 2.41 | 15.0 | 6.14 |
| Ubuntu 25.10 | 2025-10 | 2.42 | 15.2 | 6.17 |
| Debian 14 | 2027-08? | 2.46? | 16.2? | 7.6? |
| openSUSE Tumbleweed | Rolling | 2.42? | 15.1? | 6.16? |
| Alpine 3.21 | 2024-12 | musl 1.2.5 | libgcc 14.2 | 6.12 |
| Alpine 3.22 | 2025-05 | musl 1.2.5 | libgcc 14.2 | 6.12 |
| Alpine edge | 2025-12? | musl 1.2.5? | libgcc 15.2? | 6.12? |
libgcc & libstdc++ versions
The following GCC versions add new functions to libgcc (libgcc/libgcc-std.ver.in and libgcc/config/i386/libgcc-glibc.ver) & libstdc++ (libstdc++-v3/config/abi/pre/gnu.ver):
- GCC 16.1.0 (Only
libstdc++.so.6has the symbol versionGLIBCXX_3.4.35added) - GCC 15.1.0 (Only
libstdc++.so.6has the symbol versionGLIBCXX_3.4.34added) - GCC 14.1.0 (Both
libgcc_s.so.1andlibstdc++.so.6have symbol versions added) - GCC 13.1.0
- GCC 12.1.0
- GCC 7.1.0
- GCC 4.8.0
- … (Too old to need to list anymore)
docker images
1 | # shopt -s checkwinsize |