17

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) releases. Does it exist?

If it doesn't exist, perhaps it's because every glibc versions (in the last 5 years or so) supports all kernels since 2.6.0?

(Arch = x86-64, if that matters)

7

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

glibc    Released      Kernel
----------------------------------------------------------

2.27     2 Feb 2018    (same as 2.26?)
2.26     2 Aug 2017    3.2
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

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

Debian 9 Stretch      2.24
Debian 10 Buster      2.27 (as of March 2018).

Ubuntu 16.04          2.23
Ubuntu 16.10          2.24
Ubuntu 17.04          2.24
Ubuntu 17.10          2.26
Ubuntu 18.04          2.27

Sources:
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

4

According to the project's README you can use glibc with 2.4 kernels, but you will lose some functionality:

When working with Linux kernels, the GNU C Library version 2.4 is intended primarily for use with Linux kernel version 2.6.0 and later. We only support using the NPTL implementation of pthreads, which is now the default configuration. Most of the C library will continue to work on older Linux kernels and many programs will not require a 2.6 kernel to run correctly. However, pthreads and related functionality will not work at all on old kernels and we do not recommend using glibc 2.4 with any Linux kernel prior to 2.6.

Note that --enable-kernel=VERSION means:

compile for compatibility with kernel not older than VERSION

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.