[lkml]   [2007]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[DOCS] make headers_install
    Here's a really quick stab at documentation for make headers_install.



    Exporting kernel headers for use by userspace (/usr/include/linux)

    The "make headers_install" command exports the kernel's header files in a
    form suitable for use by userspace programs.

    The linux kernel's exported header files describe the API for user space
    programs attempting to use kernel services. These kernel header files are
    used by the system's C library (such as glibc or uClibc) to define available
    system calls, as well as constants and structures to be used with these
    system calls. The C library's header files include the kernel header files
    from the "linux" subdirectory. The system's libc headers are usually
    installed at the default location /usr/include and the kernel headers at

    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.

    The "make headers_install" command can be run in the top level directory of
    kernel source code (or using a standard out-of-tree build). It takes two
    optional arguments:

    make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr/include

    ARCH indicates which architecture to produce headers for, and defaults to the
    current architecture. The linux/asm directory of the exported kernel headers
    is platform-specific, to see a complete list of supported architectures use
    the command:

    ls -d include/asm-* | sed 's/.*-//'

    INSTALL_HDR_PATH indicates where to install the headers. It defaults to

    The command "make headers_install_all" exports headers for all architectures
    simultaneously. (This is mostly of interest to distribution maintainers,
    who create an architecture-independent tarball from the resulting include
    directory.) Remember to provide the appropriate linux/asm directory via "mv"
    or "ln -s" before building a C library with headers exported this way.

    The kernel header export infrastructure is maintained by David Woodhouse

    "One of my most productive days was throwing away 1000 lines of code."
    - Ken Thompson.
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-06-22 06:09    [W:0.021 / U:16.484 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site