[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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 <lists@lina.inka.de> writes:

Bernd> Hello,

>> 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:srivasta@acm.org>
Mobile, Alabama USA            <url:http://www.datasync.com/%7Esrivasta/>

TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .

Reply to: