New Kernel headers vs old Kernel headers

From: Marco
Date: Fri May 30 2008 - 13:29:19 EST


Hello All,

I've come across a little discrepancy between the glibc docs and linux
kernel docs when I was trying to figure out what kernel headers I should
being using for my cross compiling. The docs seem to say almost exactly
the opposite thing.

For a quick summary: linux docs(headers_install.txt) seem to indicate,
running glibc compiled against new kernel headers, on an older kernel
will possibly cause problems. Where as glib docs(FAQ) indicate glibc
compiled against new kernel headers, will run fine on an older kernel.

Can someone shed some light on this (i.e. which is right)?

Thank you in advance

Marco Fonseca

(p.s. I've included the sections from both docs below for easy reference)


In linux-2.6.24/Documentation/make/headers_install.txt:
...
Kernel headers are backwards compatible, but not forwards compatible. This
means that a program built against a C library using older kernel headers
should run on a newer kernel (although it may not have access to new
features), but a program built against newer kernel headers may not work
on an
older kernel.
...
------------------
In glibc-2.7/FAQ
...
1.8. What version of the Linux kernel headers should be used?

{AJ,UD} The headers from the most recent Linux kernel should be used. The
headers used while compiling the GNU C library and the kernel binary used
when using the library do not need to match. The GNU C library runs without
problems on kernels that are older than the kernel headers used. The other
way round (compiling the GNU C library with old kernel headers and running
on a recent kernel) does not necessarily work. For example you can't use
new kernel features if you used old kernel headers to compile the GNU C
library.
...

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/