Re: [ANNOUNCE] linux-libc-headers 2.6.3.0

From: Mariusz Mazur
Date: Thu Mar 04 2004 - 15:54:21 EST


On Thursday 04 of March 2004 15:13, Krzysztof Halasa wrote:
> Is it the kernel which is based on glibc, or is it glibc (and the rest of
> the userland as glibc isn't that special) using the kernel interface?
>
> The kernel doesn't need glibc at all, I don't know why do you want it
> to require some external headers to compile.
> Should the kernel behave differently when compiled with different glibc
> header sets? :-)

I never said kernel should require glibc - it shouldn't (mind you I don't do
kernelland headers). But kernel does duplicate each and every structure
provided by glibc. It has to. The Bad Thing (tm) is that all (well... allmost
all - lots of linux headers don't parse correctly in userspace) of those
structures get exported to userland. And programmers use them. They don't
include <sys/resource.h>, but <linux/resource.h>. And that causes conflicts
(and is bad practice).

> IMHO all the defines should be in the kernel tree. Glibc can and should
> use them, as it uses the ABI.

Parts of abi that are standardized
(http://www.opengroup.org/onlinepubs/007904975/ - this thing; check the
headers section), should be imho provided by C libs. These things do not
change (they can't or everything would blow up) and I see no reason why glibc
should rely on having additional headers available, just to do what it's
supposed to.

> The open question (of much less importance) is if we want to keep
> the existing include/ layout or to move public parts to include/linux-abi
> etc. It still has to reside in the kernel tree, though. I'd go with the
> former for now as it requires less work. OTOH the latter might be
> cleaner.

Userland headers should be kept in /usr/include/{asm,linux}. I see no reason
to change that (kernel headers have no business being in /usr/include btw).
As to linux-common linux-kernelonly and linux-userland headers (linux-common
used by both) - I just find it weird for userland to require kernel sources.
Linux is supposed to have stable abi.

> > And we have to remember 2.4 compatibilities (which linux-libc-headers
> > have) -
> > is 2.6 kernel a place for them?
>
> Examples?
> If they are part of kernel API/ABI, then of course they are still used
> by 2.6 kernel and they need to be there. If they aren't used by the
> kernel (old #define names for instance) they should go to glibc headers
> (#ifndef xxx #define xxx etc.).

Additionall defines mostly. Probably some extra structures.


--
In the year eighty five ten
God is gonna shake his mighty head
He'll either say,
"I'm pleased where man has been"
Or tear it down, and start again
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/