Re: [RFC] Splitting out kernel<=>userspace ABI headers

From: Kyle Moffett
Date: Wed Sep 14 2005 - 14:47:10 EST


On Sep 14, 2005, at 15:09:09, linux-os (Dick Johnson) wrote:
No No. The solution is to do it right. If the standard says that
the header file can't include a header file defining the types used
within that header file (and I don't think the "standard" says that
at all), then the correct solution is to include the correct header file
in the user program. It is truly just that simple.


I don't even have to say anything substantial in my response to this flame, because I've already said everything substantial that needs to be said, but just for clarity, let me repeat myself.

First, let me be repetitious and say this again:
On Wed, 14 Sep 2005, Kyle Moffett wrote:
Argh, it seems I'm going to be giving this example forever!

Then:
If it [sys/types.h] used stdint.h types, such as uint32_t, then it would need to #include <stdint.h> or provide the stdint.h types itself.

Finally (with extra emphasis added):
In order to remain POSIX compliant, sys/stat.h _*MUST*_*NOT*_ not include stdint.h or
assume that stdint.h is included.

This means that the stat structure *CANNOT* use stdint.h types. Those are absolutely forbidden by the standard, because they have been used and reused, defined and redefined by userspace programs since the dawn of time. There are standard definitions provided by libc if a program wants them, but libc _*MUST*_*NOT*_ force those definitions on anybody. If you don't believe me, quit flaming and go read the standards yourself, that's exactly what they say, and for good reason too.

PS: This crap apology doesn't cut it, please use a different email service that does not append such garbage to your emails when sending stuff to the LKML:

.
I apologize for the following. I tried to kill it with the above dot :

****************************************************************
The information transmitted in this message is confidential and may be privileged. Any review, retransmission, dissemination, or other use of this information by persons or entities other than the intended recipient is prohibited. If you are not the intended recipient, please notify Analogic Corporation immediately - by replying to this message or by sending an email to DeliveryErrors@xxxxxxxxxxxx - and destroy all copies of this information, including any attachments, without reading or disclosing them.

Cheers,
Kyle Moffett

--
There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
-- C.A.R. Hoare


-
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/