kernel headers - Linux

This is a discussion on kernel headers - Linux ; Ok, I am at my wits end on this but I feel like I must be missing something obvious. So, here goes: The 2.6.26 release of the linux kernel added support for multicast forwarding for IPv6. I need this support ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: kernel headers

  1. kernel headers

    Ok, I am at my wits end on this but I feel like I must be missing
    something obvious. So, here goes:

    The 2.6.26 release of the linux kernel added support for multicast
    forwarding for IPv6. I need this support for a project I am working
    on. So, starting with a base system (FC9) that was using a 2.6.25
    kernel I set out to upgrade to 2.6.26. I got the 2.6.26 kernel
    compiled and booted up successfully. However, I noticed that
    installing a new kernel does NOT mean that the files in /usr/include/
    get updated! Instead they are the same as they were before I upgraded
    the kernel. After a lot of reading it sounds like this is what is
    supposed to happen - that the /usr/include/ files should stay at
    whatever version they were at when glibc was compiled on that system.

    The problem is that I need to somehow get to some of the new header
    files that 2.6.26 adds, like mroute6.h so that I can write userland
    applications that make use of the new IPv6 multicast forwarding
    functionality (like new setsockopt() options for IPv6 multicast -
    MRT6_ADD_MFC, ...). I tried doing a 'make headers_install
    INSTALL_HDR_PATH=/usr' and it blew away all of the existing header
    files in /usr/include - then I went googling again and found this
    link, http://wiki.linuxfromscratch.org/lfs/ticket/2024, to someone
    else who had done the same.

    I guess what I don't get is if a new kernel adds new system services/
    arguments to system calls how can you get access to these new system
    services if the header files in /usr/include aren't supposed to
    change?

    Todd H

  2. Re: kernel headers

    Todd H writes:
    > The 2.6.26 release of the linux kernel added support for multicast
    > forwarding for IPv6. I need this support for a project I am working
    > on. So, starting with a base system (FC9) that was using a 2.6.25
    > kernel I set out to upgrade to 2.6.26.


    [...]

    > I guess what I don't get is if a new kernel adds new system services/
    > arguments to system calls how can you get access to these new system
    > services if the header files in /usr/include aren't supposed to
    > change?


    Install them elsewhere (eg /usr/local/include) and use -I to add them
    to the header search path (or leave them where they are and do the
    same).

    NB: It is probably best when restricting yourself to the new header(s)
    you actually need. Assuming, for instance, one of the others defined a
    structure to have a different layout than the header glibc was
    compiled with had, 'highly entertaining' runtime breakage is likely to
    result.

+ Reply to Thread