Re: older kernels + new glibc?

From: Richard B. Johnson
Date: Mon Mar 29 2004 - 16:17:45 EST


On Mon, 29 Mar 2004, Lev Lvovsky wrote:

> Hello,
>
> I'm not sure what, if any interrelations there are between the various
> versions of glibc, and the kernel.
>
> Specifically, a piece of telecom hardware that we use out in the field
> requires a 2.2.x kernel to compile the drivers, however, after choosing
> an arbitrary "new" release of a linux distro, and downgrading the
> kernel, we are able to compile and install the drivers, and
> subsequently use the hardware.
>
> Are there any URLs/Docs that I could look at to understand what, if any
> relationships glibc, and the kernel have?
>
> thank you!
> -lev

For glibc compatibility you need to get rid of the sym-link(s)
/usr/include/asm and /usr/include/linux in older distributions.
You need to replace those with headers copied from the kernel
in use when the C runtime library was compiled. If you can't find
those, you can either upgrade your C runtime library, or copy
headers from some older kernel that was known to work.

In any event, you need to remove the sym-link that ends up
pointing to your 'latest and greatest' kernel.

If you do this, you should find no incompatibilities between
user-mode code and any (within reason, 0.99 might not work)
kernel version.

Drivers are a different problem. There is no possibility
of just compiling old drivers and having them work. Drivers
need to be modified for each kernel version major version
number and, sometimes, even minor version numbers.

Sometimes you are lucky, usually not. Modules written for
2.4.x will not compile on 2.6.x and there is no compatibility
layer to accommodate. You need to look at how new modules are
written for a new version and modify your module code
accordingly. One can usually just compile and then 'fix' the
resulting errors. However, this might not produce a working
driver because some functions you count on might not exist
anymore. It compiles fine, but won't install.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.


-
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/