Zorin 16.1 Pro and included glibc version

Dave3000

Golden Member
Jan 10, 2011
1,466
102
106
I tried Zorin 16.1 Core but when I ran ldd --version it showed glibc version 2.31. I require glibc version 2.35 for a certain addon for X-Plane 11 (Linux version). Ubuntu 22.04 and Pop! OS 22.04 have glibc version 2.35 but I want to know if Zorin 16.1 Pro has 2.35 as I was considering on purchasing the Pro version if it does. Linux Mint 20.3 does only has version 2.31 so I removed Linux Mint 20.3 from my SSD but I would have stuck with Linux Mint 20.3 if it had glibc version 2.35 as I prefer the interface of Linux Mint over Ubuntu and Pop! OS..
 

Fallen Kell

Diamond Member
Oct 9, 1999
6,154
504
126
Why not just compile it and have multiple versions available for use? You will also need a few other items, notably, a C compiler, and you will want/need to compile a full set toolchain/binutils for the different version of glibc (probably the easiest way is using https://crosstool-ng.github.io/docs/ but you can do so manually, but I suggest reading up on "linux from scratch" for some of the ins and outs of building the toolchain, https://www.linuxfromscratch.org/lfs/view/development/partintro/introduction.html is some of the best documentation on these that I have seen. Please note that for your purposes, you are not really building a full cross compiler, as your build and target are really the same, but you do want to use different versions of libraries and tools, so, in a sense it is almost like this, you just don't need to have a separate sysroot and use the chroot commands, since you just need to change your PATH, LD_LIBRARY_PATH, and LD_PRELOAD to point to the appropriate versions). You should also consult the gcc cross toolchain compatibility matrix, and use an appropriate version of gcc when doing this: https://wiki.osdev.org/Cross-Compiler_Successful_Builds

Once you have the additional version on the system, you might need to use "patchelf" or the older "chrpath" utilities to modify a binary that you receive to point to the correct version of the library and your linker/loader for that glibc version (but usually it will just allow you to use the environmental variables like PATH, LD_LIBRARY_PATH, etc.).
 
Last edited:

Dave3000

Golden Member
Jan 10, 2011
1,466
102
106
I'm now using Linux Mint 21 and it has glibc version 2.35 included. Do glibc updates get officially released within a version of a distribution or do you have to wait for the next version of a distribution to get a more updated glibc version? Like, if I wanted to update glibc to 2.36, which is now the latest version of glibc, would I have to wait for the next Linux Mint version if I want to keep using Mint, if I don't want to compile it myself and risk breaking the OS?
 
Last edited:

Fallen Kell

Diamond Member
Oct 9, 1999
6,154
504
126
It depends on the distribution. Usually a distribution will settle on a version of core libraries such as libc and glibc and stick with it. The reason for doing that is comparability with binaries (i.e. if a third party company like say Mathworks that creates/sells/maintains the commercial program called Matlab wants to release a version that runs on a particular linux distribution, if the distribution constantly changes core libraries such as libc and glibc, it becomes extremely difficult to support that distribution as they might need to constantly recompile their application and release a new compatible version for that distribution).

If you want the new versions yourself, you will typically need to compile them yourself for your linux distribution and setup your environmental variables to point to them when you need them or want to compile code against them.

Personally I create a directory/automount point called something like "/software". I will then install all the items that I compile under there, so I will have things like "/software/binutils/binutils2.25", "/software/binutils/binutils2.39", "/software/gcc/gcc8.2.0", "/software/gcc/gcc8.5.0", "/software/gcc/gcc10.4.0", etc..... This way I do not have conflicts with anything installed by the OS, and can point to these areas for software that I develop or compile so that they can get the appropriate version of the libraries they require even if my distribution has not released a package with that version of the software by just changing my various shell enviornmental variables like PATH, LD_LIBRARY_PATH, LD_PRELOAD, etc., so that what I want to use is the version found first.
 
Last edited: