To understand why your binary requires GLIBC_2.25, read this answer.

To understand how you can build a binary which requires older GLIBC version, start here.

Answer from Employed Russian on Stack Overflow
🌐
Reddit
reddit.com › r/ubuntu › how do i update glibc?
r/Ubuntu on Reddit: How do I update GLIBC?
July 24, 2025 -

I’m currently using GLIBC 2.35 on Ubuntu 22.04, and I want to update it (for gaming purposes).

I’m also aware that updating it isn’t as simple as typing:

“sudo apt update GLIBC yada yada”

or whatever, so I’m not entirely sure how to update it properly without bricking my install.

Any ideas on what to do?

🌐
Devtuts
devtuts.net › en › linux › how-to-update-glibc.html
How to update glibc
June 15, 2024 - # Debian / Ubuntu / Kali sudo apt-get update && sudo apt-get install --reinstall libc6 # RHEL / CentOS / Rocky / AlmaLinux sudo yum reinstall glibc # or: sudo dnf reinstall glibc # openSUSE / SLES sudo zypper in --force glibc · If a newer release is only available in a newer distribution version, ...
🌐
Reddit
reddit.com › r/debian › how do i get a newer version of glibc? (2.38 or above?)
r/debian on Reddit: How do i get a newer version of glibc? (2.38 or above?)
June 9, 2024 -

Basically im trying to run a game but it requires at least glibc 2.38 but it seems debian only offers 2.36 at the moment. Any way i can get a newer vesion of it?

EDIT: ended up just downloading the windows version of the game and running it with wine, im an idiot and thought i was having a problem with the sound when i first downloaded, that's why i tried the linux binary, but when i ran it with wine again i found out that the game came muted by default and that i had to press + to get the volume up

🌐
GitHub
github.com › nodejs › node-gyp › issues › 2317
Change target GLIBC version · Issue #2317 · nodejs/node-gyp
January 27, 2021 - The issue started happening when I upgraded the machine I compile on to Ubuntu 20. If my understanding is correct, the problem here is that it's getting compiled targeting GLIBC_2.28, but the PC it;s running on (Ubuntu 16) has an older version.
Author   nodejs
🌐
Jertype
jertype.com › upgrading-glibc
Using newer libc on old Linux distributions - Jertype
April 21, 2018 - This will install glibc into /opt/glibc-2.14 but if you run ldd --version it will still report the old version.
🌐
Puppy Linux Discussion Forum
forum.puppylinux.com › board index › puppy linux main › house training › users help
How exactly do you update glibc? - Puppy Linux Discussion Forum
This table, that was provided by wiak, seems to indicate it may not actually cause any big issues, changing to a newer version of glibc.
Find elsewhere
🌐
OpenGenus
iq.opengenus.org › install-specific-version-of-glibc
Install specific version of Glibc
October 17, 2022 - wget http://ftp.gnu.org/gnu/libc/glibc-2.36.tar.gz tar -xvf glibc-2.36.tar.gz cd glibc-2.36 mkdir build mkdir glibc-2.36-install cd build ~/glibc/glibc-2.36/configure --prefix=$HOME/glibc/glibc-2.36-install make -j make install · With this article at OpenGenus, you must be able to install any version of Glibc.
🌐
Linux Mint Forums
forums.linuxmint.com › board index › chat › chat about linux mint
Has anyone made any attempt to upgrade glibc? - Linux Mint Forums
January 27, 2024 - Hi, The libraries may receive fixes, some libraries may be added, but glibc libraries keep the same version. They come from Ubuntu, not from Linux Mint. They change only when you change the major version (from Mint 20.x to 21.x), that means when you change the version of Ubuntu on which Linux Mint is based (from 20.04 to 22.04) Linux Mint follows Ubuntu.
🌐
NXP
community.nxp.com › t5 › T-Series › How-to-update-Glibc-version-in-yocto-sdk-v2-0 › td-p › 1300101
How to update Glibc version in yocto sdk v2.0 - NXP Community
November 3, 2021 - It is impossible to cross compile glibc separately. All rootfs packages depend on glibc, if you upgrade glibc to higher version, all packages in rootfs should be rebuilt.
🌐
Arch Linux Forums
bbs.archlinux.org › viewtopic.php
How to build against a specific version of glibc, what options? / GNU/Linux Discussion / Arch Linux Forums
January 31, 2024 - Why do you think you want to or need to build appimagetool and linuxdeploy against the same glibc as the target (retroarch)? Either way, the binary version in the AUR is older than glibc 2.37 and you could just use that - and actually it doesn't matter anyway.
Top answer
1 of 3
11

You can definitely compile a new version of GLIBC and have it stored in a separate directory. The first thing you'll have to do is download the version of glibc that you want from http://ftp.gnu.org/gnu/glibc/.

Run the configure script and set the --prefix= to something like /home/you/mylibs.

After you've managed to install it into that directory, you'll have to set your LD_LIBRARY_PATH to the location of the new glibc.

You'll need to figure out any dependencies you may need to compile. You can create a shell script that sets the LD_* variables and the runs your program (which you'd have to do anyway), and run it repeatedly - download/recompiling missing libs along the way.

You could also use ldd to determine what shared libraries the program needs, then use ldd on each of the libraries to find out if they require glibc.

This can be a very time consuming process and is not for the impatient or faint of heart - traversing/recompiling your way through the possible dependencies required to make your application work may occasionally make you want to pull out your hair.

Update 1:

I downloaded glibc-2.4 and tried to compile it on CentOS 6. To get configure working properly I had to change the ac and ld version checks by changing:

2.1[3-9]*)

to:

2.*)

at lines 4045 and 4106 in the configure file itself. I set my *FLAGS environment variables like so:

LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow" 
CFLAGS="-pipe -fomit-frame-pointer -g1 -O3 -frename-registers -fweb -ftracer -fmodulo-sched -fvariable-expansion-in-unroller -fgcse-sm"
CXXFLAGS="${CFLAGS}" 
CFLAGS="${CFLAGS} -freorder-blocks-and-partition" 
export LDFLAGS CFLAGS CXXFLAGS

and then executed ./configure --prefix=/home/tim/masochist. It configured properly... and it began building properly too... but then I started running into errors - mostly the compiler complaining about things being redefined.

At that point I gave up... Because it was becoming too time consuming. ;)

2 of 3
1

Updating glibc to a version supported by your distribution is low-risk. It is written to handle compatibility with versions that date far back, and (baring bugs) a new version should just be a drop in replacement. Installing a new version in some strange place is riskier, IMHO.

🌐
Rust Programming Language
users.rust-lang.org › help
How to change rust glibc version? - help - The Rust Programming Language Forum
February 1, 2022 - hello people,i was able to build a cross compile toolchain for RISCV using rustup command,am able to get execulatble but problem is when i execute the binary on RISCV machine its showing as **" GLIBC_2.33 " not found ** The machine (x86) which i had built toolchain on has "ldd (glibc version ...
🌐
Baeldung
baeldung.com › home › installation › multiple glibc on a single linux machine
Multiple glibc on a Single Linux Machine | Baeldung on Linux
March 18, 2024 - So, in a way, we can have multiple versions of glibc on our machine and have a libglib-2.0.so link to a specific version. The linker will look for the soname field in the shared object and embed it in the resulting binary. The soname field specifies the filename for our target shared library.
🌐
GitHub
github.com › meteor › meteor › issues › 13536
V3.1 builds release builds require glibc version change · Issue #13536 · meteor/meteor
January 1, 2025 - You must be signed in to change notification settings · Fork 5.3k · Star 44.8k · New issueCopy link · New issueCopy link · Closed · Closed · V3.1 builds release builds require glibc version change#13536 · Copy link · Shelagh-Lewins · opened · on Jan 1, 2025 ·
Author   meteor
🌐
Unix.com
unix.com › unix for beginners q & a › unix for dummies questions & answers
How to switch to a certain version of glibc? - UNIX for Dummies Questions & Answers - Unix Linux Community
June 11, 2012 - Hello, I currently have glibc 2.13. I was wondering if you could teach me how to switch to : glibc2.3.2 I would really appreciate it if you tell me how to do it step by step since I am a beginner . thanks.
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. :)

🌐
Substack
blogsystem5.substack.com › blog system/5 › picking glibc versions at runtime
Picking glibc versions at runtime - by Julio Merino
September 24, 2024 - And before containers existed, they surely weren’t testing glibc changes by installing modified versions of the library over the system-wide one and YOLOing it.