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".
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_.
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