Re: libc5 FAQ
Mixing user domain and kernel domain stuff is a really bad
Idea, but you don't have to take just my word for it. I already have
posted the FAQ once today, and I don't want to do so again: Please
read the libc FAQ (or email me and I will send you a copy).
The bottom line is: if a program needs kernel header, the
chances are that the program, or the design of the program, is
broken. (It is not as though the kernel data sructures change every
day [oh the good 99.14 days]).
If you are talking about the few that are really that version
dependent, then they are compatible with just *one* kernel version,
and have to abort if *any* other version is running.
>>"Bernd" == Bernd Eckenfels <firstname.lastname@example.org> writes:
>> My contention is: if we are talking about a program that needs
>> kernel headers, and can't be satisfied with the headers included in
>> the libc5-dev package (which corresponds to 2.0.29, or something),
>> that means we are talking about a program that needs some very
>> specific kernel data structures, and can't do with the definition
>> of that data structure included in the libc headers.
Bernd> I think libc6 will rebuild the .../sys/ headers with scripts
Bernd> from crrent kernel source. If even libc6 depends on this, why
Bernd> not use ith with libc5.
Please re-read the FAQ. The why is answered there.
Bernd> Simple Example:
Bernd> /* -- new Socket ioctl included in kernels 2.1.20++ -- */
>> define SIOC_BLAFASEL 5
Read Linus's example.
Bernd> If I want to use new feature BLAFASEL i will have to issue an
Bernd> ioctl 5 to the kernel. If I hardwire IOCTL 5 in my program i
Bernd> will be able to compile it independend from kernels versions <=
Bernd> 2.1.20, but i wont be able to be sure that >= 2.1.21 will
Bernd> redefine the ioctl, or even worse, remove it. Its impossible to
Bernd> refuse to run on 2.1.21++ Kernels, since I would havbe to
Bernd> release new tools every day. Best thing i do is:
Bernd> use BLAFASEL if it is defined, dontuse it if not. Then the
Bernd> program will compile in <2.1.20 (unable to use the new feature)
Bernd> and compile with 2.1.20 (enabled to use the feature as long as
Bernd> it is there, even after renumbering). Thats what the headers
Bernd> are for.
So, you compile it on your machine on 2.1.20. I try to use
this. Should it run? What version am I using? or is the user to
recompile (!!) it for every kernel upgrade?
Bernd> BTW: it seems to be very easy to port net-tools for exapmle to
Bernd> libc6, but the reason fr this is, that the headers will include
Bernd> all the kernel dependend stuff in a version depending
Bernd> manner. (only the release cycle of libc6 has to be more faster
Bernd> to include all new features from new kernels).
That again is retrogessive.
Faith in a holy cause is to a considerable extent a substitute for
lost faith in ourselves. -- Eric Hoffer
Manoj Srivastava <url:mailto:email@example.com>
Mobile, Alabama USA <url:http://www.datasync.com/%7Esrivasta/>
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
Trouble? e-mail to firstname.lastname@example.org .