[oe] linux-libc-headers version (reloaded)

Phil Blundell philb at gnu.org
Tue Feb 15 15:01:06 UTC 2011


On Tue, 2011-02-15 at 15:12 +0100, Andreas Oberritter wrote:
> On 02/15/2011 11:41 AM, Steffen Sledz wrote:
> > "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."[2]
> 
> Isn't this what the variable OLDEST_KERNEL is good for, when compiling
> glibc?

Not quite, no.  OLDEST_KERNEL is used to configure glibc's internal
kernel compatibility code and doesn't have much to do with the headers.

Under normal circumstances, glibc will include a bunch of compatibility
functions which allow the same binary to work (up to a point) on a range
of kernel versions.  For example, sys_pselect6 was added, on arm at
least, in 2.6.32, and if glibc finds itself running on an older kernel
it will fall back to using sys_select instead.  However, if you
configure with --enable-kernel=2.6.32 then you are promising to glibc
that it will never be used on an older kernel and this compatibility
logic can be omitted: you will now just get a "kernel too old" error if
you try to boot on 2.6.31 or lower.

p.






More information about the Openembedded-devel mailing list