Re: older kernels + new glibc?

From: Richard B. Johnson (root_at_chaos.analogic.com)
Date: 03/29/04

  • Next message: Arjan van de Ven: "Re: older kernels + new glibc?"
    Date:	Mon, 29 Mar 2004 16:17:32 -0500 (EST)
    To: Lev Lvovsky <lists1@sonous.com>
    
    

    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,
    *** 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@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Arjan van de Ven: "Re: older kernels + new glibc?"