2002-11-20 22:03:22

by Mark H. Wood

[permalink] [raw]
Subject: One more time: /usr/include/linux, /usr/include/asm

I just built a new glibc. (Yes, I do that.) Recalling that the
above-mentioned paths are (according to Linus and many others) not
supposed to be links to /usr/src/linux or any other kernel-kit-du-jour, I
resolved to be a good boy and get rid of those links. For some reason I
expected that 'make install' for glibc would create directories there and
put into them whatever it wanted. I recall that that was discussed....

No dice. glibc 2.3.1 still installs headers into /usr/include/{VARIOUS}
which refer to /usr/include/linux and /usr/include/asm but does not supply
that to which they refer. *sigh* After rummaging through several long
threads in the archives, I still don't have an answer to the following:

1. What is supposed to be in /usr/include/linux and /usr/include/asm?
2. Where does the information come from?
3. Who is responsible for putting it there?

(Just to get my system back to a state in which I can compile userspace
stuff, I made the following assumptions:

1. Everything from linux/include/linux resp. linux/include/asm-$ARCH .
2. The kernel kit which supplied the headers used to build glibc.
3. The person building glibc.

IOW I just copied wholesale those two directories from the kernel kit
which I had nominated with configure --with-headers, to /usr/include.)

I note that the glibc 2.3.1 instructions *still* instruct the reader to
symlink these paths into "the 2.2 kernel sources". (See "Specific advice
for GNU/Linux systems" in INSTALL.) I'll happily submit a glibc bug
report, or documentation patches, or some such, just so long as someone
can give me answers which work both for the kernel and for the library.

--
Mark H. Wood, Lead System Programmer [email protected]
MS Windows *is* user-friendly, but only for certain values of "user".


2002-11-20 23:07:01

by Christoph Hellwig

[permalink] [raw]
Subject: Re: One more time: /usr/include/linux, /usr/include/asm

On Wed, Nov 20, 2002 at 05:05:45PM -0500, Mark H. Wood wrote:
> No dice. glibc 2.3.1 still installs headers into /usr/include/{VARIOUS}
> which refer to /usr/include/linux and /usr/include/asm but does not supply
> that to which they refer. *sigh* After rummaging through several long
> threads in the archives, I still don't have an answer to the following:
>
> 1. What is supposed to be in /usr/include/linux and /usr/include/asm?

There is no specification on what is supposed to be there. For
compatiblity with programs written for old linux interfaces it is a good
idea to either place a copy of older kernel headers (2.2/2.4) or some
specific package to just provide those interfaces (like the redhat
glib-kernheaders rpm) there.

Note: glibc is one of the most-widely known packages that still
uses these obsolete interfaces

Note2: linux 2.5 headers slowly change to be no more compatible to those
interfaces, don't ever put copies of linux 2.5 headers there.

> 2. Where does the information come from?

It doesn't matter.

> 3. Who is responsible for putting it there?

The system integrator.

> I note that the glibc 2.3.1 instructions *still* instruct the reader to
> symlink these paths into "the 2.2 kernel sources". (See "Specific advice
> for GNU/Linux systems" in INSTALL.) I'll happily submit a glibc bug
> report, or documentation patches, or some such, just so long as someone
> can give me answers which work both for the kernel and for the library.

I've Cc'ed libc-alpha now because that's a glibc, not a kernel problem.
It's really a pity that glibc hasn't cought up _yet_.

2002-11-21 07:58:35

by Denis Vlasenko

[permalink] [raw]
Subject: Re: One more time: /usr/include/linux, /usr/include/asm

On 20 November 2002 20:05, Mark H. Wood wrote:
> I just built a new glibc. (Yes, I do that.) Recalling that the
> above-mentioned paths are (according to Linus and many others) not
> supposed to be links to /usr/src/linux or any other
> kernel-kit-du-jour, I resolved to be a good boy and get rid of those
> links. For some reason I expected that 'make install' for glibc
> would create directories there and put into them whatever it wanted.
> I recall that that was discussed....
>
> No dice. glibc 2.3.1 still installs headers into
> /usr/include/{VARIOUS} which refer to /usr/include/linux and
> /usr/include/asm but does not supply that to which they refer.
> *sigh* After rummaging through several long threads in the archives,
> I still don't have an answer to the following:
>
> 1. What is supposed to be in /usr/include/linux and /usr/include/asm?

Kernel header files against which glibc was built.

> 2. Where does the information come from?

>From kernel source you chose to build glibc against.
There is a glibc configure option to select which kernel
header directory to use. I normally copy it from latest
stable kernel into glibc source to prevent any unwanted
interactions.

> 3. Who is responsible for putting it there?

Don't remember. Anyway, it's easy to do by hand if make install
did not do it for you.
--
vda