In general, running binaries that were compiled for an older glibc version (e.g. 2.13) will run fine on a system with a newer glibc (e.g. 2.14, like your system).

Running a binary that was built for a newer glibc (e.g. 2.15, like the one that fails) on a system with an older glibc will probably not work.

In short, glibc is backward-compatible, not forward-compatible.

Answer from Kenneth Hoste on Stack Overflow
🌐
Red Hat
developers.redhat.com › blog › 2019 › 08 › 01 › how-the-gnu-c-library-handles-backward-compatibility
How the GNU C Library handles backward compatibility | Red Hat Developer
August 1, 2019 - One of the GNU C Library's (glibc's) unwritten rules is that a program built against an old version of glibc will continue to work against newer versions of glibc. But how does this work?
Discussions

Valve Employee: glibc not prioritizing compatibility damages Linux Desktop
It is a part of the ELF standard for enabling dynamic linking to work. A superior replacement was developed that was never put into the standard, but was adopted on Linux in a backward compatible way by generating both versions. The glibc developers then decided to turn off backward compatibility ... More on reddit.com
🌐 r/linux_gaming
215
265
August 16, 2022
Binaries for Arch Linux are not compatible with older GLIBC versions (I'm trying to create AppImages for other GNU/Linux distributions).
That is one of the limitations of appimages. Another is that they won't run on systems using other libc implementations, such as musl, IIRC. More on reddit.com
🌐 r/archlinux
9
9
April 5, 2022
linux - Can new glibc versions be used with an old kernel? - Unix & Linux Stack Exchange
Apparently glibc can be compiled with --enable-kernel to support older kernel versions. However, I haven't been able to find information on what kernel versions are supported on a particular glibc version. Ideally, I want to see a compatibility matrix for every glibc (2.x) and kernel (2.6.x) ... More on unix.stackexchange.com
🌐 unix.stackexchange.com
March 20, 2011
Inquiry: Linux Kernel and glibc Compatibility Policy
As I understand it, the minimum ... 7). However, I have a few questions and concerns regarding both glibc and the Linux kernel: glibc Compatibility: Is the glibc version (e.g., 2.17) used in the officia...... More on users.rust-lang.org
🌐 users.rust-lang.org
4
0
February 10, 2025
🌐
JetBrains
blog.jetbrains.com › home › intellij idea › updated system requirements for  linux gnu c library (glibc)
Updated System Requirements for Linux GNU C Library (glibc) - The JetBrains Blog
January 3, 2025 - If you are running your IDE on an x64 Linux distribution with glibc 2.28 or newer, no action is required. If you are running your IDE on a system with a version of glibc lower than 2.28, whether it’s a desktop or a remote development environment, ...

In general, running binaries that were compiled for an older glibc version (e.g. 2.13) will run fine on a system with a newer glibc (e.g. 2.14, like your system).

Running a binary that was built for a newer glibc (e.g. 2.15, like the one that fails) on a system with an older glibc will probably not work.

In short, glibc is backward-compatible, not forward-compatible.

Answer from Kenneth Hoste on Stack Overflow
🌐
Hacker News
news.ycombinator.com › item
glibc has so far managed to guarantee backwards compatibility going back to ever... | Hacker News
May 31, 2021 - For example, if you wanted to make your program use the "realpath" version from glibc 2.0, instead of the current one, you could do something like this: · So, even if the glibc version in the build system is more modern (lets say 2.3), your code will also work with older ones, such as 2.0
🌐
Wikipedia
en.wikipedia.org › wiki › Glibc
glibc - Wikipedia
March 20, 2026 - When the FSF released glibc 2.0 ... with POSIX standards. glibc 2.0 also had better internationalization and more in-depth translation, IPv6 capability, 64-bit data access, facilities for multithreaded applications, future version compatibility, and the code was more ...
🌐
MathWorks
mathworks.com › serdes toolbox › design and simulate serdes systems
Linux Version Compatibilities - MATLAB & Simulink
Compatibility mode supports backwards compatibility to GLIBC version 2.2.5 only, as required by the SerDes Toolbox datapath blocks.
Find elsewhere
Top answer
1 of 2
7

In general, binaries that were compiled for an older glibc version will run fine on a system with a newer glibc, as glibc is backward-compatible and handles automatically changes to its application binary interface (ABI). It achieves this wizardry by using symbol versioning, where basically to each symbol is attached a tag specifying its glibc version.

In case of semantics changes to function calls, glibc will include two versions, one for the old semantics and another for the new semantics, so each function is tagged with its version. The linker will consider both versions as two distinct functions.

This sophisticated mechanism is required since glibc is not one file but consists of many pieces (more than 200 shared libraries).

The backward-compatibility of glibc versions is under constant tracking. You may consult the ABI Laboratory report for API/ABI changes review for glibc. The report is generated by the abi-compliance-checker and abi-tracker tools.

For your question:

So if I'm overwriting with a newer libc.so.6 with additional glibc ABI versions inside it, how does it break older apps or leads system to breakage? Or doesn't it...?

Glibc compatibility is not fool-proof, but I believe that you will have to go way back to products compiled on quite old Linux versions to break it. I would also say that products may break not only because of glibc when run on versions of Linux different than where they were compiled.

So the best answer I can give is :
"It's not supposed to break anything, and there is an excellent chance that it won't".

For more information, see:

  • The GNU C Library With Versioned Interface
  • ABI compliance checker Notes
  • ABI Policy and Guidelines
2 of 2
0

The direct answer to your question, is that if you use the newer (not necessarily supported) version. You have no guarantee that a function wasn't removed, or changed in such a way, that your other (older) applications will be able to cope with those changes. In fact they won't be able to cope with your new version, if your new version doesn't provide "shims" to support the so-called "legacy" functions that were removed, or incompatibly changed.

So, if your hoping for success in your endeavor, you'll need to examine the Changelog(s) following the "supported" Glibc version. To safely determine what changed. :)

🌐
GitHub
github.com › billziss-gh › glibc-compat
GitHub - billziss-gh/glibc-compat: GLIBC compatibility headers · GitHub
When using one of these headers the compiler is directed to use the specific versions of the symbols mentioned in the header and because GLIBC is backwards compatible the resulting program will run on any GLIBC-based Linux distribution that ...
Starred by 14 users
Forked by 4 users
Languages   C 98.3% | Python 1.7%
🌐
Reddit
reddit.com › r/linux_gaming › valve employee: glibc not prioritizing compatibility damages linux desktop
r/linux_gaming on Reddit: Valve Employee: glibc not prioritizing compatibility damages Linux Desktop
August 16, 2022 - It is a part of the ELF standard for enabling dynamic linking to work. A superior replacement was developed that was never put into the standard, but was adopted on Linux in a backward compatible way by generating both versions. The glibc developers then decided to turn off backward compatibility by default.
🌐
Reddit
reddit.com › r/archlinux › binaries for arch linux are not compatible with older glibc versions (i'm trying to create appimages for other gnu/linux distributions).
r/archlinux on Reddit: Binaries for Arch Linux are not compatible with older GLIBC versions (I'm trying to create AppImages for other GNU/Linux distributions).
April 5, 2022 -

Hi, I'm the developer of Arch-Deployer, a script to bulk download Arch Linux packages from the main repositories (and from Chaotic-AUR) with all their dependences to finally compile AppDirs to study (the AppRun script and other internal components) before their exportation in AppImage packages. When I created it, my goal was to create AppImages to upload on my other repository named AM Application Manager, to made all these programs available for all the others GNU/Linux distributions. But I had not taken care of a particular issue: GLIBC compatibility!

All my tests and the creation of this script were done initially in December, when Arch Linux and my main system, Debian Testing/Unstable, were both with support for GLIBC 2.33, and in fact I was able to launch applications like GIMP, VLC, Chromium for Arch Linux on Debian Testing/Unstable. Then I realized that these applications were not compatible with older GNU/Linux distributions, so I've worked much on creating AppImages using PPAs for older Ubuntu versions or Debian Stable and OldStable as base for my AppImages, so I've abandoned the development of Arch-Deployer in favour of other sources.

In these latest months I've tried to compile again the same applications from Arch, that in the meantime has the GLIBC version 2.34, while Debian Sid still have GLIBC 2.33, so there is a lot of additional work to do in my AppRun scripts... so I left Arch Deployer. Just think that Chromium for Slackware (that I use on my repository) works on Ubuntu 18.04 (GLIBC 2.27), while Chromium for Arch still requires the latest GLIBC version for Arch instead. The same happens with OBS Studio, GIMP and other programs for Arch Linux.

The question is: why the binaries of applications for Arch Linux have this needing of the newer GLIBC version when the same version of the same binaries for other distributions like Slackware (rolling release) have not this needing? Is there a way to patch these binaries to made them work anywhere?

PS: I have the same issue with another program named Firedragon, the Firefox/LibreWolf fork for Garuda Linux, I have already talked with the developer about this issue. The main binary cannot work on other Linux distributions because the GLIBC version is not compatible. Any tips?

Thanks in advance.

🌐
Alibaba Cloud
alibabacloud.com › help › en › alinux › comparison-of-gcc-and-glibc-compatibility-between-alibaba-cloud-linux-3-and-centos-8
Compatibility between the GCC or Glibc versions on Alibaba Cloud Linux 3 and CentOS 8 - Alibaba Cloud
August 14, 2024 - When migrating CentOS 8 workloads to Alibaba Cloud Linux 3, ABI compatibility gaps in GCC 10 and Glibc 2.32 can cause runtime failures. Understand symbol versioning, SONAME rules, and _GLIBCXX_USE_CXX11_ABI constraints to avoid binary incompatibility.
🌐
codestudy
codestudy.net › blog › check-glibc-version-for-a-particular-gcc-compiler
How to Check Glibc Version for a Specific GCC Compiler (Non-Default Installation) — codestudy.net
Third-Party Distributions: Tools like conda, spack, or scl (Software Collections) may bundle GCC with a specific glibc to ensure compatibility. Legacy Support: You might install an older GCC (e.g., GCC 9) alongside the system’s GCC 11, and need to confirm it uses a glibc version compatible with your target hardware.
Top answer
1 of 3
28

For some versions of glibc, the announcement email says which kernel versions are compatible.

glibc    Released      Requires Linux kernel version
----------------------------------------------------------

2.34     1 Aug 2021    ?   (same as 2.26?)
2.33     1 Feb 2021    ?   (same as 2.26?)
2.32     5 Aug 2020    ?   (same as 2.26?)
2.31     1 Feb 2020    ?   (same as 2.26?)
2.30     1 Aug 2019    ?   (same as 2.26?)
2.29     1 Feb 2019    ?   (same as 2.26?)
2.28     1 Aug 2018    ?   (same as 2.26?)
2.27     2 Feb 2018    ?   (same as 2.26?)
2.26     2 Aug 2017    3.2 (or higher)
2.25     5 Feb 2017    ?   (same as 2.24?)

2.24     4 Aug 2016    on i[4567]86 and x86_64  ->  2.6.32
2.24     4 Aug 2016    on other platforms       ->  3.2

Note 1:  Some minor architectures require a higher kernel version than
         listed above.

Note 2:  Your Linux distribution may vary from the above, as Glibc can
         optionally be configured at compile time to require a kernel
         version newer than the oldest supported version.

It may be possible to extend the above table by tracking down and reading more of the announcement emails for older (or newer) versions of glibc.

For reference:

Linux distribution    glibc version    Requires Linux kernel version

Debian 11 Bullseye    2.31             3.2 ?
Debian 10 Buster      2.28             3.2 ?
Debian 9 Stretch      2.24 on x86      2.6.32
Debian 9 Stretch      2.24 on other    3.2

Ubuntu 20.04          2.31             3.2
Ubuntu 18.04          2.27             3.2
Ubuntu 17.10          2.26             3.2
Ubuntu 17.04          2.24             ? 
Ubuntu 16.10          2.24             ?
Ubuntu 16.04          2.23             ?

Sources:
The GNU C Library Release Timeline
The GNU C Library (glibc)
The GNU C Library version 2.27 is now available
The GNU C Library version 2.26 is now available
The GNU C Library version 2.25 is now available
The GNU C Library version 2.24 is now available
DistroWatch.com: Ubuntu
Ubuntu glibc MIN_KERNEL_SUPPORTED

2 of 3
10

You can check in in the sources. General dependency is defined in sysdeps/unix/sysv/linux/configure.ac and currently (in master branch, before 2.32 release) is: 3.2.0

There are some architecture specific dependencies, search for arch_minimum_kernel in sysdeps/unix/sysv/linux/[arch]/configure, e.g. in the current master branch (before 2.32 release):

  • aarch64: 3.7.0
  • csky: 4.20.0
  • ia64: 3.2.18
  • mips: 4.5.0
  • nios2: 3.19.0
  • powerpc64: 3.10.0
  • riscv: 4.15.0
  • x32: 3.4.0

Although this is not 100% correct, see RISC-V change in NEWS: 64-bit RISC-V requires a minimum kernel headers version of 5.0.

🌐
Rust Programming Language
users.rust-lang.org › help
Inquiry: Linux Kernel and glibc Compatibility Policy - help - The Rust Programming Language Forum
February 10, 2025 - Hello, I'm writing to ask for clarification regarding the compatibility policy for Linux kernel versions and glibc in the Rust toolchain. As I understand it, the minimum glibc version supported by the official Rust bina…
🌐
LinuxVox
linuxvox.com › blog › various-glibc-and-linux-kernel-versions-compatibility
Demystifying glibc and Linux Kernel Version Compatibility: Headers, Minimum Supported Kernels, and Target Systems Explained — linuxvox.com
Their compatibility is not just a nicety—it’s the foundation of whether your application works across different Linux distributions, devices, or kernel versions. In this blog, we’ll demystify the relationship between glibc and the Linux kernel. We’ll explore how headers define their ...
🌐
GNU
gcc.gnu.org › legacy-ml › gcc-help › 2015-12 › msg00088.html
Derek Ch - how to compile a lower gcc/glibc version compatible binary?
The scenario is I built a binary on debian sid with its gcc-5.2 and some high glibc version, when I copy this binary to lower version debian system, it may not run or complain some library version info not available, like /lib/x86_64-linux-gnu/libtinfo.so.5: no version information available (required by /path/to/this-binary) this is dumped with `readelf -V ...` Version needs section '.gnu.version_r' contains 6 entries: Addr: 0x000000000042e770 Offset: 0x02e770 Link: 6 (.dynstr) 000000: Version: 1 File: librt.so.1 Cnt: 1 0x0010: Name: GLIBC_2.2.5 Flags: none Version: 13 0x0020: Version: 1 File:
🌐
LinuxQuestions.org
linuxquestions.org › questions › linux-general-1 › glibc-backward-compatibility-4175445005
[SOLVED] Glibc backward compatibility
January 10, 2013 - After installing second glibc from source in a separate directory, compiled with debug symbols, I encountered some problems. I found information on