Re: [RFC] Splitting kernel headers and deprecating __KERNEL__
From: Werner Almesberger
Date: Tue Dec 14 2004 - 00:54:19 EST
Linus Torvalds wrote:
> Ok, this discussion has gone on for too long anyway, but let's make it
> easier for everybody. The kernel uses u8/u16/u32 because:
> - the kernel should not depend on, or pollute user-space naming.
> YOU MUST NOT USE "uint32_t" when that may not be defined, and
> user-space rules for when it is defined are arcane and totally
Hmm, so you're predicting problems if user space includes something
that uses uint32_t ? Wouldn't either of these work (descriptive file
names for clarity):
(And document that anything under linux-user may pull in a
certain set of standard headers, such as stdint.h, maybe
#include <linux/stdint.h> /* if we want this */
foo stuff (or some include)
Idem. (Sort of the opposite of what we have today.)
3) just require that some stdint.h has been included before
For user space that absolutely insists on doing its own uint32_t,
a refined variant of case 3 (i.e. detailing of what exactly is
expected to be defined) or, in case 1, direct use of
linux-kernel-and-user-common/foo.h along with the definition from
case 3 should work.
There are other cases where a header file may pull in other
definitions, e.g. for fcntl.h, POSIX decrees
| Inclusion of the <fcntl.h> header may also make visible all
| symbols from <sys/stat.h> and <unistd.h>.
So the semantics of for cases 1 and 2 would be consistent with
current POSIX practice.
What am I missing ?
/ Werner Almesberger, Buenos Aires, Argentina wa@xxxxxxxxxxxxxxx /
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/