When creating the compiler, in addition to the glibc version, you must specify the Linux header version and the kernel version with minumum support. And then on the target machine there is a real kernel version and a glibc version (with its own version of kernel headers and a minimal kernel version). I'm pretty confused trying to figure out how these versions go together.
Example 1: Suppose I have a system with glibc 2.13 built into the 3.14 kernel headers. Does this make sense? How is it possible for glibc 2.13 (released in 2011) to use the new kernel features from version 3.14 (released in 2014)?
Example 2: Suppose I have a compiler with a version of glibc newer than 2.13. Will compiled programs work on glibc 2.13? And if the glibc compiler version is older than 2.13?
Example 3: From https://sourceware.org/glibc/wiki/FAQ#What_version_of_the_Linux_kernel_headers_should_be_used.3F I understand that it is ok to use an older kernel if it satisfies the "minimal kernel version" used when compiling glibc, But I do not understand The other way round (compiling the GNU C library with old kernel headers and running on a recent kernel) does not necessarily work as expected. For example you can't use new kernel features if you used old kernel headers to compile the GNU C library. The other way round (compiling the GNU C library with old kernel headers and running on a recent kernel) does not necessarily work as expected. For example you can't use new kernel features if you used old kernel headers to compile the GNU C library. . Is this the only thing that can happen to me? Wouldn't that break something in glibc if the kernel is newer than at compile time?
Example 4: Make more subtle differences in glibc settings (for example, associating an executable with a version of glibc 2.X compiled with 3.Y kernel headers with a minimum supported kernel version 2.6.A and running on a system with the same glibc 2.X, but compiled against 3.Z kernel headers with the minimum supported kernel version 2.6.B)? I suspect that this is not so, but I would like to be sure.
So many questions :) Thank you!
source share