* [DOCS] make headers_install
@ 2007-06-22 4:04 Rob Landley
2007-06-22 5:14 ` David Woodhouse
0 siblings, 1 reply; 3+ messages in thread
From: Rob Landley @ 2007-06-22 4:04 UTC (permalink / raw)
To: linux-kernel; +Cc: David Woodhouse
Here's a really quick stab at documentation for make headers_install.
Comments?
--------------------
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
/usr/include/linux.
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
the
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
"./usr/include".
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
<dwmw2@infradead.org>.
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [DOCS] make headers_install
2007-06-22 4:04 [DOCS] make headers_install Rob Landley
@ 2007-06-22 5:14 ` David Woodhouse
2007-06-22 20:18 ` Rob Landley
0 siblings, 1 reply; 3+ messages in thread
From: David Woodhouse @ 2007-06-22 5:14 UTC (permalink / raw)
To: Rob Landley; +Cc: linux-kernel
On Fri, 2007-06-22 at 00:04 -0400, Rob Landley wrote:
> Here's a really quick stab at documentation for make headers_install.
>
> Comments?
>
> --------------------
>
> Exporting kernel headers for use by userspace (/usr/include/linux)
Also /usr/include/asm (and asm-* on biarch 64-bit architectures), along
with a few other directories. See $linux/include/Kbuild.
Other than that it looks relatively sane; thanks.
--
dwmw2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [DOCS] make headers_install
2007-06-22 5:14 ` David Woodhouse
@ 2007-06-22 20:18 ` Rob Landley
0 siblings, 0 replies; 3+ messages in thread
From: Rob Landley @ 2007-06-22 20:18 UTC (permalink / raw)
To: David Woodhouse; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1523 bytes --]
On Friday 22 June 2007 01:14:50 David Woodhouse wrote:
> On Fri, 2007-06-22 at 00:04 -0400, Rob Landley wrote:
> > Here's a really quick stab at documentation for make headers_install.
> >
> > Comments?
> >
> > --------------------
> >
> > Exporting kernel headers for use by userspace (/usr/include/linux)
>
> Also /usr/include/asm (and asm-* on biarch 64-bit architectures), along
> with a few other directories. See $linux/include/Kbuild.
>
> Other than that it looks relatively sane; thanks.
For some reason I was thinking that the asm directory was under include/linux
even though I know that's not the case. Brain glitch.
This clear things up?
--- headers.bak 2007-06-22 16:13:42.000000000 -0400
+++ headers.txt 2007-06-22 16:16:22.000000000 -0400
@@ -9,8 +9,9 @@
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
-/usr/include/linux.
+installed at the default location /usr/include and the kernel headers in
+subdirectories under that (most notably /usr/include/linux and
+/usr/include/asm).
Kernel headers are backwards compatible, but not forwards compatible. This
means that a program built against a C library using older kernel headers
New version attached.
Rob
--
"One of my most productive days was throwing away 1000 lines of code."
- Ken Thompson.
[-- Attachment #2: headers_install.txt --]
[-- Type: text/plain, Size: 2187 bytes --]
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 in
subdirectories under that (most notably /usr/include/linux and
/usr/include/asm).
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 the
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
"./usr/include".
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
<dwmw2@infradead.org>.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2007-06-22 20:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-22 4:04 [DOCS] make headers_install Rob Landley
2007-06-22 5:14 ` David Woodhouse
2007-06-22 20:18 ` Rob Landley
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox